Cloud computing has become such a buzzword in the industry that it is being used to market many different types of software and network services, not all of which really fit the proper, technical definition of the cloud. So, before we examine the use, impact, and security issues of working in the cloud, it is necessary to define what cloud computing really is.
This chapter defines cloud computing, covers the origins of cloud computing, and briefly examines the technologies used in cloud computing to help you understand the role the cloud can play in organizational enterprise planning.
More than a marketing term, cloud computing refers to flexible self-service, network-accessible computing resource pools that can be allocated to meet demand. Services are flexible because the resources and processing power available to each can be adjusted on the fly to meet changes in need or based on configuration settings in an administrative interface, without the need for direct IT personnel involvement. These resources are assigned from a larger pool of available capacity (for examples, memory, storage, CPUs) as needed, allowing an organization to spin up a proof-of-concept application, expand that to a full prototype, and then roll it out for full use without having to worry about whether existing hardware, data center space, power, and cooling are capable of handling the load. Cloud computing allows the allocation of resources to be adjusted as needed, creating a hardware-independent framework for future growth and development.
Since the dawn of the networking age, when network diagrams depicted an enterprise and its extended components, the industry standard has been to use a simple cloud icon to identify the public Internet, as shown in Figure 1.1. This cloud represents all of the various types of networking and functions that are necessary to bridge together various parts of the enterprise over the Internet because the specific routing details are subject to change and are outside the enterprise network environment. That’s where the term cloud originated, and when we discuss migration into the cloud, what we generally mean is applications and services being moved from the organizational or hosting data center to cloud service providers available through the Internet.
Internet-based offsite-managed hosting services have been around for a while, available through specialty providers such as Rackspace since 1997 and even provided as value additions by local ISPs. However, cloud computing goes beyond simply hosting a website or database service on a machine located in a remote data center, with early cloud services such as Google Gmail and Google Apps showing off the power of cloud computing starting in 2006. Cloud computing solutions have several common characteristics, regardless of their form:
For example, a new cloud application might experience a sudden increase in use following mention on a popular blog and require additional network bandwidth, data storage, server memory, or CPU power to keep up with the sudden increase in demand. Traditional data centers would be limited by hardware constraints, while cloud computing alternatives can simply add CPUs or expand available database file storage up to predefined limits when needed and then shrink back after the storm of access has passed to manage on-demand costs.
Distributed design is one of the fundamental technologies supporting cloud computing. Early software had to operate on a single powerful system, together with its data and ancillary programs. The development of distributed application designs using a standardized application programming interface (API) model allowed one computer to host an application while others could hold the data and perform secondary tasks.
Once applications could work together to provide the consumer with a single interface, new technologies were developed such as just-in-time (JIT) inventory management. In JIT, a user places an order on a single website where availability is verified before the order is placed, and then the application alerts the warehouse to prepare the item for shipping, the shipper is notified for a pickup, and the accounting software handles payment transactions all behind the scenes. The customer merely selects what they want, sees that it is available, and then receives their receipt with confirmation of delivery date all in one seamless process.
In cloud computing environments, even the location and type of hardware supporting a software application can shift from moment to moment as additional capacity is allocated or services are transferred between cloud provider data centers. An organization’s services could not adapt to these changes without a flexible link between services, resources, networking, and storage. Theoretically speaking, if an earthquake disrupted California’s Internet services, services hosted in the cloud could continue operating without interruption or be rapidly transferred to data centers outside of the affected area.
The cloud is interconnected through standard APIs and XML web service interfaces, allowing developers to rapidly move their applications into the cloud without requiring a completely new set of skills. This improves future planning for technology’s constant evolution and update. Issues of technical refresh are no longer based on hardware life cycles but instead are handled by the cloud provider transparently as required. APIs still vary from one cloud provider to another, so applications developed under Amazon’s EC2 will not be able to directly transfer to Microsoft’s Azure, while Microsoft’s own utilities and tools can manage both local and cloud equivalents of its own services. Until cloud technologies mature into a common standard, application development will still retain some aspects of siloed technology/vendor lock-in. We will examine these issues in greater detail in subsequent chapters.
Another key function underlying the success of cloud computing is the management of resources automatically. When demand nears capacity, the cloud hosting software is able to identify need and respond by adding resources up to predetermined levels based on an organization’s contractual limits or limits configured in the management software. This protects application availability while also ensuring that attacks will not overrun an organization’s budget.
In addition to handling periods of high use, cloud computing can automatically reduce resource allocations during off-peak periods. Periodic and cyclical resource requirements have long presented problems for data center managers, who must make sure that equipment has sufficient resources for peak load periods but then must power and cool those systems even when they are minimally utilized. Defensive planning for cloud services includes a new aspect in the strategies planners will need for managing automatic resource provisioning, which we will discuss in greater detail in Chapter 12, “Privacy and Compliance.”
Because cloud resources are managed automatically, an organization can meet increasing need while also saving on costs during periods of reduced need without requiring constant management by human resources. The flexibility of Internet-accessible cloud computing applications will allow a single service to be utilized by many components of an organization’s geographically distributed sites. A single call center service could be used around the clock to support users within the local time zone, or a cloud service could transfer its operations to cloud hosting sites based on time of day statutes to provide the lowest latency to consumers in New York, London, and Hong Kong for one shared set of centrally negotiated licensing costs.
Virtualization of storage systems in early storage area networks and of entire computer systems forms the backbone of cloud computing. Because an organization no longer needs to worry about where data is located or what hardware resources are available on a particular server, focus can be turned to business uses of technology rather than on technology itself. Cloud computing also makes extensive use of server virtualization to better utilize cloud hosting servers by allowing multiple systems to run on a more powerful server, as shown in Figure 1.2. This is referred to as multitenancy and allows system resources to be fully utilized before another server is brought online, further reducing operating costs and data center cooling requirements.
Cloud computing also borrows from high-performance computing (HPC) techniques for separating individual procedures into multiple simultaneous processes that are sent out to individual computers, which then complete their portion of the final result. Individual results are combined later to provide the complete final result, as illustrated in the digital animation example of Figure 1.3. The digital animation example shows how a complete animation can be broken down into smaller segments for concurrent rendering and then combined into the final product using grid computing technologies.
By leveraging high-performance computing models for distributing processes across multiple systems, cloud computing allows more resources to be dedicated to an application than are present on its host server alone. CPU chip manufacturers are developing new technologies that can also dedicate per-core resources to individual processes, like the Intel Many Integrated Core (Intel MIC) CPUs being developed for high-performance and cloud computing environments.
Because HPC and cloud computing models use similar technologies and strategies, they work very well together. Some cloud providers now offer high-performance computing power on demand for data-intensive analytics and modeling, allowing thousands of CPU cores to be made available for research without an organization having to maintain a multimillion-dollar supercomputing data center for itself. In this configuration, cloud computing allows on-demand self-serve access to broad pools of computing power using the same technologies that allow cloud service providers to serve up email, e-business applications, and solutions for many other nonscientific tasks.
Cloud computing offers many different levels of services, from individual Software as a Service (SaaS) to Platform as a Service (PaaS) development environments and even Infrastructure as a Service (IaaS) complete solutions resident in the cloud. Some vendors now term even Everything as a Service (XaaS) as an offering, although this is more of a marketing term melding traditional and cloud computing than an established standard. We will cover these models in detail in Chapter 3, “Service Models.” Because cloud computing involves the service provider hosting applications and data supplied to end users, various levels of computing “as a Service” can be acquired, from individual applications such as database servers to whole network infrastructures serving up fully featured user desktops to mobile devices anywhere in the world.
Cloud computing services run atop hosting virtualized hardware servers and are accessed via the network, making them available to clients of many types:
Workstations The most common access client in an existing enterprise network will be the traditional thick client workstation system with a CPU, display device, and input devices (keyboard, mouse, trackball). This type of client works equally well in cloud environments, accessing web applications and cloud resources through locally loaded applications and web browsers.
Thin clients Thin clients have only a very basic operating system, display device, and input devices but lack onboard storage for local applications. They depend on remote software running on servers and so work very well with cloud services. Thin clients are not common outside of business organizations where vendors such as Citrix can work with central IT offices to manage the infrastructure necessary for thin clients to be useful. With cloud computing, this may change as more and more functions are shifted into the cloud, and thin clients may soon be found in homes and in place of traditional thick client workstations. A very limited version of the thin client once provided access to mainframe computers through directly connected dedicated terminals lacking all but the most basic of interfaces for human programmers and users, while today’s plug computers like Dell’s Ophilia™ are designed to pull their operating system and all software from a server or cloud service each time they power up.
Mobile clients Mobile devices from smartphones to tablets and constantly emerging variations are perfect clients for blending with cloud services. These devices have sufficient onboard storage for rich user interface applications but limited CPU power and so rely on remote servers for the “heavy lifting” within data processing and analytics applications. Using wireless networking for remote connections to web services, these low-power devices provide excellent on-the-go clients for the modern workforce.
Servers Traditional data center servers and services can make use of cloud computing resources, which is particularly helpful during migration to cloud alternatives. Deep integration is possible, such as the ability to interoperate on-premise Microsoft Exchange email servers with Azure-based Office 365 equivalents in a manner that is transparent to users and services that rely on email integration. Cloud backups provide another area in which traditional on-premise data centers can take advantage of the economies of scale and automatic resource allocation of cloud services to reduce costs for larger tape silos and expanded backup data storage.
Other cloud services Leveraging XML in much the same way as early service-oriented architecture (SOA) forerunners, elements of cloud computing can consume resources from other cloud services to leverage emerging offerings as they offer value to the organization.
The blending of cloud services is already becoming commonplace in existing enterprise networks. It is possible to find organizations with Salesforce CRM operating alongside Google Apps for user productivity while Azure SQL database applications power business applications running in Amazon S3 cloud services, with Iron Mountain providing cloud backup and recovery—all being accessed using iPads, whose automatic integration with cloud-based Dropbox, Flickr, and social media services improve customer interaction.
52.14.17.40