Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Learning to deploy a production application to the cloud?

Options
  • 24-06-2015 4:42pm
    #1
    Registered Users Posts: 18,272 ✭✭✭✭


    I have been consistently up skilling my development skills over the last two years from being just a mobile application developer to more of a full stack developer, I have learned much more web development stuff including front end frameworks such as AngularJS, back end technologies like NodeJS and databases such as MySQL and MongoDB.

    During this time I have been mostly building small projects and deploying them locally or to somewhere like Heroku but I now have a full scale idea for a web application that I am developing and I want to learn how to deploy it so that if it is successful I can scale it up easily.

    I want to be able to use AWS and it seems like not only the best option but the most sought after in jobs. However I am finding it difficult to break down what exactly I need from AWS to deploy a scalable NodeJS server backed by a MongoDB database.

    Many of the tutorials I come across just deal with the S3 bucket which I believe is only for storage of files? I think what I want is the EC2 service running Linux? If so is something like this tutorial a good start - http://adndevblog.typepad.com/cloud_and_mobile/2014/12/setup-nodejs-enviroment-on-amazon-ec2-linux-1.html - ?

    And from there is there any good websites or books that are up to date and worth reading through that are recommended for starting with the core principles of using AWS to host a web app?


Comments

  • Registered Users Posts: 187 ✭✭magoo84


    Amazon CodeDeploy is one option you should look into for deploying at scale. You upload a "revision" file to S3 or GitHub containing either source files to be deployed, some kind of script to be run on your instances, or both, and it will handle the deployment for you. It saves a lot of hassle, particularly when you're using something like AutoScale groups, where the number of instances in service is varying according to traffic volume, and you need to keep the machines running a consistent codebase.


  • Registered Users Posts: 2,030 ✭✭✭colm_c


    Also look at docker and chef for deploying and managing environments.

    Amazon OpsWorks is also good, where you can pick a pre-configured stack.

    Personally, from a learning perspective, I would do the following to get a better idea of how stuff actually works without some of the Amazon eco-system. It will stand to you better as you'll get to know how each part works.

    1. Learn to deploy/setup a PaaS environment (Heroku/Nodejitsu)
    2. Learn to deploy/setup a Linux server with your preferred stack (single virtual server)
    3. Learn to deploy/setup using chef and docker with your preferred stack
    4. Learn to deploy using chef and docker to Amazon EC2
    5. Learn to deploy using OpsWorks to Amazon

    4+5 are at the same level IMO, it's just a preference for tools at that stage.

    I find that jumping straight into Amazon EC2 quite daunting to be honest if you're not familiar with how a stack works and is setup outside of that.


  • Registered Users Posts: 1,275 ✭✭✭bpmurray


    Try Docker - it's a great way to do deployments. Get yourself a 30-day free trial of Bluemix and use everything you can get your hands on, including using Docker.


Advertisement