Chapter 1

What Is Cloud Computing?

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.

  • Defining cloud computing
  • Understanding distributed application design
  • Understanding resource management automation
  • Understanding virtualized computing environments
  • Understanding high-performance computing models
  • Understanding cloud computing technologies

Defining Cloud Computing

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.

FIGURE 1.1 An example of the cloud symbol in network diagrams

image

Clouds Hold More than Just Rain
Almost anything can be hosted in the cloud, from databases and applications to complete virtual infrastructures encompassing data storage, networking, and all components of the server environment. The cloud can also host virtualized user desktop environments available from any networked client device, whether or not the client has sufficient local resources to host the virtualized desktop environment and its various applications.

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:

Managed by the provider Cloud computing services are managed by the cloud provider. Once applications and services have been moved to external cloud computing, an organization no longer needs to worry about local data center issues regarding power, space, and cooling, and developers need only know whether their applications will be running on one cloud service platform or another—for example, Amazon Elastic Compute Cloud (EC2) or Microsoft Azure—without having to consider where the services or application resources will be located. Knowledge of individual hardware characteristics and capacity measures is no longer important to the organization, while tech refresh and update becomes a background matter for the cloud provider to manage.
Flexible resource assignment The capacity and resources available to cloud computing services can be increased or decreased, with costs adjusted according to actual consumption. This allows an organization to spin up a new offering with only minimal costs for the resources used and then to meet spikes or cyclic use patterns with increased capacity, paying for only the level of use needed. Traditional data centers must always plan for future growth, and a sudden success for a web-based offering can rapidly overrun available server and network capacity unless data center managers purchase sufficient “spare” resources beforehand. Cloud computing draws resources from a pool as they are needed, based on level of service consumption. This is similar to the way power companies supply power to individual organizations, billing each according to its individual use.

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.


Pay Only for What You Need
Instead of buying huge storage arrays just in case of later need, you can start out small and grow your cloud resources only when required. Automatic failover to public cloud services when local resources are insufficient, a practice termed cloud bursting, will be discussed in Chapter 2, “Cloud Models,” as we review cloud deployment solutions.

Network accessible Cloud services are available via networked devices and technologies, facilitating rapid access by mobile customers and remote office locations. This provides an “anywhere, anytime” service model not possible in traditional data centers, where service downtime and local-area outages in power and networking can impact uptime. Because cloud computing vendors can be located anywhere in the world, they can host organizational services from areas outside of geopolitical turmoil or environmental threats. Before a hurricane, for example, a cloud service provider could transfer operations from Florida to Washington transparently to the service consumer.
Sustainable Because cloud providers can provision resources at need, it is possible to reduce power and cooling requirements during off-peak times, gaining economies of scale well beyond those available to single-tenanted hardware-based data services, which must stay on waiting for later use. The flexibility in cloud hosting location allows providers to shift operations without disruption to consumers. They can move data center activity north during summer months to save on cooling costs or transfer operations to areas with excess power production capability, such as Iceland.

Cloudy Skies Are “Greening” the Data Center
Cloud hosting supports green initiatives through the use of environmental cooling by transferring operations to cooler locations rather than requiring ever-larger refrigerated air systems to meet summer heat increases, reducing an organization’s environmental footprint.

Managed through self-service on demand After limits for resource availability are configured within the cloud provider’s systems, available resource capacity can be automatically expanded or managed by the client with minimal effort. Bringing up a test server no longer requires access to the physical system, loading software, and configuring networking by hand; instead, the customer need only access their cloud provider and request a new resource allocation using the self-service user interface. As long as the organization’s contractual limits on resources allow the addition, it is managed automatically without further technical assistance needed.

Understanding Distributed Application Design

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.


Many CPUs Make Light(er) Work
Services such as eBay depend on distributed processing to integrate real-time bids with item availability and many other factors calculated and managed simultaneously across many systems. No single system could handle the volume of transactions occurring simultaneously as items are placed for bid, bids are submitted, notifications for winning bids are transmitted, and the various other aspects of online real-time auctions are carried out.

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.


