In April, Amazon hosted one of its AWS Summits in Chicago as part of its 2016 Global Summit Series. During the two-day event, Amazon announced many new improvements and features for multiple components of AWS. One component that received a significant upgrade is AWS Elastic Beanstalk. Elastic Beanstalk simplifies deploying, running, and managing web applications and web services in the cloud. Instead of having to build code and then manually provision system resources, Elastic Beanstalk takes your code and does the provisioning for you.
Users can create code or use pre-built templates in AWS for an array of web services and applications. An important part of building applications is creating multiple copies for different test scenarios. With Elastic Beanstalk, users simply copy the code they are using and can provision and launch multiple instances of the same web application to simplify the app testing process. Elastic Beanstalk supports many different platforms and programming languages inkling .Net, Docker, Go, Java, Node.js, PHP, Python, and Ruby. Besides automatic provisioning, AWS Elastic Beanstalk manages load balancing and auto scaling, and allows users to monitor application health from a centralized dashboard.
Managed Platform Updates for AWS Elastic Beanstalk were announced at the 2016 AWS Summit in Chicago. Previously, users had to initiate manual updates to Elastic Beanstalk either by using the Elastic Beanstalk Console, a command line interface, or a custom API. So any time a new version of the Elastic Beanstalk platform was released or a language received an update, users would have to apply these updates manually. While it allowed users to control when the updates would be applied (i.e. not during the middle of a critical testing period), it did create one more task for system administrators to have to remember.
With Managed Platform Updates, AWS Elastic Beanstalk users can simply select a weekly maintenance window (at a time that is convenient for them) and Elastic Beanstalk automatically updates the environment with the latest versions and updates available. Knowing that there is a risk in updating of altering the back-end of any web application, AWS installs the updates using an “immutable deployment model to ensure that no changes are made to the existing environment until the updated replacement instances are available and deemed healthy.” AWS will route traffic to existing instances if any issues arise during the update, keeping the user experience consistent. Additionally, the automatic deployment model ensures that the application remains available during the updates reducing downtime for both the application managers and your end users. Additional information can be found on the AWS Blog.
It is important to note that automatic, managed platform updates applies to minor updates, language improvements, and patches. These can all be configured to update automatically within the maintenance window your system administrator specifies. However, because major updates usually require a lot more testing before they can be deployed successfully, AWS does not allow you to set
these to update automatically. Instead, major updates still need to be triggered manually in order to protect your web applications and services. Keep in mind though that all minor updates and patches are taken care of automatically, which saves you and your development team a significant amount of time (and stress).