There are many advantages to moving to the cloud, but three stand out as compelling business and operations alternatives to hosting computing resources internally in your own data center or in a colocation facility:
In the past when computing resources were initially needed, there was often a long delay of procuring, installing, and configuring all the pieces needed to host an application. With a cloud solution, the equipment is already running in a cloud provider's data center, and you can begin hosting your application in record time, sometimes as short as in a few minutes.
From a financial perspective, a company's capital expenditures can be reduced as cloud computing avoids the large up-front costs of purchasing the needed computing equipment and ongoing support expenses associated with maintaining it. Cloud computing, with its pay-as-you-go billing model, frees up a company's cash flow for other needs.
As your computing or storage needs grow, a cloud computing model can expand almost immediately. Contrast this with the data center model in which you have to procure, install, and configure new equipment or software—a process that can take days if not weeks.
In-house computing requires a data center with the computing gear needed to support the organization's operations. The organization must hire engineers to tend to the operating systems, applications, storage, and networks. As illustrated in Figure 1.1, all computing is owned and operated by a single entity.
FIGURE 1.1 In-house computing
When moving to the cloud, you outsource many of these data center operations to a cloud service provider, as shown in Figure 1.2.
FIGURE 1.2 Cloud computing model
It's important to understand that the organization's data center does not actually move into the cloud, nor does the cloud provider take over the operations of the organization's data center. Instead, the cloud provider has its own data centers that already contain all the equipment that you need to host your applications and other IT services. The cloud provider can reach economies of scale by sharing its physical IT resources with many companies. This sounds similar to a colocation facility, but there's one big exception: you do not have physical access to the cloud provider's data center. The only way that you can use their computing resources is via the management interfaces—typically web consoles or application programming interfaces (APIs)—that they provide. There's a trade-off here: you give up control of the physical IT infrastructure in exchange for the convenience of a pay-as-you-go billing model.
In the distant past, computing was the realm of large mainframe computers , with a staff of highly specialized engineers and teams of programmers and administrators to manage and run the operations. Figure 1.3shows a typical mainframe architecture. Mainframe computing was a highly capital-intensive operation that was needed to supply computing resources to a corporation.
As computers became smaller and more powerful, the client-server architecture shown in Figure 1.4grew prevalent, and we saw the rise in departmental computing that was distributed throughout a company's operations.
Virtualization is what makes cloud computing possible. Simply put, virtualization is the ability to take physical data center resources such as servers, storage, and networking and abstract them as services that can be delivered as cloud offerings. A key benefit of virtualization is that it allows different customers to share the same physical IT infrastructure. Without this ability, cloud computing wouldn't be possible.
FIGURE 1.3 Mainframe computing
FIGURE 1.4 Client-server computing
The topic of virtualization can be confusing because people use the term in wildly different ways. In its most basic interpretation, “virtual” can mean anything not purely physical—not a very helpful distinction. Hence, it helps to break virtualization down into two different categories:
Machine virtualization
Network virtualization
These distinctions aren't particularly important in the context of cloud computing, but because it's easy to apply the “virtual” moniker to anything and everything, we need to draw some boundaries around when the designation is appropriate.
Machine virtualization —also called server virtualization—involves abstracting the resources of a single physical server into multiple virtual machines (VMs). Essentially, a VM is a software-emulated computer consisting of virtual CPUs (vCPUs), memory, storage, and networking. Like a real computer, a VM runs an operating system (OS) called a guest OS. The software that creates virtual machines and performs this abstraction is called a hypervisor . The hypervisor also defines the properties of a VM, including the following:
The number of virtual CPUs
The amount of random access memory (RAM)
The type and amount of storage
Virtual network interfaces and how they're connected
We'll discuss hypervisors in more detail in Chapter 2, “Cloud Deployments.” Virtualization not only allows for more efficient use of hardware resources, but also reduces power consumption, cooling, and the server footprint in data centers. This is illustrated in Figure 1.5, where many VMs share common hardware platforms.

A physical server that runs VMs is called a virtualized host.

FIGURE 1.5 Virtualized computing
The proliferation of Internet-capable devices, such as smartphones and tablets, means an increased strain on IT infrastructure. Organizations that want to offer services to these customers can benefit greatly from the cloud's utility-like service model (see Figure 1.6). The cloud supports instant access in an always-on environment.
FIGURE 1.6 Cloud computing
By definition, computer networks are already virtual because they're just an abstraction of physical connections. But in the context of cloud computing, network virtualization refers to virtual private clouds (VPCs)—isolated private networks within the cloud that allow connectivity among virtual machines and other cloud resources. There's some overlap with machine virtualization here, because VMs have virtual network interfaces that connect to these virtual private clouds.
Читать дальше