WSO2 Stratos – A Comprehensive Open Source Middleware Platform
By Dakshitha Ratnayake
- 21 Aug, 2011
There are a lot of cloud solution providers in the market today that it is a challenge to identify what works best for an enterprise and its business model. This is why an understanding of what makes a good cloud solution is important.
Reality is, some of the popular solution providers offer over-bloated middleware products which have evolved though the years with patches and fixes. These solutions are not only expensive but utilize a lot of resources. Their proprietary software carries a long-term business risk well-known in the cloud realm as vendor cloud lock-in.
WSO2 Stratos, the industry’s first, complete, 100% open source cloud middleware Platform as a Service, addresses most of these problems with its low footprint, agile model. Built from ground-up, Stratos is capable of leveraging the cloud technology to its fullest potential. It offers organizations of all sizes, a fully-hosted middleware platform that extends WSO2 Carbon - the award-winning, OSGi-compliant middleware platform.
Read more to find out what key features make WSO2 Stratos effective as a PaaS.
A bit of the Terminology
The Core Features of Stratos
A bit of the Terminology
Before going into detail about WSO2 Stratos, let's take a look at what Middleware and Platform as a Service mean.
What is Middleware
Middleware is software that facilitates exchange of data between two application programs within the same environment, or across different hardware and network environments. Middleware manages the interaction between disparate applications across diverse computing platforms.
The middleware layer usually addresses common concerns of Enterprise applications such as authentication, authorization, logging, centralized thread pool management, governance and so on. These are common but crucial aspects that need to be addressed in the development of Enterprise Software. Middleware provides interfaces to developers to write end user software. So the developers will be calling the corresponding Application Programming Interfaces for this purpose.
What is Platform as a Service (PaaS)
Platform as a Service (PaaS) is the delivery of middleware, as a service. PaaS offerings facilitate deployment of applications without the cost and complexity of buying and managing the underlying hardware and software and provisioning hosting capabilities. PaaS provides all the infrastructure needed to run applications on the cloud. It's delivered in the same way as a utility like electricity or water. Users simply consume these utilities without worrying about the complexity behind the scene such as hosting, scaling, availability and security. And just like a utility, PaaS is based on a metering or subscription model so users only pay for what they use. PaaS provides a clean API to software developers to build end-user software.
Stratos is WSO2's Platform as a Service offering for public, private and hybrid cloud deployments. Before looking into its features, let's investigate its coverage and scope in the middleware space.
WSO2 has a range of middleware products built on one platform known as the WSO2 Carbon Platform. These products include an Enterprise Service Bus (ESB), a Governance Registry, an Application Server among many others. More information and product downloads can be found here in the Oxygen Tank.
The same comprehensive Carbon platform and products stack can be hosted on the cloud as a PaaS. This is called WSO2 Stratos. In other words, it’s the same set of products available for stand-alone installation, now offered as a Platform as a Service offering.
Stratos is the industry's first 100% open source, low-footprint, complete cloud middleware platform for enterprise applications. WSO2 Stratos fulfills an array of middleware requirements such as service management, mediation, security, governance, monitoring, process and rules management, gadgets, mash-ups and more. Through instant, self-service provisioning, users can simply leverage these capabilities on demand, without product installation and middleware configuration overhead. Users can choose what they want and build their software using the relevant platform components.
The Core Features of Stratos
There are few key features which make WSO2 Stratos stand out from competitive PaaS offerings. But, before we get to that, do you know what makes a PaaS reliable and powerful? Given below is a list of key attributes that you should look for in a PaaS.
- Availability of a set of core services; not just an App Server but Identity, Governance, Data, Cache, ESB, BPS, Billing, Logging etc.
- Self Service
- Incremental Deployment
Now that we know what to look for in a PaaS, let's look at some core features of Stratos and see how they relate to the attributes listed above.
What Makes Stratos Stand out
- It's complete. WSO2 Stratos offers the entire award winning WSO2 platform as a service. Not just an Application Server and an ESB but so much more! You will enjoy an assortment of services catered just for your middleware needs.
- It's cost effective. As a 100% open source solution, Stratos does not involve any licensing fees and the risks of cloud vendor lock-in are completely removed.
- It's secure. Stratos prevents tenants from writing code with privileged operations so that they will not be able to write malicious code. Stratos provides a Sandbox environment that is similar to applets. It only allows to run code that is signed by a particular key.
- Offers increased deployment flexibility. Each middleware product Stratos offers as a Service has the same programming model of its stand-alone counterpart. As a result, on-premise applications can be seamlessly migrated to a cloud environment with minimum configuration effort. Users can choose the right scalable infrastructure for their offerings, develop and test applications on-premise before migrating them to the cloud. More importantly, deployments on Stratos can be seamlessly migrated to an on-premise deployment environment or to a private cloud, allowing full freedom from cloud lock-in.
- Involves minimized risks to business continuity. Since WSO2 Stratos is offered for both public and private cloud options, users can host business-critical applications on a private cloud and the rest on the public cloud, thereby minimizing disruptions and the business impact of a potential fail-over.
- It's distributed and dynamically wired. The Stratos architecture is clustered and thereby enables multiple applications running in different machines to concurrently share resources.
- It's multi-tenanted. That means, it’s the same platform shared by multiple tenants. Think of a tenant as a company, e.g. www.abc.com, www.xyz.com. For each tenant there will be a set of users, user roles etc. Stratos supports multi tenancy so multiple organizations can register as separate organizations and use the system without interfering with the data from other organizations.
- It's elastic. This means when the load increases, the system expands and when the load reduces the system shrinks. Therefore the resources are optimized. So you’re using only what you require.
- Accurately metered and billed. The usage of Stratos is metered and you’re billed for what you use. It's like any utility billing system. So what is the Metering Process in Stratos? Each service collects the number of service calls, request/response bandwidth, registry bandwidth (upload/download) and the total registry space usage.The collected data is sent to WSO2 Business Activity Monitoring (BAM) publishers, which sends the data to the BAM service. The BAM service summarizes periodically and the summarized data is made available on the Stratos Manager. How does Billing work in Stratos? A scheduled invoice is generated. A user is able to view past invoices and the current (interim) invoice and securely pay the invoice via Paypal. Stratos notifies the customer via email on received payments and also notifies the administrator on customers exceeding the credit limit. Stratos presents a summarized view to the administrator.
- Provides tenant isolation and execution. In Stratos, each tenant is given a security domain. Each domain may have its own user store and permissions and therefore can have a set of users and permissions enabling users to access resources. Each domain is isolated and does not have access to other domains. It achieves execution isolation by keeping all states in a context and for each tenant, different contexts are created.
- Allows self service provisioning. Stratos enables you to set up your own tenants, manage and configure them according to your unique business needs.
- Provides an identity service. In Stratos, each tenant has access to an identity service and can create its own user key stores, permissions and roles. Each tenant is identified by its domain.
- Provides throttling. Stratos restricts tenants from using more than the allocated resources depending on the usage plan. These resources are the number of users per tenant, storage space and number of requests to webapps, services etc.
- Provides Google authentication. Enables sign into Stratos using Google Apps username and password. If a tenant does not exist, it will be created with the same name as Google Apps Domain.
Apart from all that, Stratos is lean, testable and incrementally deployable. Therefore Stratos covers the entire spectrum of the key attributes of a reliable and efficient Platform as a Service. Try it out for yourself!
Dakshitha Ratnayake, Software Engineer, WSO2 Inc.