Clouds Virtualize the Application Development Cycle
Application development in the cloud improves business agility to offer new services to customers by making services immediately available with whatever resources turn out to be needed rather than via the traditional model of application development, prototyping, testing, and then rollout to production systems after procurement.

Understanding Resource Management Automation

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.


Clouds Help Deal with Botnets and Distributed Denial-of-Service Attacks
Cloud services protect an organization by simply scaling up resources to meet growing demands during an attack while also ensuring that attacks, such as botnet distributed denial of service attacks, will not overrun an organization’s resources. However, this defense comes at a cost for the added resource capacity.
Botnets are collections of individual computers remotely controlled by the “bot herder” to perform tasks as directed. Most bots are standard personal computers located in people’s homes and businesses and infected with viruses and remote control software that lets the bot herder issue commands. By commanding all of the individual bots to connect to a target server, the bot herder consumes all of the targeted server’s resources trying to handle the attack, preventing legitimate use.
Organizations can configure resource limits so that an attacker cannot generate uncontrollable costs by adding more bots into the attack. Botnets of a million or more controlled systems have been identified and shut down by law enforcement, and these could easily run up the cloud bill for a targeted organization if there were no limits to resource allocation.

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.”


CPA firms might see a peak once a year during tax time, while a website featured in the news might need expanded resources only one time ever.

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.

Understanding Virtualized Computing Environments

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.

FIGURE 1.2 Virtualizing individual physical systems onto a shared powerful server

image

Because cloud hosting providers use virtualization to expand capacity and to provision new services, automated deployment speeds capacity expansion and tech refresh operations.

Understanding High-Performance Computing Models

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.

FIGURE 1.3 Rendering a complete video sequence using multiple computers simultaneously

image

High-performance computers are also termed supercomputers.

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.

Understanding Cloud Computing Technologies

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 service models will be reviewed in Chapter 3, addressing the capabilities of each successive layer of “as a Service” cloud offerings.

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.


The Essentials and Beyond
Cloud computing is already present in today’s enterprise networks and offers a utility-like model in which organizations can purchase only the capacity and resources they are using, adjusting to meet changing needs automatically and with only minimal administrative effort. Building atop technologies for distributed, virtualized, and high-performance computing and linked by XML techniques developed for earlier SOA implementation, cloud computing supports the ever-evolving span of mobile technologies and user devices enhancing today’s business organizational needs.
Additional Exercises
  • Identify familiar cloud-based services.
  • Identify client types you use to access cloud services.
  • Describe at least three characteristics of cloud computing.
To compare your answer to the author’s, please visit www.sybex.com/go/cloudessentials.
Review Questions
1. Where does the term cloud come from?
A. Environmental threats
B. Network diagrams
C. Exposed networks
D. Legacy term for SOA
2. What characteristic of cloud computing reduces administrative costs?
A. Self-service or automated resource management
B. Placing the cloud data center farther away from local administrators
C. Limitation of platform/application development selection (in PaaS environments)
D. Paying only for resources actually consumed
3. True or false? Cloud computing is the same as virtualized computing.
A. True
B. False
4. Which type of client lacks storage for applications?
A. Thick
B. Thin
C. Mobile
D. Remote
5. What characteristic of cloud computing reduces data center costs?
A. Using energy-efficient technologies in cloud data centers
B. Flexibility and sustainability of cloud service models
C. Allowing services to be automatically migrated between data center locations as required
D. Remote availability for mobile devices
6. Which fundamental technology provides cloud computing with its ability to split up processes across multiple resource pools?
A. Distributed application design
B. Resource management automation
C. Virtualized computing
D. High-performance computing
7. What is another term for a flexible pool of computing resources available to network clients and managed by self-service on-demand automated tools?
A. Server virtualization
B. High-performance computing
C. Cloud computing
D. Server consolidation
8. True or false? Cloud computing is inherently an ecologically green technology.
A. True
B. False
9. When a service has been migrated into the cloud, where is it really located?
A. In the local data center
B. In a partner organization’s data center
C. At a service provider’s virtualized data center
D. Almost anywhere
10. What is the term used in system virtualization to reflect more than one operating system or instance running on a single host server?
A. Heterogeneous servers
B. Homogeneous servers
C. Multitenancy
D. Colocation

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
52.14.17.40