In my last post I introduced WSO2 Stratos, the 100% open source cloud platform for enterprise applications. Stratos Live is a complete Platform as a Service (PaaS) and if you try it out you will see a hosted version of Stratos. You can sign up and try it out and see what a PaaS looks like and what it has to offer.
Stratos is a PaaS but does Stratos have what it takes to be a 'good' PaaS? Before we get to that, do you know what makes a PaaS reliable and powerful? No? Well, 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 if Stratos exhibits the attributes listed above.
The Core Features
- 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.
- Stratos is distributed and dynamically wired. The Stratos architecture is clustered and thereby enables multiple applications running in different machines to concurrently share resources.
- Stratos is 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 seperate 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.
- It’s metered and billed. The usage of Stratos is metered and you’re billed for what you use. It’s like any utillity 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 the Business Activity Monitoring or BAM publishers, which sends the data to the BAM service. The BAM service summarizes periodically and the summarized data will be 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 can 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 and 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 do 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.
- It allows self service. Stratos enables you to set up your own tenants, manage and configure them according to your unique business 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. Statos 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.
- 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!
Don't forget to check these out.What is a Lean Cloud Platform?
How to Setup a Stratos System on Your Personal Machine