WSO2Con 2011: Open Source Middleware for the Cloud: WSO2 Stratos - Afkham Azeez
By WSO2Con 2011
- 12 Dec, 2011
Understanding Cloud Middleware and PaaS
There has been a great deal of talk about the role of cloud middleware and platform-as-a-service (PaaS). However, the discussions have been accompanied by confusion about these different options for extending applications to the cloud. Therefore, Azeez began his presentation by providing a few definitions.
Just as enterprise middleware abstracts common application concerns out of an on-premise infrastructure, Azeez explained, cloud middleware abstracts these from the cloud infrastructure. A cloud middleware platform, also referenced by Gartner as a cloud-enabled application platform (CEAP) is the underlying software base for a PaaS. Enterprises may choose to implement cloud middleware platform in order to set up their own private PaaS, he noted, or they may choose to use a PaaS hosted by a third-party.
In either case, Azeez stressed the importance of enterprises maintaining clean APIs that separate the concerns of cloud applications from the underlying cloud infrastructure, to protect against getting locked into the implementation. He added that open source PaaS and cloud middleware platforms that support open standards also protect against the potential of lock-in.
Evaluating PaaS Options
Azeez suggested that IT professionals should expect several features from an effective PaaS or cloud middleware platform.
First, the PaaS should be lean and promote efficiency since all on-premise benefits are magnified in large dynamic deployments in the cloud.
Second, an offering should be available in private, public, and on-premise environments, giving enterprises the flexibility to deploy wherever required. Azeez noted that getting locked into a particular public PaaS could impose long-term repercussions.
Third, the cloud middleware platform or PaaS should provide all the core services of a typical enterprise middleware platform, such as an application server, identity management, registry, data management, cache, enterprise service bus, and business process management, Azeez said. Additionally, he stated that it needs to include functions critical for managing cloud usage, such as billing and logging.
Fourth, is the availability of open standard interfaces to common services: "If you have open standards, the possibility of getting into an API lock-in or vendor lock-in is much less,” Azeez explained. “The skill set of people who are familiar with these open interfaces and open standards makes it very easy to adopt a particular provider, and if you want to move to a different provider it's very easy because it's standard stuff."
Fifth is that offering should feature cloud-native attributes, including self-service, multi-tenancy, elasticity, metering, incremental deployment and testing.
Last, is the ability to support both single-tenant and multi-tenant models, in which tenants can have their own features and/or use an application that is offered to all or many tenants.
Multi-tenancy Demands Isolation
Multi-tenancy is a central requirement for cloud computing, so Azeez discussed the different forms of isolation required to support multi-tenancy, using the WSO2 Stratos cloud middleware platform and StratosLive PaaS as examples.
There are three possible ways to achieve multi-tenancy: using one physical machine per tenant, using one virtual machine (VM) per tenant, or sharing machines or VMs across tenants.
“Having individual machines can be very expensive,” Azeez noted. “Sharing machines across tenants is much more cost effective.” WSO2 addresses this isolation on two fronts: tenant and execution.
In order to achieve tenant isolation, WSO2’s platforms use the concept of a “super tenant” to manage an entire tenant system. Each tenant is given a security domain that may have its own user store and permissions, which enable other users to access specific resources. Each domain is isolated and secure, preventing access to other domains.
In order to achieve execution isolation, WSO2’s platforms ensure that the requests coming into one tenant are not incorrectly dispatched into another tenant. WSO2 handles this through the Axis2 stateless nature, which keeps all states in a context. Each tenant has its own context, Azeez explained, and there are different execution contexts for each tenant.
Azeez noted, “Everything ties into the standard mechanisms provided by the platform.”
To learn more about open source middleware for the cloud, as well as WSO2 Stratos and WSO2 StratosLive, view Azeez's full presentation here.