Friday, August 19, 2011

WSO2 Stratos in contrast to Other Java PaaS Offerings

In the article "Java PaaS shootout" Michael J. Yuan provides a pretty nice comparison of Google AppEngine, Amazon Elastic Beanstalk, and CloudBees RUN@Cloud. Following table provides a summary of that while adding WSO2 Stratos to the comparison.

Can swap unused
processes out of JVM. Can load balance multiple tomcats in the same EC2
instance

Can lazy load services and other artifacts.
Auto scale (up down) by monitoring the load and creating
new nodes. LB route the requests.

Storage

Support Big Table and Hosted MySQL.

However, search support in BigTable case is limited.

e.g. Each query
can only have 100 results.

Support RDS (relational) , SimpleDB (NoSQL) or can run with your
own DB

Has managed MySQL databases and provide a console to
manage them

Support Cassandra as a Service, managed MySQL, and HDFS.

Cassandra and HDFS
support native multi-tenancy

Import/ export data

No (hard due to 30 sec limit)

Can write code to automate

Can write code to automate

Can write code to automate

Integration with others

Integrate well with other Google services

SQS, SES (email service), payment APIs

S3, SQS, SES etc.

With Google auth model and other WSO2 services. Also S3, SQS, SES etc.

Session handling

Store sessions to storage and handles them seamlessly

Only sticky sessions

Transparent session management

Only sticky sessions

Multi-tenancy

Yes

No

No

Yes

Also let me listout couple of key differentiators of WSO2 Stratos.

All these offerings support Web App Hosting as a Service. WSO2 Stratos supports that, but provides much more. In addition to Web App Hosting, it supports hosting Axis2 based services, Mediation, and Workflow hosting as a Service. It is real SOA platform as a Service, the only one to does that.

It let you move your Axis2 based Web Services (.aar files) and workflows to the Cloud (to WSO2 Statos Live) without any change to them. If you have some Axis2 based services, chances are that you can upload them to WSO2 Stratos and it will just work.

WSO2 Stratos provides real multi-tenancy support. That is different tenants will think that he has his own server, while actually all are served from one Java Server. In other words, Isolation is done at Java level, not at Virtualization level. That means it can provide greater sharing and provide "Pay as you go" and "Pay for what you use" better than VM based model. Only AppEngine does that out of other three PaaS offering. More details are in following papers.