Cloud API popularity is fueling interest in creating service ecosystems across organizations, teams, and applications. By externalizing software platform functions from containers, operating systems, and on-premise data center environments, new business opportunities emerge, and development teams gain faster time to market when building scalable business solutions. Is the time right for you to build a cloud ecosystem architecture based on APIs and supporting rapid application development?
Teams adopting Cloud strive for a perfect balance between high control, easy adoption, and economies of scale. Both private and public cloud options often do not overcome significant adoption barriers, and hybrid cloud today represents a fatalistic acceptance of sophisticated environment heterogeneity, increased integration burden, and fractured policy enforcement. Project owners desire a cloud flight path that does not require retraining team members, fulfills complex enterprise requirements, and delivers DevOps best practice with minimal investment. Managed clouds provide a straightforward transition path, cost effective adoption model, and expert implementation assistance.
A managed cloud delivers a private, off-premise, bespoke Cloud managed by a third-party service provider. By blending DevOps practices, policy-driven configuration, expert management, and Cloud infrastructure, a managed cloud environment exhibits high on-demand scalability, flexible self-service, and affordable pay-as-you go pricing.
Apache Stratos is an Open Platform as a Service (PaaS) framework project supported by the Apache community. Apache Stratos brings enterprise-ready quality of service, governance, security, and performance to internal private clouds, externally managed clouds, and public clouds. Enterprise organizations, Cloud infrastructure vendors, and Cloud service providers may freely modify, distribute, and deploy Apache Stratos without any intellectual property restrictions, royalties, or fees.
Warning: Cloud projects may cost more than terrestrial projects. Cloud projects may not reduce IT cost. Unless, you carefully consider appropriate Cloud usage scenarios, build Cloud-aware solutions, and choose Cloud-native platforms.
Jared Wray (@jaredwray) has obviously been thinking about Cloud’s value proposition, market awareness, and end-user adoption scenarios. Jared has penned an excellent post on Cloud computings hidden costs that delivers in-depth analysis on Cloud computing dynamics.
Many news writers have documented cloud’s hidden cost, for example Beth Pariseau (@pariseauTT) at SeachCloudCOmputing documenting cloud sticker shock. Beth outlines a key areas to watch:
- Server instance performance
- Provisioning cost
- Data storage cost
- Distaster recovery, monitoring, and network bandwidth
Why Be Concerned About Cloud Cost?
Archana Venkatraman (@archanatweets) posts in ComputerWeekly that a
global survey of CIOs into attitudes and concerns relating to cloud computing has revealed that almost 80% are concerned about the hidden costs associated with cloud computing.
Adding to the conversation, Joe Mckendrick (@joemckendrick) details specific points of concern:
- Poor end user experience due to performance bottlenecks (64 percent). This goes right to the customer end-user experience as well, since e-commerce is the leading cloud application area, the survey finds – 78 percent of respondents are already using cloud resources to support e-commerce.
- The impact of poor performance on brand perception and customer loyalty (51 percent).
- Loss of revenue due to poor availability, performance, or troubleshooting cloud services (44 percent).
- Increased costs of resolving problems in a more complex environment (35 percent).
- Increased effort required to manage vendors and service level agreements (23 percent).
Correlating hidden cost fears, IBM’s recent admission that Cloud Foundry demand is “in its infancy” (reported by Joe Curtis @JoeCurtis_CBR), and a 2013 summer story of lagging Enterprise PaaS adoption, many IT professionals may predict that
PaaS may be poised to enter the trough of disillusionment.
The Smart Cloud Path Forward
Fortunately, smart tech leaders are presenting a viable path forward. A path that jumps over the disillusionment gulf. I especially appreciate Jared’s statement,
most savings come when users take advantage of the platform to optimize their workloads.
When workloads and the platform may become Cloud-aware, Cloud solutions can live up to the hype. Successful teams optimize code, configuration, and policy to capitalize on Cloud-native architecture and capabilities. Rather than a ‘Bigger in Texas’ design mentality, a frugal, just-enough at the right time, design must pervade the Cloud solution. I would like to see the industry move towards benchmarking how multi-tenant design effects ‘tenant density’ (tenant count divided by granularity), scaling time lag, and solution cost.
Reducing Cloud Computing Cost: Recommended Reading
Hidden Cost of Cloud Computing (Joe Mckendrick)
Where is the Rub: Cloud Computings Hidden Costs (Jared Wray)
Do you have a distinct architecture for Cloud? Gartner recently announced Cloud Architecture as a top 10 technology trend for 2014. My blog has a section devoted to Cloud Architecture, where you can learn about the architectural difference between:
and how Cloud Characteristics, Cloud Dimensions, and New IT drivers influence your PaaS form factor evaluation, change application server requirements, and drive a new cloud architecture reference model. Developers may choose to build SaaS applications based on innovative multi-tenant frameworks.
Cloud Architecture Next Steps
- Take a look at the 30+ posts to better understand the domain space
- Define your Cloud Architecture goals and challenges
- Perform a gap analysis between your current, terrestrial architecture , and the cloud components required to reduce challenges and meet your goals
- Evaluate vendor options
- Perform a Cloud Architecture proof of concept (POC)
- and let me know how you are defining Cloud Architecture.
Public/private and internal/external are two separate dimensions. Public, private, or community attributes specify how widely the cloud service is shared; a sharing dimension. Internal or external denote the consumer’s view of the Cloud’s service interface. The view is associated with a consumer’s responsibility for service development, operations, and management; a responsibility dimension. A third dimension, on-premise or outsourced, describes where the service assets are located; a location dimension. Many architects conflate the three dimensions. NIST has recently published a Cloud Computing Reference Architecture which spends considerable prose disentangling the concepts. According to NIST:
A private cloud gives a single Cloud Consumer organization the exclusive access to and usage of the infrastructure and computational resources. It may be managed either by the Cloud Consumer organization or by a third party, and may be hosted on the organization’s premises (i.e. on-site private clouds) or outsourced to a hosting company (i.e. outsourced private clouds).
Let’s run through three quick use cases describing public, private, and community:
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
As we head into 4th July 2013, Public Cloud Freedom is under increased scrutiny. Â Do you want freedom in your cloud?
- 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
“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