Scalr White Paper: Architecting the Right Stack for Your Enterprise Cloud
Architecting the Right Stack for Your Enterprise Cloud Enterprise Cloud Architecture Best Practices Cloud computing has been on Gartner s Top 10 Strategic Technologies list since 2009, and it isn t showing signs of dropping off any time soon. This is for good reason: the promise of self-service provisioning accelerating application delivery and business innovation thus fostering corporate competitiveness is a strong one. As such, it should not come as a surprise that this white paper does not seek to convince the reader that cloud is the right choice for the enterprise; but instead will focus on providing the knowledge needed to make informed decisions for adopting enterprise-grade cloud computing. To achieve that goal, this whitepaper will deliver an understanding of the layered structure of technologies that make up the cloud: the cloud stack (not to be confused with the Apache CloudStack project). It will successively explore each individual layer of technology, and provide an in-depth understanding of its role in the overall structure, and of the business requirements that it addresses. Leveraging that understanding will enable the reader to ask the educated questions that must be answered before they can make informed technology decisions regarding their cloud stack. The recommendations of this paper are a condensed form of Scalr s many years of experience working with enterprises leading cloud adoption in their industries. Those leaders include Samsung Electronics, Expedia, and Adobe. An Overview: What Is The Cloud Stack? Fundamentally, the cloud stack is a layer structure of technologies. Those layers interact and communicate with each other in order to deliver a cloud computing experience to the end user. More specifically, these layers control one another. End-users of the cloud interact with a cloud management platform, which sends management commands to one or multiple cloud platforms, which in turn will send management commands to their underlying resource layer. This whitepaper will work its way up the stack, starting with the resource layer, then exploring cloud platforms, and finishing with cloud management platforms. Cloud Management Platforms Integrated CMPs: Scalr, CSC ServiceMesh, Dell Cloud Manager,... Cloud Consoles: AWS Console, OpenStack Horizon To provide some context, this paper starts with a quick introduction of each of these layers. The resource layer the foundation the cloud stack relies on is the hardware, virtualization, and network infrastructure that an enterprise likely already has in place. Cloud Platforms Resource Layer Public Clouds: Amazon Web Services, IBM, Verizon, Savvis, Terremark Private Clouds: OpenStack, CloudStack, Eucalyptus Virtualization: VMware, KVM, Xen Bare metal provisioning: PXE boot Networking: Cisco, Citrix,... Scalr White Paper: Architecting the Right Stack for Your Enterprise Cloud 2
The next layer cloud platforms is a technology that automates resource provisioning by presenting an API (Application Programming Interface) that other pieces of technology can leverage, and by translating requests made to that API into lower-level commands that it then sends to the resource layer. The final layer before the application stack cloud management platforms (CMPs) is the one enterprise users such as developers, IT, and business analysts will interact with in order to leverage their enterprise s cloud infrastructure. It is worth nothing that the rapid proliferation of CMPs has caused confusion for the enterprise buyer, and that two different CMPs may bear very little resemblance and largely vary in terms of feature set. Enterprise Resource Layer The resource layer is the physical hardware and virtualization technology that your organization s cloud will be built on. This includes computing resources (usually managed through a hypervisor), but also networking infrastructure and storage hardware. It is of course very likely that an enterprise already has much of this in place, and experience choosing those components. But as an enterprise drives its cloud adoption, the first critical business decision it needs to make is to decide whether it will use its own resources, or externalize this layer to a supplier. Companies have three options: They can choose to deploy their entire cloud infrastructure in a public cloud, such as Amazon Web Services. Should they decide to do that, they will not be using their own resource layer for their cloud, and they will instead leverage their public cloud provider s resource layer they will therefore not have to manage it themselves. They can choose to deploy their entire cloud infrastructure in a private cloud, such as OpenStack. In that case, they will have to source and manage their own resource layer, and ensure that it integrates properly with their private cloud. Finally, they can opt to split their infrastructure between private and public cloud, thus achieving a setup that is called hybrid cloud. If an organization chooses to do so, then it will have to manage the resource layer for the private part of their cloud infrastructure. As it turns out, leading enterprises that are adopting cloud are all opting for the hybrid cloud approach. Let s see why. Private Cloud, Public Cloud, or Hybrid Cloud? There hardly is a single answer to the question of choosing between a public and a private cloud. The reason for this is that this decision very much depends on the applications and workloads that an organization intends to run on the cloud. Ultimately, the vast diversity of workloads that an enterprise needs to run will most likely drive it towards opting for a hybrid cloud, where it will place each individual workload in the cloud environment public or private that suits it best. To identify which cloud environment fits a given workload the best, a business will have to closely look at the workload s characteristics. Let s see which specific characteristics should be examined. Scalr White Paper: Architecting the Right Stack for Your Enterprise Cloud 3
Sorting Through Enterprise Workloads There are two characteristics to evaluate for enterprise workloads: Can it run on infrastructure outside of the corporate entity? This won t be true for workloads that deal with highlyregulated data, or require very low latency to on-premises infrastructure. Is it elastic? Elastic workloads are workloads whose resource requirements vary greatly over time often in terms of computing power and bandwidth. A few examples that are most likely present at a company include development, test, and demo environments, which are primarily used during business hours; or reporting, which may run every few weeks or months. Understanding Placement Options Naturally, workloads that cannot run on infrastructure outside a corporate entity will have to run on a private cloud, which will let an organization ensure that it meets regulatory standards and performance requirements. But what about those that can? Public clouds offer a usage-based billing model and do not require capital expenditure (CAPEX); as such, elastic workloads will usually be more cost effective there. Indeed, the public cloud pricing model allows businesses to dynamically scale down infrastructure expenditure outside of peak usage periods. Then, what about non-elastic workloads that do not have regulatory or latency requirements? These require accurate cost analysis to determine their most cost-effective placement. Running The Numbers For Private Cloud Accounting For The Upfront Costs Adopting a private cloud can be initially costly! First, an enterprise must purchase or repurpose the hardware on which to run its cloud. This is the resource layer mentioned earlier. Second, an organization will need to invest in a cloud platform. The good news is that the more popular cloud platforms which this paper examines at a later point are open source, which greatly minimizes enterprise investment. The bad news is that deploying and operating a private cloud is a difficult task; one will therefore want to consider purchasing support and bringing in an implementation partner. Saving On What You Won t Need In terms of cost, one major advantage of private cloud is that a business is able to fine-tune its cloud infrastructure to closely match its requirements. This means it can avoid paying for something it will not use. In order to properly evaluate private cloud cost, one will need to look at the following factors: Headroom to grow. How much capacity is needed for an organization s private cloud? Expanding beyond planned capacity can be costly, so this should be considered carefully. This will largely depend on growth expectations, but the risk of accumulating under-utilized cloud instances and thus wasting physical resources should also be taken into consideration. Redundancy. What are requirements in terms of availability and failover? Depending on the SLA an enterprise s private cloud needs to meet, regional or global redundancy may be required. Scalr White Paper: Architecting the Right Stack for Your Enterprise Cloud 4
Global presence. Geographically speaking, where are cloud resources needed? This will largely depend on where users are located, so the infrastructure can be close to them. Security. What are the security standards and regulations that must be met? Managed cloud services. Are there managed cloud services such as managed databases that the end users of an enterprise s private cloud will need access to? Once an organization has made its decision on whether to manage the resource layer itself, outsource it to a public cloud provider, or pursue a hybrid cloud strategy, the next decision will be the cloud platform. Let s move on to this paper s next section: best practices to choose a cloud platform for an enterprise. Cloud Platform The cloud platform is the layer of the enterprise cloud stack that presents an Application Programing Interface (API) that end users and other pieces of software can use to request cloud resources. In order to fulfill that purpose, cloud platforms act as a translation layer, converting the API requests they receive into management commands that they then send to the appropriate components of the underlying resource layer, such as hypervisors and network appliances. For this reason, it is of course critical to ensure compatibility between the cloud platform and the components that make up the resource layer. As observed earlier, cloud platforms fall in two categories: public and private. The most popular public platform is of course Amazon Web Services, whereas the more popular private ones are OpenStack, CloudStack, and Eucalyptus. Why Use One? There are two main reasons enterprises adopt a cloud platform. Increased Agility Cloud platforms are the solution to slow and inefficient enterprise IT provisioning processes. This slowdown is caused by a lot of human touch, red tape, and back-and-forth between engineers and IT, which directly results into reduced engineering efficiency and increased time to market for an enterprise s products. Cloud platforms seek to address that issue by empowering engineers with self-service on-demand access to the computing resources they need to rapidly deliver business value. Standardized APIs But perhaps more importantly, cloud platforms expose standardized APIs that are available regardless of the business s underlying resource layer. These valuable APIs can be consumed by higher-level software solutions, such as cloud management platforms, and constitute a fundamental compatibility layer for enterprises, allowing the deployment of consumer software with minimal (and often negligible) integration work. Now that we have covered why an organization would use a cloud platform, we shall focus on how an enterprise can select the right one for its business. Scalr White Paper: Architecting the Right Stack for Your Enterprise Cloud 5
Selecting a Cloud Platform What About Public Cloud? Scalr s experience has shown that enterprises tend to leverage pre-existing business relationships to choose their public cloud providers. Consequently, an enterprise might want to evaluate the cloud computing services that are offered by its existing IT service providers. Select enterprise IT service providers that provide public clouds include IBM, HP, Verizon, Savvis, and Terremark. Additionally, a business may also have a relationship with Amazon Web Services. It is even likely that this relationship is informal, in the sense that engineers are using AWS to bypass enterprise IT a common phenomenon known as shadow IT. Choosing The Right Private Cloud Platform The more popular cloud platforms are OpenStack, CloudStack, and Eucalyptus. All three are open source projects which have different strengths and shortcomings, especially in terms of feature set and risk profile. Let s closely examine each one of these and in order to identify which one is the best fit for an enterprise. OpenStack Of the three open source cloud platform projects, OpenStack is the youngest, but arguably has the most momentum. The project is only a few years old, but the OpenStack summit is already attracting thousands of people every six months. OpenStack also enjoys industry support from enterprise leaders such as Red Hat, IBM, and HP. OpenStack is moving fast, adding numerous new features with every new iteration on its six months release cycle, and therefore enjoys a considerable feature breadth. Additionally, OpenStack s component-based architecture means that it is also the most flexible of all three private cloud platforms, as it lets a user mix and match components to design the private cloud their enterprise needs. Community Feature Breadth AWS Compatibility Stability CloudStack OpenStack Eucalyptus Unfortunately, OpenStack s greatest strengths, its large feature set and flexibility, are also cause for its greatest weakness. Scalr s experience with enterprises adopting OpenStack has shown that due to the large number of moving parts that exist in deploying the platform, first-time success with it remains the exception. It should be noted that productized distributions of OpenStack, such as Red Hat OpenStack, Nebula, and Cloudscaling OCS, may turn out to be the solution to this problem. If an enterprise intends to make cloud a core competency, then OpenStack may very well be its best choice, as it will deliver the flexibility needed to reach that objective. However, it is necessary to bear in mind that substantial resources must be committed in order to achieve that goal. Scalr White Paper: Architecting the Right Stack for Your Enterprise Cloud 6
CloudStack CloudStack isn t as well-known as OpenStack, but is nonetheless a successful production-ready cloud platform. Major enterprises such as Samsung Electronics a Scalr customer have already been using CloudStack in large-scale production deployments for several years. As opposed to OpenStack, CloudStack favors stability over development velocity. As such, CloudStack has had an upgrade path since version 1.6 (it wasn t even named CloudStack at that time!), whereas OpenStack still lacks a clearly defined one. Enterprise support for CloudStack is also available, using Citrix s commercial distribution of CloudStack: CloudPlatform. Unfortunately, CloudStack s slower and more stable development pace does mean that it lacks the feature breadth of OpenStack. For instance, CloudStack doesn t ship with managed database services, whereas OpenStack does as part of the Trove subproject. CloudStack also doesn t support as many hypervisor configurations as OpenStack, as it is still lacking support for Microsoft Hyper-V and thin hypervisors such as LXC or Docker. If an enterprise requires a stable cloud platform to build upon, and would rather minimize the amount of resources committed to cloud infrastructure, then CloudStack is an excellent choice. The drawback is the reduced feature set. Eucalyptus Eucalyptus mainly differentiates from the other cloud platforms with AWS compatibility. Whereas OpenStack and CloudStack both present a somewhat limited compatibility layer with the AWS APIs, Eucalyptus guarantees full API compatibility. If an enterprise has already started adopting cloud with AWS, and is now considering transitioning towards a hybrid or fully private cloud model, then Eucalyptus will enable a seamless transition for applications that were designed for AWS. As such, if an organization chose to standardize on AWS early, and already has a substantial code base that integrates with it, then Eucalyptus may be the right solution to adopt private cloud. Once an enterprise has selected the right cloud platform or cloud platforms the next decision is how it will make it available to end users. Cloud Management Platforms Cloud management platforms (CMPs) are the highest, final layer of the cloud stack. They leverage the APIs that are provided by the aforementioned cloud platforms in order to integrate with them, and they serve as the interface that business users leverage to integrate with an enterprise s cloud. Why Use One? Cloud management platforms seek to address a wider range of higher-level enterprise business challenges than cloud platforms. The three business challenges that cloud management platforms address are managing multi-cloud infrastructure, enforcing governance for cloud resources, and improving business agility with cloud. As we review each of these business challenges in detail, it is important to note that not all cloud management platforms address all of these challenges. Scalr White Paper: Architecting the Right Stack for Your Enterprise Cloud 7
Cloud management is currently a crowded and ill-defined space: the range of available solutions for cloud management spans from cloud consoles that ship with a cloud platform such as the AWS Console or OpenStack Horizon those will of course not address multi-cloud, to multi-cloud integrated cloud management platforms such as Scalr, Dell Cloud Manager, or CSC s ServiceMesh. Multi-Cloud Multi-cloud is a practice where an enterprise uses multiple clouds public or private as part of its cloud infrastructure. Multi-cloud is closely related, but not equivalent, to hybrid cloud: an organization using multiple public clouds would be said to have a multi-cloud strategy, but not a hybrid cloud strategy. However, an enterprise using public and private cloud infrastructure would indeed be said to have both a multi-cloud and a hybrid cloud strategy. There are three business drivers for multi-cloud adoption: Vendor risk management. Having the ability to easily transition between multiple clouds gives an enterprise leverage as it negotiates with cloud providers. Multi-cloud also provides a business with a solution in case one of its cloud providers discontinues its cloud offering, or goes out of business. Cost reduction. As observed earlier, some workloads will be less expensive to run on a public cloud, and some others might be less expensive to run on a private cloud. Multi-cloud lets users place workloads where they belong, which will increase cost effectiveness and ultimately save an enterprise money. Performance optimization. Cloud performance varies in terms of network connectivity, hardware performance, or even latency to the end user. Multi-cloud will afford an enterprise the ability to place its workloads where they will perform best. Whatever the business drivers are, it is unlikely that an enterprise would choose to operate on a single cloud platform. A cloud management platform may provide enterprise users with a single pane of glass to provision from and manage all the clouds they are using. In doing so, it would empower an enterprise to utilize multi-cloud resources more efficiently, which in turn would let it secure a greater return on its investment in multi-cloud. Governance Cloud platforms are geared towards provisioning computing resources, but are lacking with regard to enforcing compliance with business practices, as it is not their primary focus. As such, they are not an ideal fit to implement the governance and security policies that enterprise IT requires. Instead, and as higher-level management tools, cloud management platforms may provide a framework for IT users to leverage in order to implement business rules, and enforce them on cloud infrastructure. To that end, cloud management platforms may integrate with enterprise identity management infrastructure to implement role-based access control, may provide capabilities for lease management and cost allocation (showback and chargeback), and may enforce mandatory security requirements. Agility As previously discussed in this paper, cloud platforms streamline enterprise resource provisioning processes. Nonetheless, effectively using those resources remains up to the business user. Scalr White Paper: Architecting the Right Stack for Your Enterprise Cloud 8
Scalr s experience working with enterprises adopting cloud computing has shown that this is a task that is harder than expected. In fact, cloud computing requires new development paradigms, and developers must learn to incorporate horizontal scalability and failover requirements in their applications. To address this challenge, cloud management platforms may provide developers with reusable components and automation frameworks. Those streamline and automate repetitive, error-prone, and undifferentiated tasks that enterprise developers must complete in order to build cloud-ready applications. As such, they help developers accelerate application delivery and reduce time to market. Selecting the Right Cloud Management Platform Often the most important steps an enterprise can take to ensure they select the best cloud management platform is to identify the business problems for which it is solving. Doing so enables the organization to filter through the vast ecosystem of cloud management platforms, and single out the platforms that are the best fit. It is critical to not fall for the common misconception that all cloud management platforms offer the same feature breadth. In fact, two different cloud management platforms may address completely different business challenges, or they may address those to a different extent. Summary For each individual layer of the cloud stack, making the right choice as an enterprise buyer is a two-step process. First, the enterprise buyer needs to identify his company s requirements. These can be expressed in terms of sensitivity to cost, business requirements and risk, including security, supplier and regulatory risk. Second, the enterprise buyer needs to single out the solutions that best address their particular requirements. Cloud is a vast and rapidly evolving ecosystem, so the most crucial mistake an enterprise can make is to assume that all solutions that fall in a given category, such as cloud management platforms, are equivalent. There are numerous options with cloud, and no two enterprises will share the exact same cloud stack; it is up to the enterprise to identify the right one for their organization. Scalr White Paper: Architecting the Right Stack for Your Enterprise Cloud 9