The latest IT phenomenon, cloud computing, continues to grow in importance. Public cloud infrastructure services provide a convenient and cost-effective way for companies to obtain new capacity cheaply and to cover peaks in their processing needs. The private cloud paradigm is becoming recognized as the best way for big IT departments to serve their users, and there is a growing range of Software-as-a-Service offerings for business generally and in different industry sectors. For example, on the day that this was written, a new IT management platform was announced that will enable farmers and landowners to produce and trade energy crops and arable biomass. For these, and other reasons, cloud computing is becoming a part of everyone's IT experience, leading to a new way of doing business.
The recently published book Cloud Computing for Business by The Open Group describes how cloud computing is transforming business today and, more particularly, how to take advantage of its potential. This article contains two excerpts from that book. The first, from Chapter 1 (Section 1.8) explains the new business paradigm based on ecosystems. The second, from Chapter 4, looks at how to take advantage of the cloud and determine how well the services that you are considering fit with your solution concept.
New Business Paradigm
The evolution of business and IT assets and operations is a continuous process. Today, many factors are involved beyond the disruptions caused by technology developments.
Economic, environmental and global activities shape regional markets, products and services in many industry sectors. Government legislation and investment priorities drive standards and commercial behaviors. The Internet, mass media and collaboration create new access channels that enable market developments hitherto constrained by geography and performance limitations.
Cloud computing provides a new business paradigm for resources. It enables organizations to create and use IT and business services on demand from optimal sources to maximize utilization and cost effectiveness. This can be between enterprises or within a single enterprise.
In a business environment, the business processes are how work gets done. They are supported by applications that manage information content and perform transactions. These are in turn supported by a platform and infrastructure that provide storage, processing, and communications. Cloud computing enables businesses to create and use services on demand, through cloud SaaS (Software-as-a-Service), PaaS (Platform-as-a-Service), and IaaS (Infrastructure-as-a-Service). Examples of such services include business services, application software services, integration and development services, and infrastructure services. The applications, platform and infrastructure thus can be replaced by cloud services, as shown below (in Figure 1).
Figure 1 – Use of Cloud Services to Support Business Processes
The cloud services that support the business processes can be inside the organization, in an internal private cloud, or outside it, in a public cloud or virtual private cloud, as illustrated in the next figure (Figure 2). Or they can be in a hybrid cloud, a combination of public and private clouds.
Figure 2 – Internal and External Cloud Services
Cloud computing enables businesses to think and act beyond the "four walls" of the company through exchange of services. They can access marketplace best practice solutions, and select effective IT services from multiple sources to meet their needs faster and at lower cost.
An ecosystem exists where participants in a defined market have integrated business processes and use common standards for exchange of information, products, and services.
Figure 3 – Business Ecosystem
In today's world, companies are participating in highly collaborative ecosystems providing their specific expertise to create end-to-end services. This will become more important in the future.
SOA and Web 2.0 were milestone developments in the IT industry, while Business Process Management (BPM) has been a major step toward standardized business services automation. With cloud computing, standards and technological developments come together to create an environment in which integrated business processes are supported by software services performed within and between enterprises.
Figure 4 – Cloud Ecosystem
In such an ecosystem, providers and consumers of cloud services participate in common business processes. We have become used to the cloud as a means of sharing information; it is now commonplace, for example, for people to share photographs using social network websites. In cloud-based business systems, this is taken to a new dimension; the cloud becomes a means by which enterprises can share business logic.
Cloud ecosystems foster standards-based business exchanges between participating enterprises. This encourages optimization of the products and services available in the ecosystem's marketplace.
Cloud computing enables providers and consumers of products and services to interact much more easily, because they are freed from the drudgery of providing the necessary IT support. This encourages the creation and growth of ecosystems in which companies co-operate effectively to meet the needs of society. The benefits of cloud computing extend not just to individual businesses, but to business as a whole.
Taking Advantage of the Cloud
Many businesses have now taken a good look at cloud computing and have decided whether some form of cloud would be an ideal solution to part of their need for IT. A company's business situation is either a problem or an opportunity for which it seeks a solution that includes IT enablement. It sees cloud computing as a technological possibility that is the way to solve the problem, or seize the opportunity. This becomes its IT architecture vision. For example, a retailer might have a vision that "We will cope better with peak business demand by deploying our applications software on cloud computing platforms."
Their next question after that is often, "Which particular cloud service should we use?" There are now many competing services, and there are complex factors, including functionality, performance, manageability, security, and compliance with regulation, that must be considered in making the choice.
Chapter 4 of Cloud Computing for Business by The Open Group gives practical advice on buying cloud services. The excerpt below (from Section 4.1) describes the first essential step: determining how well the services that you are considering fit with your solution concept. In the book itself, the chapter continues to cover the complete buying life-cycle by discussing how to establish your requirements, make the choice, and monitor the service in operation.
In establishing your cloud vision, you have achieved an understanding of the business context, and made an assessment of cloud suitability. At this point you should have a good idea of whether cloud services will be part of your solution and what kind of cloud services to consider. The next stage is to see whether those services fit your functional requirements and solution models.
For IaaS or PaaS, the functional requirement is simply for infrastructure or platform; unless you need special features - in which case you should probably not be considering a cloud solution - functional fit is not a problem. For SaaS, you must establish that there are cloud services that meet your needs for application processing. For all kinds of cloud service, you then assess fit with the solution models.
Developing the models for your solution will take time and work. Do not expect them to appear magically as a result of your cloud architecture vision. You should develop the models in collaboration with your enterprise architect and the IT team. The enterprise architect will probably take the lead in this. Expect several iterations, with different versions of the models, before you are satisfied with them.
The important models for choosing and monitoring cloud services are the financial, workload, and risk models. The workload model and the financial cost model are intimately involved in the buying lifecycle. The other financial models, and the risk model, are less directly related.
This section describes the workload and cost models, and how they and the other models are used to determine fit.
Workload and Cost Models
Your workload model is crucial. It enables you to estimate your cloud service costs. It also enables you to determine your throughput and configuration-speed requirements.
The model describes, in business terms, the amount of processing that the service must handle, and how this varies with the number of users and over time. It also describes, in technical terms, the resources that are used to perform this processing, and it shows how the resources used relate to the processing load.
There is no standard workload model. It is different for every enterprise, and for each service that the enterprise uses.
You can estimate the service costs from the resource usage in the workload model. The calculations will unfortunately be different for each supplier, because suppliers package and describe their resources in different ways. This is particularly so for processing resource; the processing unit offered (and charged for) by each supplier may be different, and it can be hard to relate these units to each other. You have to do this, though, if you want to compare the different offerings. This means that you need a cost model for each supplier.
It is a good idea to note how sensitive the models are to changes in different factors. For example, storage costs may be easier to predict than IO costs. This information will help you to assess risk (as described in Chapter 5 of Cloud Computing for Business).
When modeling workload, you should consider variability and predictability, as well as the average or "steady state" value.
Average levels might for example be 20 transactions per second and 500,000 transactions per day, with variability between zero and 20 transactions per second, depending on the time of day.
Predictability can be:
- Planned and scheduled - for example, financial management mini-peaks at end of quarter and major peak at end of fiscal year;
- Planned and unscheduled - for example, pharmaceutical certification on average five times a year, Florida hurricane response; or
- Unplanned and unscheduled - for example, air traffic control response to ash cloud.
Where predictability is planned and scheduled, you should note its periodicity. This is the cycle of requirements, including average, peak, and off-hours. Cycles may be on a calendar basis (including hourly, daily, weekly, monthly, quarterly, and annually), or on an event basis. Examples are: monthly periodicity, with peaks at the same time each month, and annual periodicity, with seasonal peaks.
You should also consider events with predictable capacity, which don't occur at the same time each month or year. Examples are weather patterns such as blizzards, unpredictable fads or events, occasions such as weddings, and disasters such as fires.
Think about the growth or shrinkage of your typical steady state usage, including such things as:
- Increase or decrease in capacity at the beginning of each steady state contract year;
- One-time changes; and
- Acquisitions, divestitures, regulatory changes, and new markets.
Consider the average and peak number of users by type. Types of user include business users, "power" users, and process administrators.
Be aware that there are different types of workload that scale in different ways. This must be taken into account when modelling your workload.
Applications with a large amount of shared memory, many interdependent threads, and tightly-coupled interconnections cannot easily be partitioned between processing units, and only scale vertically. Applications with independent threads that do not share memory and have loosely-coupled interconnections can be partitioned, and scale horizontally. Other applications scale to some extent in both directions.
Figure 5 – Types of Workload Allocation
The figure below shows some examples of the different types.
Figure 6 – Examples of Workload Allocation Types
Principles to follow in allocating workload include:
Centralize key services for maximum pooling of total capacity available;
Deploy solutions based on standard commoditized modular building blocks for maximum flexibility and re-use potential;
Automate provisioning of standard images for maximum agility;
Abstract the workload, where appropriate, from infrastructure using virtualization; and
Identify workloads that can benefit from moving short-term burst loads to a cloud service.
Pay-As-You-Go Versus Ownership
Cloud costs are typically lower with short term burst use but, for a steady or moderately-variable load, buying an on-premise system will probably be cheaper than using cloud services in the long term.
There are pricing options that can make cloud attractive in some long-term scenarios. Reserve cloud instances - cloud resources that are contracted for on a longer-term basis and typically for a lower price than those provided on-demand - lower the cost of long-term use. Burst services enable peak operational demand to be diverted to cloud capacity.
Companies should assess their demand usage models in terms of actual workload profiles versus capacity usage. Many operational workloads are not 24x7x52 and can be accommodated by a combination of reserve instances and spot instances or "cloudburst" facilities. The figures below illustrate this. (Note that 30% OPEX is assumed for hybrid cloud and 25% for on-premise. In a pure on-premise solution OPEX is likely to account for 25% of the annual cost with 75% being interest and depreciation - the CAPEX element. The hybrid cloud solution has a lower proportion of CAPEX and a higher proportion of OPEX because of its public cloud element. These amounts are illustrative of what might be encountered.):
Figure 7 – Example Fixed Workload Costs
Figure 8 – Example Variable Workload Costs
With IaaS and PaaS, you can have a hybrid system, with some processing performed on-premise and some on the cloud. (This is not such a practical possibility with SaaS.) The challenge is to define variable workloads and to be able to turn capacity on and off and switch between off- and on-premise services. There are costs associated with this that need to be assessed to "plug into the cloud".
Modeling Resources and Costs
If you are using SaaS, and the charges relate to business units (such as number of users) rather than computing resources (such as Megabytes of memory), there is no need to build the resources into your model. You build a cost model for each supplier by mapping your business units to the supplier's charging units. This model enables you to determine your probable costs for a given load.
For PaaS and IaaS, or for SaaS if the supplier charges by resource rather than by business unit, you should model use of processing power, memory, storage, and IO. These are what most suppliers charge for.
- Peak resource level - the capacity you require the supplier to be able to provide;
- Usage per time period - which is what you will be billed for; and
- Rate of resource change - which determines your requirement for speed of provisioning and de-provisioning.
Try to express these in standard terms that you can map to the units used by the suppliers you are considering. There may be benchmark figures available that can help you. This is a difficult area, which requires specialist technical expertise. If you do not have this in your IT team, consider employing an external consultant.
Mapping your units to the units used by the suppliers will give you the cost models that you need.
It is sensible to validate the models before relying on them for big decisions. You might develop your own benchmark program and run it with test data using each of the services that you are considering. One of the advantages of cloud computing is that on-demand self service makes it easy to do this.
Conclusion: The Impact of Cloud Computing
Most people that have water on tap take it for granted. Few have ever had to go to a well or communal standpipe for their water or know what it is like to have to do this every day. Having water on tap brings a higher quality of life. Freed from the need to devote time and effort to basic but necessary tasks, people can do the things they want to do that make their life better. In the same way, cloud computing frees enterprises from the need to devote time and effort to operating and managing their IT and enables them to focus on their core activities.
Developing a cloud solution is not yet as easy as plumbing in a domestic water system. There is more to realizing an architecture vision than choosing your cloud service; you are, for example, likely to have to integrate it with other IT systems within the overall architecture of your enterprise. But this is a task that is within the compass of any IT-savvy enterprise today, as an increasing number of companies are proving.
The knock-on effects on the wider economy are huge and very beneficial. As businesses become more effective at what they do, they have capacity to do more, and the whole economy grows. Municipal water is an essential pre-requisite for a civilized society today. In the same way, cloud computing will be essential for the civilized societies of the future.