BT
x Your opinion matters! Please fill in the InfoQ Survey about your reading habits!

Amazon Enters PaaS with Beanstalk

by Abel Avram on Jan 19, 2011 |

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.

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Elastic middleware is only the first step towards PaaS! by mani doraisamy

Hope, database & pricing also becomes elastic in future. Elasticity/Scalability is like a chain whose strength is the weakest link of the chain: manidoraisamy.blogspot.com/2009/01/who-are-comp...

A PaaS fairytale by Paul Fremantle

This is definitely a big step forwards in usability for Amazon, but its not a PaaS. A PaaS needs to be multi-tenant and only charge for what you use. If you have a webapp you need 24x7 then Amazon requires you to have an EC2 instance running 24x7 and you have to pay for that. This is because Amazon is fundamentally an IaaS not a PaaS.

In Google AppEngine or Stratos you can deploy webapps and the system is designed to charge for what you use not time spent idle. For more information take a look at this: Elastic Beanstalk - a PaaS fairytale

Paul Fremantle, CTO, WSO2

Re: A PaaS fairytale by mani doraisamy

+1

Re: A PaaS fairytale by Abel Avram

Hi Paul,
I think the essence of a PaaS is the ability to offer and consume the services offered by an entire solution stack (platform). That is in contrast to IaaS where you need to build your own platform on top of raw infrastructure. And I think Amazon achieves that very well with Beanstalk.
The fact that they are using a different pricing than Google does not make Beanstalk less PaaS. They can choose the pricing they want, and customers will do their own math going where it is more enticing for them.
PS. I don't see why you can't create a multi-tenant application with Beanstalk.

Re: A PaaS fairytale by Paul Fremantle

Abel

Of course anyone can create a multi-tenant app with Beanstalk. That wasn't what I was trying to get at. The point I'm trying to make, and probably I'm not being clear enough, is the level at which the multi-tenancy operates. Amazon operates multi-tenancy at the VM level. That means that customers pay per VM, however it is used. Other PaaSes including Google, Heroku and my companies offering (Stratos) operate the multi-tenancy at a higher level. The result is that you don't need to run a VM per tenant. Each VM at least takes up a chunk of physical memory, which costs money. By sharing at a higher level a true PaaS can avoid this and really charge per usage (i.e. per hit, per CPU, per bandwidth, per disk record) and not per time running. Similarly a true SaaS virtualizes right up to the app level. If I run one copy of an app per tenant, that isn't SaaS - that is just IaaS being used to run an app. If I run one Tomcat per tenant (as Beanstalk does) that isn't PaaS, its just some nice tooling around IaaS.

Paul

Re: A PaaS fairytale by mani doraisamy

When you virtualize VM, you get a multi-tenant infrastructure. Not a multi-tenant application. Building a multi-tenant application is still your responsibility - from the scratch.

Similarly, when the platform doesnt expand/release infrastructure automatically - it becomes your responsibility. These are the essential characteristics of PaaS, which is not there - yet in beanstalk.

Re: A PaaS fairytale by Vikas Hazrati

In any case, this is a big step forward. After Salesforce and GAE in the PaaS space, Amazon had to do something not to be branded as a IaaS only. Though this is a step in the right direction but PaaS providers like GAE are much ahead of Amazon in offering ton of services which make the life of an application developer much easier. Combine this with the easy integration of workflow enabling technologies like Google App Script and you can cover a much larger spectrum. It would be interesting to see nevertheless how does the Java PaaS offered here and VMForce which would eventually be offered by Salesforce change the dynamics of the market. Interesting times ahead. www.inphina.com

Re: A PaaS fairytale by Abel Avram

Paul,
multi-tenancy is indeed a great feature, but I am not sure if it is a "must" for a cloud offering to be called PaaS. Google introduced multi-tenancy support in GAE in August 2010. Should we say that GAE had not been a PaaS before?
Indeed, Amazon does not abstract the services offered at the level GAE does, but, on the other hand, they offer a higher customization of the platform, which is specific to IaaS but comes handy to anyone using the cloud.
I don't know how to conclude this discussion. Are we in need of coining a new term for Amazon's offering? Something between IaaS and PaaS?

Re: A PaaS fairytale by Paul Fremantle

Abel

Google App Engine has always been multi-tenant: it has been multi-tenant from launch. GAE has never launched a separate VM per domain. The multi-tenancy support which was launched in August 2010 was a facility to help users take advantage of the inherent multi-tenancy by writing multi-tenant applications on top of GAE. Before that, although multi-tenant, the multi-tenancy was not exposed to the users.

The August enhancement basically allows a dev to create a single app that can be deployed to many tenants simultaneously rather than requiring each tenant to deploy and manage that application.

Paul

Re: A PaaS fairytale by mani doraisamy

Are we in need of coining a new term for Amazon's offering? Something between IaaS and PaaS?

Someone in TSS called it - IaaS++

Re: A PaaS fairytale by Ryan Slobojan

Are we in need of coining a new term for Amazon's offering? Something between IaaS and PaaS?

Someone in TSS called it - IaaS++


Oh crikey - every time someone invents a new cloud-related acronym, a busful of angels get chlamydia.

Please, think of the angels.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

11 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT