Category Archives: Cloud Architecture

Cloud architecture encompasses the design styles, development patterns, and run-time components that maximize Cloud characteristics and decrease team effort and special skills.

Creating a SaaS App with the Multi-Tenant Carbon Framework – Step 1

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

Continue reading

Building Multi-tenant SaaS Applications

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.

Continue reading

Stratos Cloud Native PaaS Reloaded

WSO2 Stratos 2.0 reloads the definition of Cloud Native PaaS.   With Stratos 2.0, IT teams can:

  1. 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.
  2. Achieve Cloud scale for PHP applications, MySQL databases, and Tomcat hosted web applications.
  3. 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.
  4. 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

Cloud Native PaaS is for Real – Available Today

 

Cloud-aware applications and PaaS architecture

Apache Stratos Brings Cloud Native PaaS to Apache

PaaS Outlook for 2013

 

 

 

 

Cloud Native Private PaaS is for real – Available Today!

quote of the day from #Gartner’s Eric Knipp about Cloud Native Private PaaS:

“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.

Cloud Native Private PaaS

 

Recommended Reading for Cloud Native Private PaaS

Cloud Native Private PaaS Architecture

Cloud aware applications and PaaS Architecture

Cloud Native PaaS or Cloud Washed PaaS

 

 

PaaS Outlook for 2013

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).
dZone Guide to PaaS IaaS Solutions

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

 

Cloud Native PaaS Architecture

Cloud platforms exhibiting Cloud Native PaaS architecture provide an opportunity to increase business innovation and creativity.  Cloud native platform solutions shield teams from infrastructure details and inject new behavior into the application.

Cloud native PaaS architecture requires infrastructure innovation in provisioning, service governance, management, deployment, load-balancing, policy enforcement, and tenancy.  Cloud native, innovative provisioning infrastructure increases tenant density and streamlines code deployment and synchronization. Multi-tenancy within middleware containers enables teams to customize applications and services per consumer by changing run-time configuration settings instead of provisioning new instances.

Continue reading

Building a Cloud Ecosystem Architecture

InfoQ has posted the presentation video for my Building a Cloud Ecosystem Architecture presentation.

The abstract for the presentation:

Offering a business capability as a one-size-fits-one solution is a typical IT solution trap. One-size-fits-one solutions do not exhibit the adaptability or agility required to fulfill new business opportunities. Teams are intrigued by the cloud’s promise to create a one-size-fits-ALL solution. Implementing Cloud architecture concepts to build an ecosystem platform and a vertical Platform-as-a-Service (PaaS) will accelerate the IT team’s ability to deliver solutions that support business growth objectives. A cloud ecosystem platform enables teams to deploy context-aware solutions, rapidly provision 3rd party application projects, automate governance approval tasks, ensure regulatory compliance, monetize user interactions, and host applications that seamlessly extend the user experience. By hosting all business partners as tenant applications within a multi-tenant environment, the ecosystem environment more readily aggregate and share business information.

In this session, Chris will describe:

  • Why ecosystem platforms and tenant personalization increase business agility.
  • When to extend the user experience by architecting multi-tenant, context-aware cloud applications and APIs.
  • How frameworks and containers are evolving to deliver a multi-tenant environment from data to screen.
  • How a vertical Platform-as-a-Service ensures regulatory compliance, automates governance approval tasks, and more readily shares business information and capabilities.

 

PaaS Cartridges and Polyglot Programming

DevOp teams want PaaS service efficiency with customization flexibility.   Rather than fit development teams into a one-size-fits-all platform box, teams desire to extend a PaaS foundation with best-of-breed components, frameworks, and languages.   While early 1.0 PaaS offerings (i.e. Google AppEngine, SalesForce.com) prescribed a specific development model and framework set,  next-generation PaaS offers a polyglot PaaS and polyglot programming experience, delivering the ability to mix-and-match application platform capabilities into an customized application Platform as a Service (aPaaS) cloud.

Does your PaaS architecture show a paradigm shift?

PaaS empowers and enables both enterprise IT and shadow IT to accelerate agility and effectively respond to business demands.  Do you agree?  Chris Keene (@ckeene) has been shaking up the blogosphere, twitterverse, by stating

For most developers, the value proposition articulated by PaaS vendors just doesn’t seem all that different from what they can get from internal IT or external IaaS.

 

Continue reading