There’s a growing trend to deliver IT capabilities such as software, platforms and infrastructure as on-demand, scalable, elastic cloud services; this is often referred to as Everything as a Service, or XaaS. The primary benefit of the XaaS model is the ability to offload IT functions to a single service provider. In enterprise environments, central IT organizations can act as XaaS providers to aggregate vital IT functions and resources and offer them as on-demand services. This allows greater agility, faster response to market changes and a new, improved ability to contain costs.
As discussed in the first article in this series (“Architecting for a Private Cloud: Establishing Elastic Caching as a Cloud Platform Service,” Enterprise Tech Journal, August/September 2013, available at http://esmpubs.com/lm8ok), elastic caching is one of the core, essential resources that should be offered as a cloud platform service by private cloud providers. Cloud applications use in-memory caching to achieve scalability and fault tolerance particularly for in-flight data as well as to improve performance characteristics. The previous article outlined the main architectural considerations and approaches required to establish an elastic caching cloud platform service and examined the benefits of using IBM WebSphere eXtreme Scale as an underlying caching framework. This article focuses on various aspects that constitute “as a service” concepts for elastic caching; it discusses how to establish the deployment model for an elastic caching cloud service and identifies patterns and implementation approaches for its physical architecture to ensure high availability and provide low-latency, high-throughput communication channels to access it. We will also examine how to take advantage of eXtreme Scale functionality to support cloud service solutions.
On-Demand Provisioning and Cloud Deployment for Elastic Caching Cloud Platform Service
The OpenGroup defines XaaS as: “This is the essence of cloud computing. It refers to an increasing number of services that are delivered over a network.” Their definition further states that: “Broad network access (cloud) + resource pooling (cloud) + business-driven infrastructure on-demand (SOI) + service-orientation (SOI) = XaaS,” where SOI refers to service-oriented infrastructure.
With the IBM eXtreme Scale framework, we have a solid foundation for elastic caching “as a service,” as it provides:
• Out-of-box elasticity
• Well-defined interfaces (application program interfaces [APIs]) to allow cloud applications to communicate with the service
• Support for cloud-era, high-availability patterns.
First, let’s focus on service delivery and deployment models for our elastic caching service. As we discussed in the first article, an elastic caching service may need to be offered using one of two models:
• As a multi-tenant, shared service
• As a single-tenant service/deployment.
The need to support a variety of deployment models and deliver and configure environments beyond basic operating system templates in a consistent, on-demand manner leads enterprises to adopt sophisticated, “cloud-ready” solutions to automate provisioning to the cloud. What makes the automated provisioning tool cloud-ready? There are many definitions, but most would include characteristics such as:
• Network-aware with the ability to provide reliable access and enable effective communications
• Cloud-aware with the ability to support a variety of cloud solutions; i.e., Amazon AWS, OpenStack or VMware.
Chef from Opscode and Puppet from Puppet Labs are popular offerings in this space. These products can be used to automate deployment of entire application stacks and provide an elegant way of abstracting the cloud infrastructures from software stacks, thus easing workload portability.