Infrastructure as a Service Cloud Concepts
- On-demand self-service
- Broad network access
- Multitenancy
- Rapid elasticity
- Measured service (pay as you go)
NIST also describes four deployment models:
- Private cloud—An organization operates a cloud for its own use. A private cloud can be either on-site at an enterprise’s own premises or off-site at the cloud provider’s location, with network connectivity and isolation from the outside using a virtual private network (VPN). A private cloud does not need multitenant capability, even though this is one of the five essential characteristics listed earlier.
- Community cloud—Several organizations use the cloud. For example, several government organizations might share both goals and resources.
- Public cloud—A cloud provider offers cloud services to the public-at-large.
- Hybrid cloud—Two or more clouds are federated by some enabling technology.
The content in this book applies to each of these models. However, some of the technologies are more applicable to one of more of the different types of clouds. For private clouds, you will need to operate the cloud itself more independently, so you need a deeper background in virtualization technologies. Public clouds tend to be large in scale, enabling independent software vendors (ISVs) and others to develop innovative services and solutions. To do this successfully, ISVs need to understand how to develop reusable cloud services. Interoperability is important in hybrid clouds, and you might find yourself focusing on standards. Likewise, collaboration is important in community clouds, so open source projects and collaboration techniques might be important.
Workloads
The term workload in the context of cloud computing is an abstraction of the use to which cloud consumers put their virtual machines on the cloud. For example, a desktop workload might be supporting a number of users logging on to interactive desktop sessions. An SAP workload might be a system of virtual machines working together to support an enterprise’s SAP system. Workloads are a key characteristic differentiating the requirements for cloud computing. Different workloads have different characteristics in terms of computing capacity, variability of load, network needs, back-up services, security needs, network bandwidth needs, and other quality-of-service metrics. At a high level, cloud workloads are divided into three groups: server centric, client centric, and mobile centric. Table 1.1 summarizes the common types of cloud workloads.
Table 1.1. Common Workloads in Cloud Computing
Workload |
Description and Examples |
Key Quality-of-Service Metrics |
Server Centric |
||
Web sites |
Freely available web sites for social networking, informational web sites large number of users |
Large amounts of storage, high network bandwidth, |
Scientific computing |
Bioinformatics, atmospheric modeling, other numerical computations |
Computing capacity |
Enterprise software |
Email servers, SAP, enterprise content management |
Security, high availability, customer support |
Performance testing |
Simulation of large workloads to test the performance characteristics of software under development |
Computing capacity |
Online financial services |
Online banking, insurance |
Security, high availability, Internet accessibility |
E-commerce |
Retail shopping |
Variable computing load, especially at holiday times |
Core financial services |
Banking and insurance systems |
Security, high availability |
Storage and backup services |
General data storage and backup |
Large amounts of reliable storage |
Client Centric |
||
Productivity applications |
Users logging on interactively for email, word processing, and so on |
Network bandwidth and latency, data backup, security |
Development and testing |
Software development of web applications with Rational Software Architect, Microsoft® Visual Studio, and so on |
User self-service, flexibility, rich set of infrastructure services |
Graphics intensive |
Animation and visualization software applications |
Network bandwidth and latency, data backup |
Rich Internet applications |
Web applications with a large amount of JavaScript |
|
Mobile Centric |
||
Mobile services |
Servers to support rich mobile applications |
High availability |
It is apparent from Table 1.1 that different workloads are appropriate for different types of clouds. For example, free online social networking web sites need many virtual machines to support many users and save large numbers of media files. Public cloud computing is ideal for supporting online social networking sites. Security and high availability is a top consideration for core financial services that need to be isolated from the Internet. The data integrity provided by a relational database is important for financial applications, to ensure that financial transactions are accounted for accurately. However, social networking web sites often use NoSQL data stores that do not provide full relational integrity.
The workloads can be refined further. For example, desktop needs are different for a handful of developers than they are for a large number of general employees. The developers might use a Linux desktop and set up everything themselves. The general employees might use a standard desktop image maintained from a central point. Support is also important for the general employees, who do not have the expertise to troubleshoot and reinstall, if needed, as developers do.
The paper MADMAC: Multiple Attribute Decision Methodology for Adoption of Clouds [Saripalli and Pingali, 2011] discusses in detail cloud workloads and decision making for enterprise cloud adoption.