A teams review PaaS Framework and PaaS middleware offerings, understanding goals, benefits, and capabilities will influence PaaS project success. Johan over at Mendix has recently defined a consistent and coherent taxonomy, and I have been comparing his PaaS view with how WSO2 differentiates our Private Enterprise PaaS offerings.
When using traditional application servers and integration middleware, developing a multi-tenant SaaS application that meets SaaS requirements (i.e. personalization, tenant dimensions, self-service, resource optimization, and data aggregation) is a non-trivial exercise. The prior blog post in this SaaS series describes the requirements and constraints for SaaS applications.
Because WSO2 Carbon based middleware servers contain a tenancy framework, development teams may rapidly migrate single-tenant web applications into multi-tenant SaaS applications. WSO2 Carbon creates a multi-tenant environment inside the middleware servers (i.e. application server, integration server, Enterprise Service Bus) and delivers unparalleled tenant density. For more information on the cost and effort savings, read the multi-tenant, shared container PaaS white paper.
The WSO2 Carbon framework creates tenant partitions, registers tenant specific applications, provides tenant administration tools, and holds run-time tenant context.
In this blog post series, we will deploy a tenant-aware SaaS application on the WSO2 Application Server 5.1, illustrate how to acquire the Carbon Context object, and demonstrate multi-tenancy in action. The WSO2 Application Server is based on Apache Tomcat, and extends Tomcat with enterprise security, logging, management, clustering, and multi-tenancy; turning the open source Apache Tomcat project into Enterprise, Cloud-Native Tomcat++
Step 1 – Deploy Carbon and Acquire Carbon Context
The SaaS application demonstrates tenant-specific framework objects, illustrates tenancy isolation, and reviews the Java Tenancy API within WSO2 Carbon. The application code is available from GitHub at https://github.com/karux/CarbonSaaSTest.git
The Carbon Context object holds registry, cache, queue, user realm, and role based access control (RBAC) information for each tenant run-time context. Each SaaS application can use a Carbon platform API to access context details and personalize the application experience.
This blog tutorial and example code demonstrates the following getting started concepts and steps:
- Getting Started #1 – Defining a Tenancy Dimension Model
- Step 0: Deploy the WSO2 Application Server and start server
- Step 1: Log into the Carbon administration console as the super-administrator
- Getting Started #2 – Provisioning SaaS Applications
- Step 0: Compile the CarbonSaaSTest Application
- Step 1: Provision a Global Tenant Scope SaaS Application
- Getting Started #3 – Acquire Tenant Context
Multi-tenant SaaS applications deliver a personalized client experience while maximizing performance and efficiency. Many teams are challenged by the specialized knowledge required to create a SaaS application on a legacy Java platform. Creating SaaS applications requires detailed knowledge of multi-tenancy, contextual personalization, declarative programming, and infrastructure scaling. The WSO2 Carbon platform contains unique Cloud-Native frameworks that decrease development challenges when building multi-tenant SaaS applications.
The secret is starting to leak out from multiple sources; Private PaaS adoption by enterprise end-user organizations is off to a slow start in 2012-2013. Application development teams are missing an opportunity to accelerate their agility and operate at the speed of Now. As enterprise teams evaluate Private PaaS alternatives and PaaS architecture, they must carefully identify cloud benefits, cloud characteristics, cloud-native platform options, and cloud adoption strategies.
- Move all their applications to the Cloud by plugging non-Cloud-aware servers and frameworks onto a PaaS Cloud-enablement framework. The fully extensible cartridge model allows new services, languages and frameworks, and runtime containers to be plugged in to the PaaS framework.
- Achieve Cloud scale for PHP applications, MySQL databases, and Tomcat hosted web applications.
- Deliver a single PaaS deployment over multiple IaaS environment (hybrid cloud).Â WSO2 Stratos supports popular IaaS providers (vmWare, EC2, OpenStack, CloudStack, Rackspace, Eucalyptus) via the Apache jclouds project and Puppet based deployers.
- Improve TCO by lowering and optimizing run-time cost by moving applications to VM-based IaaS or choosing a lightweight Linux Container (LXC) deployment model that optimizes resource consumption and minimizes application infrastructure footprint.
Additionally, the Stratos bits have been officially accepted as an Apache incubator project.
Cloud Native Paas Recommended Reading
Apache Stratos will be a polyglotÂ PaaSÂ framework, providing developers a cloud-native environment for developing, testing, and running scalable applications. Â With Apache Stratos, IT providers will gain high utilization rates, automated resource management, and platform-wide insight including monitoring and billing.
Apache is the obvious choice for a project that already embodies Apache values and is driven by developers who are committers on many other Apache projects. Â By donating the project to Apache, WSO2Â desires to attract open community members from the following constituencies:
- Organizations adopting Private PaaS deployment within an enterprise and accelerating enterprise application deployment.
- PaaS providers relying on a PaaS framework to build a PaaS that is customized to their particular vertical industry, ecosystem, or internal development processes.
- SaaS providers requiring a widely-deployed and supported elastic, multi-tenant Cloud-native platform.
- ISPs offering hosted application services with higher resource utilization capabilities than provided by IaaS layers.
- IaaS vendors providing higher-level PaaS services to their customers.
- Analytics, data, integration, and application server vendors adding cloud capabilities to their products through Stratos Cartridges.
The proposed committer list includes individuals from SUSE, Citrix, NASA Jet Propulsion Lab (JPL), Sungard, and EngineYard. Â Join the Apache Stratos community, participate in extending the 100% Open Source PaaS framework, and create a Cloud-Native fabric.
Figure 1.0: Apache Stratos Architecture
“Do you wait around until 2015 (or later) for Java EE 8 to bring you the cloudy features you’re looking for, now that we know for sure that Java EE 7 won’t have any? Or, do you just wait for your preferred IT megavendor to get around to offering you a for-real, multitenant, cloud native Private PaaS that goes beyond simply slapping a pre-built middleware stack onto a virtual machine? ”
The tongue in cheek statements imply that a best-of-breed IT vendor can offer you a Cloud Native Private PaaS alternative today. Check out the Cloud Native Private PaaS architecture underlying WSO2 Stratos – available today.
Recommended Reading for Cloud Native Private PaaS
Bridge IaaS and PaaS to more efficiently and flexibly tackle the challenges of the modern connected enterprise.
As enterprises deploy private IaaS clouds into production, they are reevaluating their future application delivery models. SUSE and WSO2 believe that private PaaS will leverage the automation and scalability of Private IaaS solutions, such as OpenStack-based SUSE Cloud, and deliver secure, standardized development environments that will make migrating to an agile, service oriented delivery model possible.
View the Bridging IaaS with PaaS webinar presentation, and
The dZone Definitive Guide to PaaS IaaS Solutions delivers a detailed picture of the diverse Cloud landscape and a PaaS Outlook for 2013 (authored by me).
With simple comparison grids and product description pages, complete with unbiased, third-party reviews, you’ll be able to make a well-informed, data-driven decision about the cloud services you want to adopt. The solution you choose is entirely dependent on the types of tasks you want to perform. This guide will help you decide what best fits your company’s needs, and what to look for in the solution you buy.
The PaaS Outlook provides a brief insiders perspective on:
- The importance of Programming Language Support
- Using Cloud-based DevOps processes to accelerate and automate delivery
- The hybrid platform goal state
Business agility means the ability to change IT around emerging business opportunities. However, IT has been less than nimble in recent years; application backloads are at an all time high, and confidence in IT is at an all time low.
DevOps principles and practices combined with PaaS characteristics will quicken IT solution development and delivery. DevOps focuses on improving continuous activity execution, such as continuous build, continuous integration, continuous test, and continuous delivery. These activities combine to create a ‘no wait’ environment that accelerates business agility.
By incorporating automation into developer and operations processes, teams bypass time consuming manual tasks and gain faster phase execution. Both DevOps and PaaS promote simple, on-demand self-service environments that shield team members from complexity and reduce skill hurdles. By offering on-demand self-service access, rapid business innovation and experimentation is possible. By reducing complexity, team members are not required to obtain special training and skills before consuming IT services and infrastructure.
In this Webinar, David Linthicum and I show you a path towards agile IT through the use of new approaches and emerging technology. Moreover, you will learn new concepts around DevOps improvement, the use of emerging PaaS technology, and agility best practices that will guide you to success the very first time.
Recommended Reading and Viewing