Friday, May 11, 2012

Amazon Elastic Beanstalk

Amazon have finally annouced their Platform as a Service offering - Elastic Beanstalk so it looks like 2011 would be the year of PaaS.

The first version provides a Tomcat platform that can deploy and run your WAR file on a automated scalable architecture that includes all the load balancing, auto scaling, DNS, monitoring and notification. This is an ideal companion to Database as a Service Amazon RDS.

Containers and Custom Amazon Machine Images
What is really important is Amazon have the concept of an Elastic Beanstalk Container. When you create your application you choose your Solution Stack. Currently there are only 5 stacks:
            64bit Amazon Linux running Tomcat 6 and 7
            32bit Amazon Linux running Tomcat 6 and 7
            64bit Amazon Linux running PHP 5.3
            32bit Amazon Linux running PHP 5.3
            64bit Windows Server 2008 R2 running IIS 7.5
Or you can upload your own stack.
What is powerful is you can use Elastic BeanStalk with a custom Amazom Machine Image. All you need to do is first bring up the Elastic BeanStalk AMI as a regular EC2 server and customize it before using with Elastic Beanstalk. This means you can use Memcached, Terracotta, Nginx, Jetty etc. We will see public custom AMIs appear for the various software stacks just like for EC2 Servers.

Flexibility and Portability
Early PaaS products lacked flexibility to tailor the components - often applications have all sorts of custom requirements (caching, third-party tools, version requirements etc). Being able to tailor Elastic BeanStalk AMIs makes it very flexible!! However to really take off PaaS needs to be Portable, so if some company could create an Elastic Beanstalk for Eucalyptus and OpenStack.

Production Application = Infrastructure + Product + Configuration + Data 
Installation of a Production Application will become little more than:
    1. Running the product install script on the Elastic Beanastalk AMI and doing a little configuration and saving the new Application AMI.
    2. Setting up the data requirements for the application (for example creating a database).
    3. Starting the Application AMI in Elastic Beanstalk and deploying any application code.
This means it is incredibly easy to setup production java-based applications like Alfresco. While now a PHP version of Elastic Beanstalk is available so it is really open the floodgates to applications like SugarCRM, Magento etc etc.

Elastic Beanstalk looks like an ideal platform for building Restful or SOA (Service Orientated Architecture) Web Services.

Many larger enterprises have already reduced costs by consolidating their data centers and virtualizing their servers. But I think we will see adoption of public and internal clouds increase when mature, flexible, and portable PaaS products are available. A number of major vendors are developing PaaS platforms:
    VMware vFabric
    Redhat PaaS Makara
    Windows Azure
Amazon have set the bar for the cost of PaaS. It is a free part of a Cloud Offering! Free always helps adoption and there is tremendous potential here for the future!!!! 

Your Reviews/Queries Are Accepted