"The ability to apply cloud economics to core enterprise applications provides new ways for CFOs and CIOs to optimize and boost the cost efficiency of IT service delivery."
The movement to cloud computing is the disruptive change that information technology (IT) departments will soon face as cloud computing begins to have an effect on the modern enterprise. IT managers must learn how to give as well as take information in this new, shareable environment, while still protecting their company's interests. Innovative companies will take advantage of these new resources, such as cloud computing, and reinvent themselves as unstoppable forces in their markets. Those who don't take advantage of this revolution will become quickly outdated, perhaps out of business.
This article will discuss what the cloud is, and how it can potentially have value within the enterprise. Rather than a hype-driven view of cloud computing, this article provides the guidance needed to begin defining the value of cloud computing.
Shift to Cloud Computing
The movement and direction are clear. Based upon current trends, IDC predicts a compound growth rate of 20% per annum for cloud computing, set against the overall software market which is only growing at around 6% per annum. This leaves IDC in no doubt that there is a fundamental shift toward cloud computing as a delivery mechanism. Moreover, a new Gartner report shows global revenue from cloud computing will top $150 billion by 2013. This includes the shift from on-premise to cloud-based providers, and thus the need for planning and architecture to make this happen.
What's causing this shift? There are five primary drivers:
Purchasers believe that the current cost of traditional enterprise software is disproportionate to the value that it creates. The traditional approach to paying software licenses is getting some pushback these days in light of open source, and emerging cloud computing providers such as Amazon.
In these budget-conscious times, there is intense pressure to reduce the cost of acquisition and maintenance of software solutions, where the on-going support and maintenance of solutions can often be four times the original capital cost.
Organizations are striving to reduce risk, and want a far more tangible relationship between software's benefit and its cost. This has also been apparent in the open source movement of the last ten years, and cloud computing is really an extension of that trend.
The drive for reduced risk demands a much greater predictability of the running costs of the organization's software solutions.
The value of solutions is no longer determined by the functionality available (in fact, most organizations only use a small subset of the functions available in their software products), but by the experiences of the users in the way that they use and interact with the solutions.
There is a huge resource being created on the Web by cloud computing providers. Not taking advantage of this resource will affect enterprises, much like those who ignored the rise of the Web in the early 1990s soon found themselves playing catch-up.
Defining Cloud Computing
While cloud computing is widely defined, it needs a standard definition that most can agree on. We will use the definition provided by the National Institute of Standards and Technology, Information Technology Laboratory (NIST). Cloud computing is a pay-per-use model for enabling available, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is comprised of five key characteristics, three delivery models, and four deployment models.
The five key characteristics are:
1. On-demand self-service: a consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed, without requiring human interaction with each service provider.
2. Ubiquitous network access: capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms such as mobile phones or laptops.
3. Location independent resource pooling: the provider's computing resources are pooled to serve all consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. The customer generally has no control or knowledge over the exact location of the provided resources. Examples of resources include storage, processing, memory, network bandwidth, and virtual machines.
4. Rapid elasticity: capabilities can be rapidly and elastically provisioned to quickly scale up and rapidly released to quickly scale down. To the consumer, the capabilities available for rent often appear to be infinite and can be purchased in any quantity at any time.
5. Pay per use: capabilities are charged using a metered, fee-for-service, or advertising based billing model to promote optimization of resource use. Examples are measuring the storage, bandwidth, and computing resources consumed and charging for the number of active user accounts per month. Clouds within an organization accrue cost between business units and may or may not use actual currency.
Cloud software takes full advantage of the cloud paradigm by being service oriented with a focus on statelessness, low coupling, modularity, and semantic interoperability.
In addition, NIST also defines three delivery models as infrastructure-as-a-service, software-as-a-service, and platform-as-a-service. We extend these a bit in this section to define delivery models in more detail.
All cloud computing approaches are not the same. There are several differing deployment models that all fall under the cloud computing umbrella. These include:
1. Private cloud: the cloud infrastructure is owned or leased by a single organization and is operated solely for that organization.
2. Community cloud: the cloud infrastructure is shared by several organizations and supports a specific community that has shared concerns.
3. Public cloud: the cloud infrastructure is owned by an organization selling cloud services to the general public or to a large industry group.
4. Hybrid cloud: the cloud infrastructure is a composition of two or more clouds that remain unique entities but are bound together by standardized or proprietary technology that enables data and application portability.
Each deployment model instance has one of two types: internal or external. Internal clouds reside within an organization's network security perimeter and external clouds reside outside that perimeter.
Many find that private clouds are a better solution for their situation because they leverage the benefits of cloud computing within their firewall, typically using open source solutions such as Xen, Eucalyptus, and Ubuntu Enterprise. Or, they may choose to leverage a mixture of public and private clouds, or a hybrid cloud. Finally, some may create semi-private or community clouds that are public clouds leveraged only by a closed group of companies or government agencies.
The Components of Cloud Computing
As cloud computing emerges, there is much discussion about how to define cloud computing as a computing model. Maturity models have been published and debated, and providers clearly have a model for their own products.
In an attempt to better define cloud computing, we created a stack that considers each component of cloud computing and how they interact. As seen in Figure 1, the components of cloud computing make up a wide range of services that can be leveraged over the Web through a subscription-type arrangement. Most services that can be leveraged from a data center can now be leveraged from the cloud.
Figure 1: Cloud Computing Components
While many debate the components, there are eleven major categories or patterns of cloud computing technology:
1. Storage as a Service (SaaS)
2. Database as a Service (DaaS)
3. Information as a Service
4. Process as a Service
5. Application as a Service (AaaS)
6. Platform as a Service (PaaS)
7. Integration as a Service
8. Security as a Service
9. Management/Governance as a Service (MaaS/GaaS)
10. Testing as a Service (TaaS)
11. Infrastructure as a Service (IaaS)
One should note that these categories are rapidly evolving. It is helpful to separate the various offerings considering that the term "cloud computing" is much too widely defined. Let's examine each component of cloud computing.
1. Storage as a Service: also known as disk space on-demand. Provides the ability to leverage storage that physically exists at a remote site, but is logically a local storage resource to any application that requires storage. This is the most primitive component of cloud computing and is leveraged by most of the other cloud computing components.
2. Database as a Service: provides the ability to leverage the services of a remotely hosted database, sharing it with other users, and having it logically function as if the database were local. Different models are offered by different providers, but the power is to leverage database technology that would typically cost thousands of dollars in hardware and software licenses.
3. Information as a Service: refers to the ability to consume any type of information, remotely hosted, through a well-defined interface such as an application programming interface (API). Examples include stock price information, address validation, and credit reporting.
4. Process as a Service: refers to a remote resource that is able to bind many resources together, such as services and data, either hosted within the same cloud computing resource or remote, to create business processes. A business process is a meta-application that spans systems, leveraging key services and information that are combined into a sequence to form a process. These processes are typically easier to change than applications, and thus provide agility to those who leverage these process engines that are delivered on-demand.
5. Application as a Service: refers to any application that is delivered over the Web to an end user, typically leveraging the application through a browser. While many associate AaaS with enterprise applications such as Salesforce SFA, AaaS includes office automation applications such as Google Docs, Gmail, and Google Calendar.
6. Platform as a Service: refers to a complete platform, including application development, interface development, database development, storage, and testing, delivered through a remotely hosted platform to subscribers. Based upon the traditional timesharing model, modern PaaS providers provide the ability to create enterprise-class applications for use locally or on-demand for a small subscription price or for free.
7. Integration as a Service: is the ability to deliver a complete integration stack from the cloud, including interfacing with applications, semantic mediation, flow control, and integration design. Integration as a service includes most of the features and functions found within traditional enterprise application integration (EAI) technology, but delivered as a service.
8. Security as a Service: is the ability to deliver core security services remotely over the Internet. While the typical security services provided are rudimentary, more sophisticated services are becoming available such as identity management.
9. Management/Governance as a Service: refers to any on-demand service that provides the ability to manage one or more cloud services. These are typically simple things such as topology, resource utilization, virtualization, and uptime management. Governance systems are becoming available as well, such as the ability to enforce defined policies on data and services.
10. Testing as a Service: is the ability to test local or cloud-delivered systems using testing software and services that are remotely hosted. While a cloud service requires testing unto itself, TaaS systems have the ability to test other cloud applications, Web sites, and internal enterprise systems, and do not require a hardware or software footprint within the enterprise.
11. Infrastructure as a Service: is actually Datacenter as a Service (DaaS), or the ability to remotely access computing resources. In essence, you lease a physical server that is yours to do with as you will, and, for all practical purposes, is your data center, or at least part of a data center. The difference with this approach versus more mainstream cloud computing is that instead of using an interface and a metered service, you receive access to the entire machine and the software on that machine. In short, it's less packaged. DaaS and other more primitive infrastructure-type services are often defined as IaaS.
The True Value of the Cloud
One would think that cloud computing would always be more cost effective than on-premise computing. However, the value that cloud computing brings to an enterprise is really dependent upon many variables and the dynamics of the business. Like anything requiring change, the business case must be worked first to see the ultimate worth of this approach.
The forces at work here include strategic and tactical issues that should be analyzed, including the ability to shift risk to cloud computing providers, the ability to drive down operating costs, the ability to fix inefficiencies within the existing architecture, and the value all of that brings. The problem is that most enterprises do not analyze these business opportunities properly, and thus make many mistakes when building the larger business case. Moreover, enterprise architects are notoriously bad at creating business cases.
It is one thing to say that cloud computing makes life better because everybody says it does, versus saying cloud computing will make this company more than $50 million dollars over the next 5 years. The ability to make money will always outsell something cool and popular. Keep that in mind as you create the business case and sell cloud computing to your executive team.
While most think cloud computing is really about the ability to save operational costs, this may or may not be the case and depends upon the enterprise or problem domain. Indeed, there are many dimensions to consider, including the value of:
ongoing operational cost reduction
shifting the risk
It is a good idea to figure out the actual cost reductions that cloud computing can bring to your enterprise IT. The trick here is not only to figure out how much money can be saved, but how much it will cost to save that money.
Let's say that you've decided that cloud computing is the way to go for a major enterprise application requiring some customization, and that the costs of an on-premise instance versus a cloud computing instance are as follows:
Software $100,000 for license, $20,000 per year software maintenance
Maintenance $200,000 per year for people to work the system
Data Center $50,000 per year
Over 5 years, the cash expenditure will look like this:
Year 1 $450,000
Year 2 $270,000
Year 3 $270,000
Year 4 $270,000
Year 5 $270,000
For a total cost of $1,530,000 over 5 years.
Now the cloud computing options, using the same 5 year cost horizon.
Software $10,000 per month subscription
Data Center $0
Over 5 years, the cash expenditure will be $600,000, or $120,000 times 5 years. Figure 2 shows the comparison of the two calculations.
Figure 2: Comparing the Cost of On-Premise with Cloud Computing
This example assumes a simple application-on-demand scenario. The cost will be more complex with a cloud computing solution that leverages a variety of cloud providers that need to interoperate and for a solution requiring application development.
The cost of cloud computing is not free. Watch out for the manage-by-magazine effect, where cloud computing is so much a part of popular thinking around computing that you're not objective. It's okay to say "No" to cloud computing if there is no clear business benefit.
It will be difficult to create business cases as the world of cloud computing continues to emerge. We just don't know enough about cloud computing's long-term operational value, or many of the pitfalls, since most of the public cloud computing providers have not been around for that long. Consider this as a learning process, and make sure to examine the current state-of-the-art while leveraging the technology. The technology will constantly change while the architecture should be relatively stable.
We have a clear opportunity to change the way we do IT to have a more positive influence on the business when leveraging cloud computing. No longer will IT be a drain on company resources, and many enterprises will find that the new found efficiencies of IT have huge value on the bottom line. After all, IT is there to serve business, not the other way around.
Portions of this article are excerpted from the book Cloud Computing and SOA Convergence in Your Enterprise...A Step-by-Step Guide.