Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Amazon Enters PaaS with Beanstalk

Amazon Enters PaaS with Beanstalk

This item in japanese

Amazon is moving into the PaaS field offering a Java platform in the beginning, but they intend to create platforms for every developer out there.

Amazon has been known until now as a cloud Infrastructure-as-a-Service (IaaS) provider. Companies interested in deploying applications in Amazon’s cloud had to create or use a predefined AMI, then configure a set of adjacent services needed to run the application such as load balancer, scaling, monitoring, data storing. But Amazon has decided to move into Platform-as-a-Service (PaaS), offering Elastic Beanstalk, an application development and deployment container, which comes with a platform and all necessary services needed for the customer’s application to run. 

Currently in public beta, Elastic Beanstalk supports a Java-targeted container built on Linux, Apache, Tomcat, Java, a Load Balancer, and an Auto Scaling Group. Developers will just have to upload their application into the container, and it will run without having to make extra configurations. Basically, Amazon is offering an entire platform in one step.

For each application version the developer can define an environment made up of an EC2 instance, a Load Balancer and a Scaling Group. While it is unlikely that the developers will create a different environment for each minor version of the application, it is likely that different environments will be created for development, testing, and deploying. Such an environment has a configuration attached to it, detailing the parameters defining the entire stack. A Beanstalk is made up of the application, its environment, and the respective configuration (more details here).

Amazon’s offering is interesting because developers still have control over the entire stack, they being able to tweak the platform as they desire. There are many settable parameters such as the AMI used, the availability zone, the database used, JVM settings – heap size and garbage collection, environment variables –, monitoring interval, HTTPS listener port for balancer, notification, logging, and others.

Elastic Beanstalk comes with an API and console access that can be used to interact with the platform. Developers also have a plug-in allowing them to define a Beanstalk and deploy the application to the cloud directly from Eclipse.

Amazon currently offers only one Java-targeted Beanstalk configuration, but they are working with partners to create a wide variety of platforms, according to Werner Vogels, CTO at Amazon:

AWS Elastic Beanstalk has been developed in such a way that other programming platforms can be created relatively easily. This is extremely important as the AWS developer ecosystem has always been very rich and we want to keep it that way. Our goal is to ensure every developer's favorite platform is always available on AWS so they can stop worrying about deploying and operating scalable and fault-tolerant application and focus on application development. In a nutshell, we want to let a thousand platforms bloom on AWS.

It is likely they will create even .NET platforms targeting .NET developers who are usually lured by Microsoft’s Azure.

Using Elastic Beanstalk does not involve additional costs other then the usual ones related to using EC2, S3, etc. The service is currently available in the US East, Northern Virginia, but the service will be expanded to other zones in the near future.

Rate this Article