Wednesday, August 31, 2011

Comparison of WSO2 Stratos with Other PaaS Offerings


Introduction
The number of Platform as a Service (PaaS) offerings is constantly increasing. Therefore, an understanding of the key strengths of each is vital in selecting the right PaaS for an enterprise’s business model and requirements. This article is a good place to start your analysis.

WSO2 StratosLive is the public PaaS offered by WSO2, which is powered by WSO2 Stratos, the complete, low foot-print, 100% open source, multi-tenented PaaS for public, private and hybrid cloud deployments. StratosLive offers a complete stack of middleware products as a Service. It has capability for service management, mediation, security, governance, monitoring, process and rules management, gadgets, mash-ups and more. Built on top of the the award-winning, OSGi-compliant, component-based WSO2 Carbon platform, WSO2 StratosLive has the same programming model of any of its stand-alone  middleware products. This offers remarkable deployment flexibility and is also a factor enabling freedom from vendor cloud lockin in addition to its open source model. 
Without further elaboration, let’s do a factual analysis of  the features of WSO2 StratosLive with three leading PaaS providers available today: Google AppEngine, Amazon Elastic Beanstalk, and CloudBees RUN@Cloud.

Applies To:
 1.5.1
 
The Comprison
The following table provides a summarization of the article "Java PaaS shootout" by Michael J. Yuan1 while adding WSO2 StratosLive to the comparison.
 
App Engine
Amazon Beanstalk
CloudBee's Run@Cloud
WSO2 StratosLive
What is it?
Users can upload servlets. AppEngine hosts them and manages them. 
Managed Tomcat.
 
Expensive.
Tomcat, load balancer. Integrated with SVN. Can change source code and update all deployment aspects.
SOA middleware platform as a service.
 
Fully multi-tenant.
 
Support both Java Web apps and Web services.
Java support
Yes, but does not support some I/O and network operations
Full Java
Full Java
Yes, but File access is limited
Outbound connections
Time out in 10 seconds
OK
OK
OK
Support for standard Java Libs
Have problems when they use unsupported APIs
Yes
Yes
Yes (Java security manager limits file accesses)
Performance and scalability
Auto scale, High scalability, but have bit high latency.
 
Swapping the app out might slow down first request.
Auto scale by creating EC2 instances.
Can swap unused processes out of JVM. Can load-balance multiple tomcats in the same EC2 instance.
Auto scales (up & down) by monitoring the load and creating/shutting down new nodes.

Load Balancer routes the requests.

Can lazy-load services and other artifacts.
Storage
Supports Big Table and Hosted MySQL. 
However, search support in BigTable case is limited. 
 
e.g.  Each query can only have 100 results.
 
Supports RDS (relational) , SimpleDB (NoSQL) or can run with your own DB.
Has managed MySQL databases and provides a console to manage them.
Supports Cassandra as a Service, managed MySQL, and HDFS. 
 
Cassandra and HDFS support native multi-tenancy.
Import/ export data
No (It is difficult due to 30 second time limit).
Can write code to automate.
Can write code to automate.
Can write code to automate.
Integration with others
Integrates well with other Google services.
SQS, SES (email service), payment APIs
S3, SQS, SES etc.
Integrates with Google auth model and other WSO2 services. Also S3, SQS, SES etc. 
Session handling
Stores sessions to storage and handles them seamlessly.
Only sticky sessions.
Transparent session management.
Only sticky sessions.
Multi-tenancy
Yes
No
No
Yes
     

Here are few more key differentiators of WSO2 StratosLive:
  1. All these offerings support Web App Hosting as a Service. WSO2 StratosLive supports this and more. In addition to Web App Hosting, it also supports hosting Axis2-based services, Mediation, and Workflow hosting as a Service. WSO2 StratosLive is a real SOA platform as a Service and the only one that is.
  2. WSO2 StratosLive lets you move Axis2-based Web Services (.aar files) and workflows to the Cloud (to WSO2 StratosLive) without any changes to them. If you have some Axis2-based services, you can upload them to WSO2 StratosLive and it will just work. More importantly, deployments on StratosLive can be seamlessly migrated to an on-premise deployment environment or to a private cloud with minimum configuration effort, offering full freedom from cloud lock-in and remarkable deployment flexibility.
  3. WSO2 Stratos provides real multi-tenancy support. That is, different tenants think that they have their own servers, while they are actually served from one Java Server. In other words, tenant isolation is done at Java level, not at Virtualization level. That means, Stratos provides greater sharing capability and "Pay as you go" and "Pay for what you use" better than a VM-based model. WSO2 Stratos is the only AppEngine that does this out of other three PaaS offerings discussed here. For more details, please refer the papers 3, 4 and 5 in the references section.
Reference:
1. Java PaaS shootout - a technical comparison, Michael J. Yuan, Chief Scientist, Ringful Health, 2011
3. Multi-tenant SOA Middleware for Cloud Computing 458–465, A. Azeez, S. Perera, D. Gamage, In 2010 IEEE 3rd International Conference on Cloud Computing
4. WSO2 Stratos: An Industrial Stack to Support Cloud Computing, IT: Methods and Applications of Informatics and Information Technology Journal, the special Issue on Cloud Computing, A. Azeez and S. Perera, 2011
5. A Multi-tenant Architecture for Business Process Execution - 9th International Conference on Web Services (ICWS), Milinda Pathirage, Srinath Perera, Sanjiva Weerawarana, Indika Kumara, 2011
 
Author
Srinath Perera, Software Architect, WSO2 Inc.

No comments:

Post a Comment