1

2

3

Brief Contents

Preface

Chapter 1 Introducing Cloud Computing

Chapter 2 Software as a Service (SaaS)

Chapter 3 Platform as a Service (PaaS)

Chapter 4 Infrastructure as a Service (IaaS)

Chapter 5 Identity as a Service (IDaaS)

Chapter 6 Data Storage in the Cloud

Chapter 7 Collaboration in the Cloud

Chapter 8 Virtualization

Chapter 9 Securing the Cloud

Chapter 10 Disaster Recovery and Business Continuity and the Cloud

Chapter 11 Service-Oriented Architecture

Chapter 12 Managing the Cloud

4

Chapter 13 Migrating to the Cloud

Chapter 14 Mobile Cloud Computing

Chapter 15 Governing the Cloud

Chapter 16 Evaluating the Cloud’s Business Impact and Economics

Chapter 17 Designing Cloud-Based Solutions

Chapter 18 Coding Cloud-Based Applications

Chapter 19 Application Scalability

Chapter 20 The Future of the Cloud

Glossary of Key Terms

Index

Credits

5

Contents

Preface

Chapter 1 Introducing Cloud Computing

Web 2.0 and the Cloud

Distinguishing Cloud Types

Cloud Deployment Models

Cloud Service Models

Exploring Uses of the Cloud

Introducing Scalability

Introducing Virtualization

Collecting Processing Power Through Grid Computing

Chapter Summary

Key Terms

Chapter Review

Chapter 2 Software as a Service (SaaS)

Getting Started with SaaS

Understanding the Multitenant Nature of SaaS Solutions

Understanding OpenSaaS Solutions

Understanding Mashups

Understanding Service-Oriented Architecture (SOA)

Chapter Summary

Key Terms

Chapter Review

6

Chapter 3 Platform as a Service (PaaS)

IT Evolution Leading to the Cloud

Benefits of PaaS Solutions

Disadvantages of PaaS Solutions

Chapter Summary

Key Terms

Chapter Review

Chapter 4 Infrastructure as a Service (IaaS)

Understanding IaaS

Improving Performance Through Load Balancing

Taking a Closer Look at Load Balancing

System and Storage Redundancy

Utilizing Cloud-Based NAS Devices

Advantages of IaaS Solutions

Server Types Within an IaaS Solution

Chapter Summary

Key Terms

Chapter Review

Chapter 5 Identity as a Service (IDaaS)

Understanding Single Sign-On (SSO)

Understanding How SSO Works

Understanding Federated Identity Management

Understanding Account Provisioning

Understanding OpenID

Mobile ID Management

7

Chapter Summary

Key Terms

Chapter Review

Chapter 6 Data Storage in the Cloud

Examining the Evolution of Network Storage

Understanding Cloud-Based Data Storage

Advantages and Disadvantages of Cloud-Based Data Storage

Getting Past the Fear of Cloud-Based Data

Cloud-Based Backup Systems

Understanding File Systems

Industry-Specific Cloud-Based Data Storage

Cloud-Based Database Solutions

Cloud-Based Block Storage

Chapter Summary

Key Terms

Chapter Review

Chapter 7 Collaboration in the Cloud

Collaborating in the Clouds

Questions to Ask About Collaborative Tools

Web-Based Collaboration Began with Web Mail

Instant Messaging Isn’t What It Used to Be

Cloud-Based Phone and Fax Systems

Revisiting File Sharing

Editing Shared Files Within the Cloud

Collaborating via Web Logs (Blogs)

8

Collaborative Meetings in the Cloud

Virtual Presentations and Lectures

Using Social Media for Collaboration

Using Cloud-Based Calendar Management

Using Streaming Video Content to Collaborate

Cloud-Based TV Content

Chapter Summary

Key Terms

Chapter Review

Chapter 8 Virtualization

Understanding Virtualization

The History of Virtualization

Leveraging Blade Servers

Server Virtualization

Desktop Virtualization

Desktop Solutions on Demand

Virtual Networks

Data Storage Virtualization

Not All Applications Are Well Suited for Virtualization

Why Virtualize?

Chapter Summary

Key Terms

Chapter Review

Chapter 9 Securing the Cloud

General Security Advantages of Cloud-Based Solutions

9

Introducing Business Continuity and Disaster Recovery

Understanding Data Storage Wiping

Understanding Distributed Denial-of-Service (DDoS) Attacks

Packet Sniffing

Man-in-the-Middle Attack

Monitoring Device Screens

Malicious Employees

Hypervisor Attack

Guest-Hopping Attack

SQL-Injection Attack

Physical Security

Chapter Summary

Key Terms

Chapter Review

Chapter 10 Disaster Recovery and Business Continuity and the Cloud

Understanding the Threats

Threat: Disk Failure

Threat: Power Failure or Disruption

Threat: Computer Viruses

Threat: Fire

Threat: Floods

Threat: Disgruntled Employees

Threat: Lost Equipment

Threat: Desktop Failure

Threat: Server Failure

10

Threat: Network Failure

Threat: Database System Failure

Threat: Phone System Failure

Understanding Service-Level Agreements

Measuring Business Impact: The Essence of Risk Mitigation

Disaster Recovery Plan Template

Chapter Summary

Key Terms

Chapter Review

Chapter 11 Service-Oriented Architecture

Understanding Service-Oriented Architecture

Web Services Are Not Web Pages

Many Companies Provide Web Services

Discovering Web Services

Understanding Web Service Performance

Web Service and Reuse

Scaling Web Services

Web Services and Loose Coupling

Treating a Web Service as a Black Box

Web Service Interoperability

Web Service Description Language

Governing Web Services

Chapter Summary

Key Terms

Chapter Review

11

Chapter 12 Managing the Cloud

Know Your Service-Level Agreement

Ensure and Audit System Backups

Know Your System’s Data Flow

Beware of Vendor Lock-In

Source-Code Escrow

Determine Technical Support and Help Desk Procedures

Determine Training Procedures

Know the Provider’s Security Policies and Procedures

Define the Data Privacy Requirements

Know Specifics About the Economics of the Cloud and Return on Investment

Monitor Capacity Planning and Scaling Capabilities

Monitor Audit-Log Use

Solution Testing and Validation

Chapter Summary

Key Terms

Chapter Review

Chapter 13 Migrating to the Cloud

Define the System Goals and Requirements

Protect Your Existing Data

Use an Experienced Cloud Consultant

Know Your Application’s Current Characteristics

Remember Vendor Lock-In

Define Your Training Requirements

Establish a Realistic Deployment Schedule

12

Review the Budget Factors

Identify IT Governance Issues

Understanding Cloud Bursting

Chapter Summary

Key Terms

Chapter Review

Chapter 14 Mobile Cloud Computing

The Evolution of Mobile Computing

Understanding the G in 3G and 4G

The Mobile Cloud Ecosystem

Introducing the Mobile Players

Pages, Apps, and Widgets

Revisiting the Role of HTML

Mobile Development Considerations

Chapter Summary

Key Terms

Chapter Review

Chapter 15 Governing the Cloud

Understanding Corporate Governance

Understanding Business Strategy

Measure What Is Important

Inspect What You Expect

Understanding Internal Controls

Extending Governance to Information Technology

Cloud Computing Governance

13

Chapter Summary

Key Terms

Chapter Review

Chapter 16 Evaluating the Cloud’s Business Impact and Economics

Business Economics

Total Cost of Ownership

Economies of Scale

Capital Expenditures

Operational Expenses

Return on Investment

Profit Margins

Moore’s Law and the Cloud

Understanding Right-Sizing

Defining a Large Data Center

Other Economic Key Performance Indicators

Marketing the Cloud

Chapter Summary

Key Terms

Chapter Review

Chapter 17 Designing Cloud-Based Solutions

Revisit the System Requirements

When to Select a Development Environment

Design Is a Give-and-Take Process

Designing for Accessibility

Designing for Audit

14

Designing for Availability

Designing for Backup

Designing for Existing and Future Capacity

Designing for Configuration Management

Designing for Deployment

Designing for Disaster Recovery

Designing for the Environment (Green Computing)

Designing for Interoperability

Designing for Maintainability

Designing for Performance

Designing for Price

Designing for Privacy

Designing for Portability

Designing for Recovery

Designing for Reliability

Designing for Response Time

Designing for Robustness

Designing for Security

Designing for Testability

Designing for Usability

Chapter Summary

Key Terms

Chapter Review

Chapter 18 Coding Cloud-Based Applications

Creating a Mashup Using Yahoo! Pipes

15

Creating a Simple Yahoo! Pipe

Using Google App Engine

Creating a Hello, World! Application with Google App Engine

Downloading the Google App Engine Software Development Kit

Deploying a Simple Google App Engine Example

Creating a More Advanced Google App Engine Application

Creating a Windows Azure “Hello, World!” Application

Chapter Summary

Key Terms

Chapter Review

Chapter 19 Application Scalability

Reviewing the Load-Balancing Process

Designing for Scalability

Scaling Up, Scaling Out, or Both

Minimize Objects on Key Pages

Selecting Measurement Points

Analyze Your Database Operations

Evaluate Your System’s Data Logging Requirements

Revisit Your Service-Level Agreement

Capacity Planning Versus Scalability

Scalability and Diminishing Returns

Performance Tuning

Complication Is the Enemy of Scalability

Chapter Summary

Key Terms

16

Chapter Review

Chapter 20 The Future of the Cloud

How the Cloud Will Change Operating Systems

Location-Aware Applications

Intelligent Fabrics, Paints, and More

The Future of Cloud TV

Future of Cloud-Based Smart Devices

Cloud and Mobile

How HTML5 Will Drive Mobile Applications

Faster Time to Market for Software Applications

Home-Based Cloud Computing

Chapter Summary

Key Terms

Chapter Review

Glossary of Key Terms

Index

Credits

17

Preface

FOR YEARS, SOFTWARE DEVELOPERS and network administrators have used

the image of a cloud to represent the myriad of communication details that occur

as messages flow across the Internet from one computer network to another.

This cloud abstraction has now exploded to include processors, both physical

and virtual, data storage, software-as-a-service solutions, and mobile

applications. Today, cloud-based applications and new capabilities are emerging

daily and bringing with them lower cost of entry, pay-for-use processor and

data-storage models, greater scalability, improved performance, ease of

redundancy, and improved business continuity. With these advantages come

increased security challenges and IT-governance concerns. This book examines

these issues. As you will learn, two things are certain: The dynamic nature of the

cloud will continue and we have only just begun to scratch the cloud’s surface.

Chapter 1: Introducing Cloud Computing introduces the abstract nature of

cloud computing and the factors that led to its evolution. The chapter examines

software as a service (SaaS), platform as a service (PaaS), and infrastructure as a

service (IaaS) and includes real-world examples of each. The chapter discusses

the key advantages of cloud computing, including scalability, redundancy, low

cost of entry, and virtualization.

Chapter 2: Software as a Service (SaaS) examines browser-based SaaS

solutions and their advantages. The chapter features real-world solutions such as

SalesForce.com for customer relationship management, Taleo for human

resources solutions, ADT for SaaS-based payroll processing, and many others.

Chapter 3: Platform as a Service (PaaS) introduces cloud-based hardware and

software platforms which allow companies, large and small, to move their

applications to the cloud quickly and cost effectively. The chapter examines PaaS

providers such as Amazon, Google, and Microsoft.

Chapter 4: Infrastructure as a Service (IaaS) introduces the concept of a

cloud-based data center which reduces or eliminates a company’s need for a

large in-house data center. Because of the IaaS provider’s economies of scale, it

can reduce a company’s cost of IT operations significantly.

Chapter 5: Identity as a Service (IDaaS) examines cloud-based

identity-management solutions that simplify user provisioning and resource

18

access. With more solutions distributed across the cloud, IDaaS facilitates the

user’s sign-on process across solution providers.

Chapter 6: Data Storage in the Cloud examines the integration of cloud-based

data storage and the evolution of network-based storage, which led to its

creation. The chapter presents several cloud-based data storage solutions that

can be enabled at little or no cost. The chapter also examines several low-cost

turnkey based backup solutions.

Chapter 7: Collaboration in the Cloud looks at cloud-based technologies that

allow two or more users to work together to accomplish a task. The chapter

describes the evolution of collaboration technologies from instant messaging to

virtual meetings to shared documents that support simultaneous editing by

multiple users.

Chapter 8: Virtualization introduces hardware and software used to create the

perception that one or more entities exist, when they may not actually be

physically present. The chapter examines solutions for virtual servers, virtual

desktops, and virtual networks.

Chapter 9: Securing the Cloud examines the real-world security issues that

people (even some sophisticated IT users) are uncomfortable with when placing

their personal data, or their company’s data, in the cloud. The chapter examines

specific security threats and the measures that should be taken to minimize

them.

Chapter 10: Disaster Recovery and Business Continuity and the Cloud

discusses ways that the cloud and its redundant resources improve a company’s

ability to recover and continue to operate after a disaster or serious event. The

chapter examines common threats to business operations and some

cloud-computing solutions that can mitigate them.

Chapter 11: Service-Oriented Architecture looks at how the availability of

web-based services is changing how developers create programs and the speed

at which they can deploy solutions. The chapter examines a variety of real-world

web services that are available to programmers for integration into programs.

Chapter 12: Managing the Cloud examines the tasks a manager must perform

after a company migrates its applications to the cloud, including auditing logs,

19

monitoring system performance, and identifying bottlenecks within the data

flow.

Chapter 13: Migrating to the Cloud discusses managerial considerations to be

evaluated before migrating to the cloud, such as avoiding vendor lock-in,

identifying remote data backup operations and security considerations,

preparing a budget, and integrating developer and user training.

Chapter 14: Mobile Cloud Computing evaluates whether mobile computing is

driving the growth of cloud computing or vice versa. The chapter examines the

“ecosystem” that is mobile computing as well as how HTML5 will change

computing models.

Chapter 15: Governing the Cloud discusses the role of IT governance and its

extensions for cloud-based computing. The chapter examines the need for and

ways to implement cloud-based internal controls.

Chapter 16: Evaluating the Cloud’s Business Impact and Economics

examines how the cloud’s economy of scale and pay-for-use model will

accelerate the ability for companies, large and small, to release cloud-based

solutions. The chapter also evaluates the cloud’s impact on operational and

capital expenses.

Chapter 17: Designing Cloud-Based Solutions discusses the fact that

developers will simply pick up and move many existing applications to the cloud.

In the future, however, developers should design cloud-based solutions to utilize

scalability and redundancy. The chapter examines many common design

considerations and ways the cloud will impact them.

Chapter 18: Coding Cloud-Based Applications looks at two PaaS providers,

Google Apps and Windows Azure, and implements cloud-based applications with

each. Developers will learn that creating and deploying cloud-based applications

is fast, easy, and inexpensive.

Chapter 19: Application Scalability examines how developers can scale

applications—vertically, by using faster processors or more powerful servers

and horizontally, by supporting the ability to distribute processing better. The

chapter looks at design considerations to be evaluated when designing

applications for scalability.

20

Chapter 20: The Future of the Cloud examines ways the cloud will extend its

reach into cars, televisions, appliances, and even our clothes. By the end of the

chapter, readers will realize that we have just scratched the cloud’s surface.

21

chapter 1

Introducing Cloud Computing FOR YEARS DEVELOPERS AND network administrators have represented the Internet within design documents as a cloud. By abstracting the Internet’s technologies and underlying protocols as simply a cloud, as shown in FIGURE 1-1, the developers could temporarily ignore the communication complexity and simply assume that messages would flow successfully from one Internet-connected network to another.

Learning Objectives

This chapter introduces cloud computing. By the time you finish this chapter, you will be able to do the following:

• Understand the abstract nature of cloud computing.

• Describe evolutionary factors of computing that led to the cloud.

• Describe virtualization at both the desktop and the server level.

• Describe and identify common cloud types, which include software as a service, platform as a service, and infrastructure as a service.

• Know how businesses and individuals use the cloud.

• Describe the benefits and disadvantages of cloud computing.

• Understand common security considerations with respect to the cloud.

• Describe ways cloud computing can improve system fault tolerance.

• Describe Web 2.0 and its relationship to cloud computing.

Today the term cloud computing describes the abstraction of web-based computers, resources, and services that system developers can utilize to implement complex web-based systems. Often these cloud-based resources are viewed as virtual, meaning that if a system or solution needs more resources, such as processors or disk space, the resources can simply be added on demand and usually transparently to the application that uses them. Through their virtual nature, cloud-based solutions can be scaled up or down in size, and the

22

companies whose solutions reside in the clouds normally pay only for the resources they consume. Thus, companies that once relied on expensive data centers to house their processing resources can now shift their costs and maintenance efforts to pay-as-you-go, scalable, cloud-based alternatives.

FIGURE 1-1 For years developers and network administrators have represented the Internet as a cloud.

CASE 1-1 THE APPLE ICLOUD

Whether one is a PC user or a Mac evangelist, one must recognize Apple’s ability to introduce technology that changes industries and the way people work and communicate. Apple’s first entrée into the cloud was the iTunes virtual music store. Today iTunes offers millions of songs for download to PCs and Macs, as well as iPods, iPhones, iPads, and other handheld devices. More than just music on a web-based storage device, iTunes laid a foundation for scalable e-commerce, high-bandwidth download transactions, and user device independence.

Apple’s iCloud extends the company’s existing functionality by providing users with a cloud-based storage facility for their phones, music, videos, books, and other documents. Using iCloud as a centralized virtual storage facility, users can quickly exchange digital content among their various devices. In fact, users can customize the iCloud settings to make the file exchange seamless and automatic. In other words, if a user stores a digital file within iCloud, behind the scenes iCloud software will push the content to each of the user’s registered devices, as shown in FIGURE 1-2.

23

FIGURE 1-2 Using iCloud, users can synchronize their content to a variety of devices.

Exercise What industries might iCloud disrupt? What business services do you anticipate Apple to offer in order to drive revenue through the iCloud?

Web Resources For more information on iCloud, see www.CloudBookContent.com/Chapter01/index.html.

Web 2.0 and the Cloud

For years, when companies wanted to place content on the web, they hired web developers, who created the underlying HTML documents. Through this process, the number of documents on the web exploded to billions worldwide. Web 2.0 is a term used to describe the set of tools and websites that allow users to publish content to the web without the direct use of HTML. Behind the scenes, the tools and sites build the HTML documents for the user and then upload the documents to a web server. TABLE 1-1 describes the common Web 2.0 applications.

TABLE 1-1 COMMON WEB 2.0 SITES AND APPLICATIONS

Application/Site Purpose

Blog A web log that users can write and use to publish content directly to the web.

24

Wiki A software program that allows users to collaborate on shared web-based

documents.

Twitter A microblogging service that allows users to send messages of up to 140

characters to those who follow the users’ tweets.

Facebook A social networking site to which users can post text, photos, and

video-based content.

YouTube A site to which users can upload video content for sharing with others.

25

FIGURE 1-3 Web 2.0 tools make it easy for users who do not possess web development skills to easily publish content on the web.

As shown in FIGURE 1-3, with Web 2.0 tools and sites, users essentially publish content directly to the cloud for access by other users.

Distinguishing Cloud Types

Cloud-based applications provide a wide range of solutions to a very large number of users. To help us analyze and describe cloud-based systems, many people refer to a cloud solution in terms of its deployment model and services model. These two terms originated within a cloud computing document from the National Institute of Standards and Technology (NIST), as shown in FIGURE 1-4.

26

FIGURE 1-4 Users refer to cloud solutions based on the system’s deployment and services models.

CASE 1-2 THE MICROSOFT WINDOWS AZURE PLATFORM

When web developers create web pages, they need to host the corresponding HTML files on a web server before other users can access the content from across the web. Developers have two choices when it comes to publishing their content. First, they can host the pages on their own web server, which may require hardware support and maintenance. Second, the developers can host the files at a server that resides at an Internet service provider (ISP), which allows the developer to focus on web page development as opposed to server management. Today developers can host their web pages at an ISP for a few dollars per month.

Windows Azure is a Microsoft platform that developers can use to move their applications to the cloud. Unlike support for a simple HTML page, which requires only the presence of a web server, Windows Azure provides operating-system support for .NET applications and a cloud-based SQL server (SQL Azure). You can think of Windows Azure as a cloud-based data center within which developers can house their applications. The Windows Azure platform, in turn, maintains servers, operating systems, database software, and other supporting applications. As a developer’s application grows in terms of users, processor demands, or disk storage, the Windows Azure environment grows to meet the developer’s needs. In this way, the Windows Azure platform provides the following:

• Scalability: Windows Azure can scale up, or scale down, processor and storage resources on demand.

• Redundancy: Windows Azure provides server, disk storage, and network redundancy.

• Cost benefits from resource pooling: Windows Azure shares IT resources across a very large number of companies, which provides cost savings to each.

• Outsourced server management: Microsoft provides Windows Azure IT staff who maintain operating systems and underlying support software.

• Low cost of entry: To release a cloud-based solution, companies do not need to invest in their own IT data center.

Exercise Discuss the pros and cons of hosting an application within one’s own data center as opposed to using a service provider such as Windows Azure.

27

Web Resources For more information on Windows Azure, see www.CloudBookContent.com/Chapter01/index.html.

Cloud Deployment Models

A cloud deployment model specifies how resources within the cloud are shared. As discussed in TABLE 1-2, there are four primary cloud deployment models: private cloud, public cloud, community cloud, and hybrid cloud. Each model influences the corresponding scalability, reliability, security, and cost.

TABLE 1-2 CLOUD DEPLOYMENT MODELS

Deployment

Model

Characteristics

Private cloud Owned by a specific entity and normally used only by that entity or one of its

customers. The underlying technology may reside on- or off-site. A private

cloud offers increased security at a greater cost.

Public cloud Available for use by the general public. May be owned by a large organization

or company offering cloud services. Because of its openness, the cloud may be

less secure. A public cloud is usually the least expensive solution.

Community

cloud

The cloud is shared by two or more organizations, typically with shared

concerns (such as schools within a university).

Hybrid cloud A cloud that consists of two or more private, public, or community clouds.

28

Cloud Service Models

A cloud can interact with a client (user or application) in a variety of ways, through capabilities called services. Across the web, three major types, or models, of services have emerged, which are defined in TABLE 1-3.

Examining Software as a Service (SaaS)

The software as a service (SaaS) model provides a cloud-based foundation for software on demand. In general, an SaaS solution is web-delivered content that users access via a web browser. The software can reside within any of the deployment-model clouds. FIGURE 1-5 illustrates the SaaS model.

TABLE 1-3 COMMON CLOUD SERVICE MODELS

Cloud Service

Model

Characteristics

Software as a

service (SaaS)

A complete software application with a user interface.

Platform as a

service (PaaS)

A platform within which developers can deploy their applications. A

PaaS solution includes hardware (servers and disks), operating systems,

development tools, and administrative tools.

Infrastructure as a

service (IaaS)

Provides machines, storage, and network resources that developers can

manage by installing their own operating system, applications, and

support resources.

29

FIGURE 1-5 The SaaS model presents a cloud-based application with a user interface to users running only a web browser.

The advantages of SaaS solutions are simplicity of integration (users need only a browser), cost (the data center resides within the cloud), and scalability (customers can add user licenses or seats as needed). The disadvantage of SaaS solutions is the perception of security issues. Users who are new to the cloud may not feel comfortable storing company data in a remote data-storage facility (the cloud).

Well-known SaaS solution providers include Salesforce.com, Google Apps, TurboTax, and QuickBooks.

Examining Platform as a Service (PaaS)

The platform as a service (PaaS) model provides the underlying hardware technology, such as one or more servers (or virtual servers), operating systems, database solutions, developer tools, and network support, for developers to deploy their own solutions. The hardware and software within a PaaS solution is managed by the platform provider. Developers need not worry about performing hardware or operating system upgrades. Instead, developers can focus on their own applications. FIGURE 1-6 illustrates the PaaS model. Well-known PaaS solution providers include Windows Azure and Google App Engine.

Examining Infrastructure as a Service (Iaas)

The infrastructure as a service (Iaas) model provides a virtual data center within the cloud. IaaS provides servers (physical and virtualized), cloud-based data storage, and more. Within an IaaS solution, developers must install their

30

own operating system, database management software, and support software. Then the developers (or the company’s system administrators) must manage both the hardware and the software. FIGURE 1-7 illustrates the IaaS model. The Amazon Elastic Compute Cloud (Amazon EC2) is an IaaS solution.

FIGURE 1-6 The PaaS model provides the underlying hardware and operating system a developer needs to launch an application.

FIGURE 1-7 The IaaS model provides the underlying hardware (servers and storage). Clients must install and then manage their own operating system, database software, and support software.

CASE 1-3 AMAZON WEB SERVICES (AWS)

If you ask people to rank order the top e-commerce companies, Amazon.com will make the top of most lists. Amazon has grown from selling books to selling a virtually endless range of products.

31

As Amazon evolved its sales plan, the company recognized the value of extending its product base (the things they sell) to other sites. The other sites (Amazon affiliates), in turn, could offer links to products, the sales and fulfillment of which would be handled by Amazon, in a revenue-sharing model. This affiliate program was one of the first cloud-based sales partnerships.

As Amazon continued to grow, its internal developers created a system architecture that was redundant, scalable, and robust. With these services fully operational, Amazon recognized that most software companies would need similar capabilities. To meet that demand, Amazon released Amazon Web Services (AWS), which companies can use to host their own systems. Today, AWS process hundreds of thousands of web-based requests for companies every second!

One of Amazon’s primary cloud tools is the Amazon Elastic Compute Cloud (Amazon EC2), which lets companies rent cloud-based services for their applications. Using Amazon EC2, companies can pay by the hour for the processing they need and scale processor support up or down to meet user demands.

To complement the processing power of Amazon EC2, Amazon Simple Storage Service (Amazon S3) provides cloud-based data-storage facilities, and companies pay only for the data storage they consume. Behind the scenes, Amazon provides data redundancy.

To further support developers, Amazon offers virtual-network support, database support, and e-commerce capabilities.

Exercise Assume your company wants to use Amazon as its disk-backup provider. What pros and cons would you consider? Discuss how you might leverage Amazon Web Services to bring an e-commerce site online.

Web Resources For more information on Amazon Web Services, see www.CloudBookContent.com/Chapter01/index.html.

Exploring Uses of the Cloud

The cloud is now host to a wide range of large-scale and small-scale (custom) applications. The number and type of applications that users can deploy to the cloud is virtually limitless. Many software companies are now moving key applications from expensive internal data centers to cost-effective and resource-redundant cloud solutions.

32

As a user, you might already use cloud-based personal productivity software, such as TurboTax, bank-specific bill-pay software, or a stock tool such as E*TRADE. Or you may leverage a cloud-based collaboration tool, such as Google Calendar or Google Docs, to share information and documents with other users. Or you may store files, such as your music, photos, or videos, on cloud-based data storage.

CASE 1-4 SALESFORCE.COM

One of the first companies to launch a large-scale SaaS solution was Salesforce.com. The company recognized that as much as three-fourths of a salesperson’s day was spent on nonsales tasks (calendar management, contract management, presentation management, and contact management). Salesforce.com recognized that regardless of the items a company sold, the selling process was similar across companies and even industries. Salesforce.com automated these tasks and put the underlying data storage in the cloud—the sales cloud.

In a similar way, Salesforce.com has recognized that after the sale, customer service is key. As a result, the company released a customer service cloud, which integrates common customer service operations. The software manages the process of responding to customer calls, e-mails, Facebook updates, live chats, and more. After customer cases are resolved, managers can monitor the results via cloud-based dashboards.

Exercise Discuss the common sales and customer service tasks supported by Salesforce.com.

Web Resources For more information on Salesforce.com, see www.CloudBookContent.com/Chapter01/index.html.

Introducing Scalability

When they launch a new website, many developers have visions of having created the next Google, Amazon, or Facebook. Unfortunately, the developers have no way of knowing what the actual user demand will be. Should the site become widely used, it may require additional servers or disk-storage capacity.

Scalability defines a site or application’s ability to use additional resources on demand. The site or application may scale up to utilize additional resources when the system is experiencing high user demand and may later scale down its resource usage when the user demand declines.

33

Applications that run within the cloud are normally highly scalable. An application administrator can manually add or remove resources, or the application can be configured to scale automatically. As shown in FIGURE 1-8, applications scale through the use of additional servers (physical or virtual) or through the addition of disk-storage space.

Introducing Virtualization

Chapter 8, Virtualization, examines desktop and server virtualization in detail. For now think of virtualization as the use of hardware and/or software to create the perception of something. For example, most servers have a CPU that is capable of running a specific operating system, such as Windows or Linux. Using special software, the server can be made to appear as if it has multiple CPUs running the same or different operating systems, as shown in FIGURE 1-9.

FIGURE 1-8 Sites or applications can scale up or down through the addition or removal of servers or disk-storage capacity.

34

FIGURE 1-9 Server virtualization makes a single server appear as multiple independent servers running the same or different operating systems.

Behind the scenes, the server CPU switches its processing power rapidly among the various operating systems.

In a similar way, most desktop PCs typically run one operating system. Again, using special virtualization software, a desktop PC, as shown in FIGURE 1-10, can be made to appear as if the system is simultaneously running different operating systems. Desktop virtualization provides an excellent solution for developers, application testers, and help desk support personnel who must support multiple operating systems. Rather than having multiple desktop systems on their desk, with each system running a specific operating system, the user can instead use a single desktop PC with multiple (virtual) operating systems.

35

FIGURE 1-10 Desktop virtualization allows a PC to run multiple operating systems simultaneously.

CASE 1-3 GOOGLE CLOUD-BASED SOLUTIONS

Google is one of the world’s most successful web-based businesses. Through its high-performing search engine, Google leverages high-margin automated advertising solutions. Beyond this, Google offers a variety of applications that leverage the cloud’s ease of access and device independence to a wide range of users.

To start, Gmail, an early cloud-based solution, has become one of the most widely used e-mail services. By storing user e-mails within the cloud, Gmail provides ease of access to e-mail from any computer or handheld device, at any time and from any place.

Google Docs, an online set of collaborative document editing tools, provides many of the common capabilities of Microsoft Office tools, such as Word, Excel, and PowerPoint, from within a web browser, with no software to install and no cost! Not only do the Google Docs tools make it easy for developers to share documents, they provide a preview of how future cloud-based solutions will allow users to perform their daily computing tasks without the need for a computer operating system such as Windows or Mac OS.

As you might expect, Google is not conceding sole custody of the music market to Apple. Google is protective of its web domain and now offers services users can access for common cloud-based solutions.

Exercise Explain how Google makes money. Describe the pros and cons of PCs that do not require an operating system.

Web Resources For more information on Google cloud-based solutions, see www.CloudBookContent.com/Chapter01/index.html.

Collecting Processing Power Through Grid Computing

Through cloud computing, users leverage virtual processing power and data storage via Internet-based computing resources that reside in the cloud. Through CPU (or server) farms and load balancing, cloud-based applications can scale on the fly to meet user demands.

Before the advent of the cloud, developers sought ways to leverage the potential processing power of networked computers. The concept of grid computing is

36

based on the fact that throughout the day most PCs have spiked use. This means that when a user is active, the CPU utilization may grow to 30 to 50 percent of the processor’s capacity. When the user is not active, the CPU is idle, often using 1 percent or less of its processing capabilities.

By utilizing the fact that most computers are connected to a network, the grid-computing architects look to design applications that could hand off work across the network to idle CPUs. When the CPU completes its task, it simply returns its result. Shown in FIGURE 1-11, a grid-computing application is well suited for scientific and complex mathematical processing.

FIGURE 1-11 Grid computing breaks a complex task into smaller pieces that are distributed to CPUs that reside within the network (grid).

As you might anticipate, grid computing introduces a wide range of security issues. The applications that move across the grid must bring with them code to execute, data, and other state information. The University of California, Berkeley, is one of the leaders in grid computing. To facilitate computer interaction across grids, the university developed the Berkeley Open Infrastructure for Network Computing (BOINC). For specifics, visit http://boinc.berkeley.edu.

A FEW GOOD CLOUD-CONTENT READS

Across the web—OK, make that across the cloud—there are many sites that provide great information about cloud issues. The following sections describe several items you should

37

DISTRIBUTED MANAGEMENT TASK FORCE INC. (DMTF) CLOUD MANAGEMENT

Distributed Management Task Force Inc. (DMTF) provides information technology standards, which exist to simplify computer system management and reduce related costs. Within DMTF, the Cloud Management Work Group (CMWG) and the Cloud Auditing Data Federation (CADF) provide standards for cloud architecture, environments, and interactions. You should take time, for example, to visit the Cloud Standards Wiki, shown in FIGURE 1-12.

FIGURE 1-12 The Cloud Standards Wiki.

STORAGE NETWORKING INDUSTRY ASSOCIATION (SNIA)

One of the largest uses of the cloud is for remote data storage, perhaps for live data, music, video, or even backups. The Storage Networking Industry Association (SNIA) is a nonprofit organization that provides standards and solutions on matters related to disk storage. As you might expect, SNIA provides content on cloud-based data storage. At the SNIA website, you can find

38

overviews, podcasts, and standards on cloud-based storage issues. For specifics, visit the SNIA cloud site at www.snia.org/cloud.

OBJECT MANAGEMENT GROUP

The Object Management Group (OMG) is a nonprofit organization that provides standards for a wide range of technology, including real-time and embedded software, analysis and design, middleware, and more. Within the OMG, the Cloud Standards Customer Council (CSCC) is currently working on a variety of cloud computing initiatives, which will be consolidated into a user guide. For specifics on their research and publications, visit the CSCC website.

CHAPTER SUMMARY

The concept of a cloud and the Internet is not new. For years developers and network administrators have represented the Internet as a cloud. Using the cloud abstraction, developers could temporarily ignore the underlying communication complexity and simply assume that messages would flow successfully from one Internet-connected network to another.

Cloud computing is an abstraction of web-based computers, resources, and services that system developers can utilize to implement complex web-based systems. Developers often view cloud-based resources as virtual. This means that if a system or solution need more resources, such as servers or disk space, the resources can simply be added on demand and usually transparently to the cloud-based application. Cloud-based solutions can normally scale up or down in size based on user demands. Companies whose solutions reside in the cloud normally pay only for the resources they consume. As a result, companies that once relied on expensive data centers to house their processing resources can now shift their costs and maintenance efforts to pay-as-you-go, scalable, cloud-based alternatives.

KEY TERMS

Amazon Web Services (AWS)

Cloud computing

Community cloud

Grid computing

Hybrid cloud

39

iCloud

Infrastructure as a service (IaaS)

Platform as a service (PaaS)

Private cloud

Public cloud

Reliability

Robust

Scalability

Software as a service (SaaS)

Virtualization

Web 2.0

Windows Azure

CHAPTER REVIEW

1. Define and discuss cloud computing.

2. Discuss how cloud computing has changed how companies budget for software solutions.

3. Compare and contrast SaaS, PaaS, and IaaS, and provide an example of each.

4. Define scalability and discuss how the cloud impacts it.

5. List three advantages and three disadvantages of cloud computing.

6. Define virtualization and discuss how the cloud impacts it.

7. Describe three cloud-based solutions for individuals and three cloud-based solutions for businesses.

8. Discuss how Web 2.0 has driven the growth of the web.

9. Compare and contrast public, private, community, and hybrid clouds.

40

chapter 2

Software as a Service (SaaS) SOFTWARE AS A SERVICE (SaaS) is a solution model in which users use a web browser to access software that resides, along with the programs and user data, in the cloud. Companies that use SaaS solutions eliminate the need for in-house (data-center-based) applications, administrative support for the applications, and data storage. Because SaaS solutions reside within the cloud, the solutions can easily scale to meet customer needs. Further, most companies can pay for the SaaS solutions on demand—meaning that the companies pay only for the resources they consume, normally on a per-user basis. SaaS solutions exist for a wide range of applications and provide customers with a cost-effective way to get started and an affordable long-term solution.

Learning Objectives

This chapter examines SaaS solutions in detail. By the time you finish this chapter, you will be able to do the following:

• Define and describe SaaS.

• List the advantages and disadvantages of SaaS solutions.

• Define and describe OpenSaaS.

• Define and describe mashups.

• Discuss the wide range of SaaS solutions and their providers.

Getting Started with SaaS

SaaS solutions offer the following advantages:

• They reduce or eliminate the need for an on-site data center

• They eliminate the need for application administration

• They allow customers to pay on demand for software use, normally on a per-user basis

• They offer application, processor, and data storage scalability

41

• They offer device-independent access to key applications

• They increase disaster recovery and business continuity

The biggest concern, or potential disadvantage, is that the data, like the applications, reside in the cloud. Many companies are concerned about letting go of their data. Also, because the company does not own the solution, it can be challenging or expensive to customize the application.

CASE 2-1 SALESFORCE.COM SAAS FOR CUSTOMER RELATIONSHIP MANAGEMENT (CRM)

Salesforce.com was one of the first companies to unlock the power of cloud-based SaaS. The site delivers cloud-based customer relationship management (CRM) solutions, which let companies accomplish the following:

• Manage sales contacts and leads

• Centralize contact information, presentations, and project details

• Access sales information and reports from anyplace, at any time, with any device

• Manage project quotes and project work flow

• Sync sales contacts and meetings with existing tools, such as Microsoft Outlook

Salesforce.com offers a variety of solutions that support not only the small business, but also the large enterprise.

Exercise Salesforce.com was one of the companies to leverage the power of the cloud. Discuss the features Salesforce.com provides that are well suited for companies large and small.

Web Resource For more information on Salesforce.com, see www.CloudBookContent.com/Chapter02/index.html.

Understanding the Multitenant Nature of SaaS Solutions

SaaS applications are often multitenant solutions; that is, within the cloud, two or more companies may share the same server resources, as shown in FIGURE 2-1. Depending on their size and fees, customers may also share database resources. Further, depending on the SaaS provider, customizing a multitenant solution may be difficult, expensive, or impossible.

42

FIGURE 2-1 Many SaaS solutions are multitenant, which means that behind the scenes customers may share computing resources.

CASE 2-2 TALEO SAAS FOR HUMAN RESOURCES MANAGEMENT

To achieve wide-scale use, an SaaS solution must have large market potential. Every business must recruit, hire, train, and compensate employees. The Taleo cloud-based talent management system provides applications and services to meet company human resources demands. Specifically, Taleo SaaS solutions provide the following:

• Recruitment tools companies can use to attract, hire, and integrate talented individuals into the company culture

• Performance-management tools companies can use to evaluate employees and plan their growth and eventual replacement

• Compensation tools appropriate for companies with a global workforce

• Workforce training and professional development tools companies can use to educate and train employees

Exercise For an SaaS solution to be successful, the solution must be disruptive. Discuss whether or not you consider the Taleo cloud-based solutions disruptive.

Web Resource For more information on Taleo cloud-based human resources solutions, see www.CloudBookContent.com/Chapter02/index.html.

43

Understanding OpenSaaS Solutions

The application programs that run as SaaS solutions in the cloud were developed using a specific programming language and were designed to run on a specific operating system using a specific database management system. An OpenSaaS solution is an SaaS application created using an open source programming language and designed to run on an open source operating system and database.

Many customers believe that if a solution is open source, it will be easier for them to move the data to a different application in the future if the current solution fails to meet their needs. Because customers do not own the SaaS software, they will not be able to move the application itself.

Customers that are concerned about moving their data in the future should consider an OpenSaaS provider. That said, most SaaS solutions, open source or not, provide a way for customers to export their data if the need arises.

CASE 2-3 ADP SAAS FOR PAYROLL PROCESSING AND HUMAN RESOURCES MANAGEMENT

One of the first companies to leverage the power of the cloud was ADP—a payroll processing company. Reaching far beyond payroll today, ADP offers cloud-based solutions for time management, employee benefits processing, workers compensation, human resources issues, and more. Further, ADP has extended many of its services to mobile users, allowing payroll processing to occur any time, from any place.

Exercise Discuss the market potential for ADP products beyond payroll processing.

Web Resource For more information on ADP cloud solutions, see www.CloudBookContent.com/Chapter02/index.html.

CASE 2-4 WEBEX SAAS FOR VIRTUAL MEETINGS

To gain market share, an SaaS solution must be disruptive; it must change its industry. The WebEx solution not only changes how and when people meet, it disrupts the travel industry by reducing business trips, hotel stays, and business meals. Millions of users rely on WebEx to provide a virtual yet face-to-face meeting platform. A side effect of less travel is the greening of business, which means it has less impact on the environment. In fact, as shown in FIGURE 2-2,

44

WebEx provides an online calculator that shows the dollars saved and the carbon footprint reduced through WebEx-based meetings, as opposed to corporate travel.

Beyond holding online meetings, companies use WebEx for the following:

• Training webinars for hundreds or thousands of attendees, within the company and beyond

• Press conferences

• Product sales demonstrations

• Remote technical support

• And more

FIGURE 2-3 shows a WebEx presentation on cloud computing.

Exercise Assume that your company must invite 500 employees into the corporate office from states across the country (an average airline ticket cost of $350). Using the WebEx calculator, determine the potential company savings by hosting the meeting online.

Web Resource For more information on WebEx, see www.CloudBookContent.com/Chapter02/index.html.

45

FIGURE 2-2 Calculation of cost savings and carbon footprint reduction resulting from WebEx meetings. Courtesy of Cisco Systems, Inc. Unauthorized use not permitted. www.webex.com/overview/environment.html. (6/1/11).

FIGURE 2-3 WebEx leverages the cloud for face-to-face virtual meetings and presentations. Courtesy of Cisco Systems, Inc. Unauthorized use not permitted. http://theheadoftheclass.webex.com. (6/1/11).

CASE 2-5 CARBONITE SAAS FOR FILE BACKUPS

Businesses often rely on a process known as cloud-based colocation to duplicate their company resources at a remote site. If fire, theft, or some other disaster occurs, the business significantly reduces its risk of data loss.

Most user-based computer books tell users that they, too, should perform regular disk and file backup operations. However, because the process is generally too time consuming, most users fail to back up their files on a regular basis. Worse yet, users who do perform backups often store the copies within the same facility (home or office) as their computer. The backups are at risk to many of the same factors that threaten the original data.

46

To provide users and companies with a backup solution, many SaaS providers have emerged to back up user data files to redundant storage facilities that reside within the cloud, as shown in FIGURE 2-4.

The SaaS cloud-based backup systems provide reliable and secure storage. Users simply select the files or folders they want to back up and then schedule when and how often they want the backups to occur. The actual backup operations then happen behind the scenes, automatically.

FIGURE 2-5 shows a screen for a Carbonite-based backup operation occurring as a background process while the user performs other tasks.

Exercise Assume your company has 1,000 employees. Calculate the potential cost to integrate cloud-based backup operations through Carbonite. Do you have an alternative backup solution?

Web Resource For more information on Carbonite cloud-based backups, see www.CloudBookContent.com/Chapter02/index.html.

FIGURE 2-4 Cloud-based SaaS backup providers store secure copies of user and company files at data storage facilities that reside in the cloud.

47

FIGURE 2-5 The Carbonite software running as a background task to back up files to the cloud.

FIGURE 2-6 A mashup is a collection of services joined to create an overall solution.

Understanding Mashups

48

Many companies need a variety of SaaS solutions. Depending on the various solution providers, the company may create a mashup, a collection of services joined to create an overall solution. FIGURE 2-6 illustrates the concept of a solution mashup.

Developers categorize mashups as web-based or server-based. In a web-based mashup, the user’s browser (perhaps via JavaScript) combines the various content sources to create a unified display. In server-based mashups, an application running on a server combines the data.

Not surprisingly, the open philosophy has reached mashups. In fact, organizations are working on the Enterprise Markup Mashup Language (EMML) to simplify the design and implementation of mashup solutions while increasing their portability. For more information, visit www.openmashup.org.

CASE 2-6 ONLINE SCHOOL SAAS SOLUTIONS

Online education has remained one of the fastest growing segments within education markets. Millions of learners now take courses online. Using cloud-based learning management systems, universities offer courses in both synchronous (learners meet at a specific day and time) and asynchronous (learners make their own schedule) formats. By leveraging cloud-based systems, schools can reduce their IT resources and staffing costs, essentially paying for learning services on demand.

Exercise Using the web, search for demographic information on the size of the online learning environment. Discuss how you expect this market to evolve over the next 10 years.

Web Resource For more information on cloud-based online learning, see www.CloudBookContent.com/Chapter02/index.html.

CASE 2-7 MICROSOFT OFFICE 365 SAAS FOR DOCUMENT CREATION, EDITING, AND SHARING

For as long as most of us can remember, computer users have made extensive use of the Microsoft Office suite: Word, PowerPoint, Excel, Outlook, and more. Traditionally users have had to purchase and install Office, a relatively expensive investment. Then users have had to keep installing updates to the software as they became available from Microsoft. Businesses, in turn, would normally license Office for each of their employees.

49

Over the past few years, to reduce costs many users began to use products such as Open-Office (LibreOffice), an open source, free, Office-compatible solution. Recently users have found Google Docs, which can be used from any computer—a compelling tool.

To meet user demands and to match competitor offerings, Microsoft released Office 365, a pay-by-the-month subscription to the Office applications, which, as shown in FIGURE 2-7, resides in the cloud.

Using Office 365, users can access and edit their documents from any computer, as well as many handheld devices. If needed, users can save their documents to local devices. FIGURE 2.8, for example, shows a PowerPoint document in Office 365.

Further, because the Office 365 documents are cloud based, users and teams can easily collaborate and share documents.

Exercise Assume your company has 1,000 employees who need access to the Microsoft Office suite of products. Analyze the potential cost savings of using Microsoft Office 365 over purchasing seat licenses for each user.

Web Resource For more information on Microsoft Office 365, see www.CloudBookContent.com/Chapter02/index.html.

FIGURE 2-7 Office 365 provides cloud-based subscription access to the Office suite of applications.

50

FIGURE 2-8 Users can access cloud-based Office 365 documents from any PC as well as many handheld devices.

Understanding Service-Oriented Architecture (SOA)

Most SaaS solutions provide complete solutions, meaning an application that can be used within a web browser. For example, Salesforce.com provides a web application for customer relationship management, TurboTax provides a web application for filing taxes, and QuickBooks provides a web application for business accounting. Beyond providing a complete application with a user interface, many solution providers offer specific services that developers can access across the web from within programs they create. Developers refer to these services as web services. A developer might, for example, use web services to do the following:

• Query the price of a stock

• Check a warehouse for current product inventory levels

• Get real-time road or weather conditions

• Check airline flight departure or arrival information

• Purchase a product or service

• Perform credit card processing

51

FIGURE 2-9 Web services are solutions that programs can call across the web to perform specific tasks.

As shown in FIGURE 2-9, an SaaS application interacts with a user, whereas a web service interacts with a program.

Service-oriented architecture (SOA) is an application development methodology with which developers create solutions by integrating one or more web services. Think of a web service as a function or subroutine a program can call to accomplish a specific task. As shown in FIGURE 2-10, when a program running on 91 one computer calls a web service, a message, possibly containing parameter values, is sent across the network (or Internet) to the computer housing the web service. That computer, in turn, performs its processing and normally returns a result to the caller.

Some developers refer to web services as remote-procedure calls. Further, developers refer to a set of web services as an application program interface (API). Amazon and eBay, for example, provide APIs that programmers can use to purchase products from across the web using the programs they create. To gain a better understanding of the processing that web services can perform, visit the XMethods website shown in FIGURE 2-11. XMethods provides a variety of web services that perform a wide range of tasks.

52

FIGURE 2-10 To call a web service, a program typically sends a message to the web service that resides on a remote computer and then waits for the web service to return a result.

FIGURE 2-11 The XMethods website at www.xmethods.com provides web services that perform a wide range of tasks.

53

CASE 2-8 FACEBOOK: AN SAAS MEDIA SITE?

If you ask 10 cloud experts if Facebook is an SaaS social media site, you will likely get 10 “maybe” answers. Facebook definitely has a variety of SaaS characteristics:

• Ability to scale with respect to processor demands and data storage needs

• No user software to purchase or install

• Redundant server hardware and data storage

• Accessibility through a myriad of devices

Exercise Justify whether Facebook is an SaaS solution.

Web Resource For more information on Facebook as an SaaS provider, see www.CloudBookContent.com/Chapter02/index.html.

CASE 2-9 IS GOOGLE+ A BETTER, OR JUST ANOTHER, SOCIAL NETWORK?

Google+ is a new social networking site that lets users define and manage various groups of people and how they interact with them. With Google+, users can define various circles, which might include people from work, good friends, and family, as well as casual acquaintances. Using such circle definitions, users can better control the posts they allow others to view.

FIGURE 2-12 Shows the Google+ home page.

Exercise Compare and contrast the Google+ features with those of other social networks, such as Facebook.

Web Resource For more information on Google+, see www.CloudBookContent.com/Chapter02/index.html.

54

FIGURE 2-12 Google+ is a social network that resides in the cloud.

CHAPTER SUMMARY

SaaS provides a solution model that allows users to use a web browser to access software that resides in the cloud. SaaS solutions allow companies to eliminate or reduce their need for on-site, data-center-based applications. By eliminating in-house applications, companies can also reduce administrative support for the applications, as well as data storage. SaaS solutions reside within the cloud, which lets the solutions easily scale processors or disk storage to meet customer needs. Companies normally pay for SaaS solutions on demand for the resources they consume, usually on a per-user basis. SaaS solutions exist for a wide range of applications. Using SaaS solutions, customers have a cost-effective way to get started and an affordable, long-term solution to their data storage needs. Finally, this chapter examined web services, which are cloud-based services that developers can call from within the programs they create to accomplish specific tasks. Many SaaS solution providers offer their services directly to users via SaaS applications and to developer-created programs using web services.

KEY TERMS

Application program interface (API)

Customer relationship management (CRM)

Mashup

55

Multitenant solution

Service-oriented architecture (SOA)

Web services

CHAPTER REVIEW

1. Define and describe SaaS.

2. Search the web and list an SaaS provider for each of the following industries:

• Sales and customer relationship management

• Accounting

• Income tax filing

• Web-based meetings

• Human resources

• Payroll processing

• Backup automation

• Office document creation

• Social networking

3. Define and describe mashups.

4. List the advantages and disadvantages of SaaS solutions.

5. Describe the role of OpenSaaS.

6. Compare and contrast a web service and an SaaS solution.

7. Define and describe SOA.

56

chapter 3

Platform as a Service (PaaS) PLATFORM AS A SERVICE (Paas) solutions provide a collection of hardware and software resources that developers can use to build and deploy applications within the cloud. Depending on their needs, developers may use a Windows-based PaaS solution or a Linux-based PaaS.

Using PaaS, developers eliminate the need to buy and maintain hardware, as well as the need to install and manage operating system and database software. Because the computing resources no longer reside in the data center, but rather in the cloud, the resources can scale up or down based on application demand, and the company can pay for only those resources it consumes. Further, because PaaS eliminates the developers’ need to worry about servers, they can more quickly deploy their web-based solutions.

Learning Objectives

This chapter examines the PaaS model in detail. By the time you finish this chapter, you will be able to do the following:

• Define and describe the PaaS model.

• Describe the advantages and disadvantages of PaaS solutions.

• List and describe several real-world PaaS solutions.

• List and describe cloud-based database solutions and describe their advantages.

• Discuss the development history that led to PaaS.

CASE 3-1 GOOGLE APP ENGINE AS A PAAS

Google App Engine, sometimes called GAE, is a PaaS solution that lets developers create and host web-based applications that reside and run on services managed by Google, as shown in FIGURE 3-1.

57

Like many Google services and offerings, Google App Engine is a free service (until applications reach a large size and consume significant bandwidth). Google estimates that most developers can use Google App Engine free of charge. Once they have 5 million hits per month the developers must then pay, but only for the resources they use.

Currently, Google App Engine provides platform support for a variety of programming languages, the three most common of which are Java, Python, and Go. The primary Google App Engine features include the following:

• Support for dynamic web pages

• Data storage and query support

• Load balancing for application scalability

• Application program interface (API) support for application-based e-mail through Google services

• A local development, environment that simulates Google App Engine on the developer’s computer

• Support for event scheduling and triggering

• An application sandbox that limits access to the underlying operating system

• Software development kits specific to programming languages

• An administrative console for managing applications and databases

For more information on Google App Engine, visit www.appengine.google.com.

Exercise Assume your company must deploy Java and PHP solutions. Discuss how your company might use Google App Engine and the company’s potential cost.

Web Resources For additional information on Google App Engine, see www.CloudBookContent.com/Chapter03/index.html.

58

FIGURE 3-1 Google App Engine helps developers create web-based applications and then hosts the applications in the cloud.

IT Evolution Leading to the Cloud

The evolution of information technology solutions has been defined by several distinct hardware and software models. To start, early IT solutions from the 1960s to mid-1980s were characterized by mainframe computers similar to that shown in FIGURE 3-2, which had the following characteristics:

• Large capital investment for data-center-based computers

• Large, expensive disk and tape storage systems that often provided only limited storage capacity

• User interface to the system provided through dumb terminals

• Limited computer–network interconnectivity

• System security maintained through physical security (few users had direct access to the computer hardware)

59

FIGURE 3-2 Computing from the 1960s through the mid-1980s was mainframe driven.

With the advent of the IBM PC in 1981, users shifted to local applications and data storage. Early network solutions provided in-house e-mail communication and limited printer and file sharing. System security was implemented primarily at the individual computer level because network simplicity did not yet provide an environment for sophisticated computer viruses.

FIGURE 3-3 Early PC-based servers were tower-based systems with a large footprint. They consumed considerable power and generated considerable heat.

As the use of the Internet became more widespread, companies extended their e-mail communication beyond company users to vendors, customers, and others. Things changed drastically with the commercialization of the web in 1995 and the release of company websites. Initially, many companies brought in expensive T1 or T3 Internet connections and housed their own web servers. These initial servers looked like large desktop systems, as shown in FIGURE 3-3.

FIGURE 3-4 ISPs were the first to offer cloud-like remote computing services.

60

For smaller companies, however, the cost to connect to the Internet was prohibitive. As a result, Internet service providers (ISPs), which maintained web servers and high-speed, high-bandwidth connections, began to emerge. As shown in FIGURE 3-4, developers would use languages such as HTML, Perl, and active server pages (ASP) to develop content locally and then use a file transfer protocol (FTP) application to transfer the files to the server, which resides within the ISP.

The advantages of hosting solutions at an ISP included the following:

• Reduced cost: The ISP provided the high-speed, high-bandwidth Internet connection, which it shared across several companies.

• Less server administration: The ISP managed the servers to which developers uploaded their solutions.

• Less hardware to purchase and maintain: The ISP purchased and managed the hardware and managed the infrastructure software, such as the operating system.

• Greater system uptime: Through the use of redundant hardware resources, the ISP provided high system uptime.

• Potential scalability: The ISP had the ability to move a high-demand application to a faster bandwidth connection.

As the use of the Internet and web continued to drive processing requirements, many data centers began to move to blade servers, similar to that shown in FIGURE 3-5, which required a smaller footprint, involved less cost, and could easily access shared network devices.

By 2005, many companies used Windows- and Linux-based web servers that were housed at remote ISPs and laid the groundwork for the eventual creation of what we describe today as cloud-based PaaS solutions, as shown in FIGURE 3-6.

61

FIGURE 3-5 Blade computers allowed companies to reduce server footprint, power requirements, and heat within the data center.

FIGURE 3-6 The evolution of technology leading to cloud PaaS solutions.

CASE 3-2 FORCE.COM AS A PAAS

One of the best known software as a service (SaaS) solutions is Salesforce.com. To extend its cloud capabilities to application developers, Salesforce.com has released the Force.com PaaS. Although it was originally developed to provide a home for business applications, Force.com now runs applications across most sectors.

As shown in FIGURE 3-7, Force.com provides four different development environments that sit in a cloud-based data management facility.

62

FIGURE 3-7 Force.com provides four primary development products that leverage a cloud-based database.

The following briefly describes the Force.com application interface:

• Appforce: Provides a user interface that lets nonprogrammers create applications to support finance, human resources, project management, and more. Through a drag-and-drop interface, users can develop business solutions without writing code.

• Siteforce: Provides the ability for nondevelopers to quickly create a data-rich website using the Salesforce.com customer relationship management (CRM) editor. Users do not need to know HTML or coding to produce powerful web pages.

• VMforce: Provides a platform for Java-based solutions in which programmers can code locally using the Eclipse integrated development environment (IDE) and then drag and drop their solutions to VMforce.com for hosting.

• ISVforce: Provides a platform that independent software vendors can use to distribute their applications and updates to users via the cloud. The platform includes access to an application storefront that developers can use to expose their application to potential customers.

The Force.com applications sit on top of a cloud-based database provided by Salesforce.com at Database.com. The cloud-based database provides high performance, scalability, backups, and data redundancy. Database.com provides an API that developers can use within their programs to interact with the database.

Exercise Assume your company’s vice president of sales wants to produce sales reports from your company’s cloud-based sales data. Unfortunately, your company does not have programming resources it can allocate to the project. Discuss how your company might leverage a Force.com solution to meet the requirement.

63

Web Resources For additional information on Force.com, see www.CloudBookContent.com/Chapter03/index.html.

Benefits of PaaS Solutions

By shifting computing resources from an on-site data center to the cloud, PaaS solutions offer many advantages:

• Lower total cost of ownership: Companies no longer need to purchase and maintain expensive hardware for servers, power, and data storage.

• Lower administrative overhead: Companies shift the burden of system software administration from in-house administration to employees of the cloud provider.

• More current system software: The cloud administrator is responsible for maintaining software versions and patch installations.

• Increased business and IT alignment: Company IT personnel can focus on solutions rather than on server-related issues.

• Scalable solutions: Cloud-based solutions can scale up or down automatically based on application resource demands. Companies pay only for the resources they consume.

CASE 3-3 LONGJUMP AS A PAAS

LongJump provides a PaaS solution that includes cloud-based database management support. What makes LongJump unique is its focus on the entire software development life cycle. To start an application design, nonprogrammers can capture business requirements, forms, and data relationships without coding. The LongJump application development is Java based and supports key protocols such as SOAP and REST. After the developer hosts the site, LongJump provides release management and software maintenance support. Developers can try LongJump free of charge.

Exercise Discuss the role of web services and specifically the use of the SOAP and REST protocols.

Web Resources For additional information on LongJump, see www.CloudBookContent.com/Chapter03/index.html.

Disadvantages of PaaS Solutions

64

Potential disadvantages of PaaS solutions include the following:

• Concerns about data security: Some companies are hesitant to move their data storage off-site.

• Challenges to integrating cloud solutions with legacy software: A company may need to support on-site solutions as well as cloud-based solutions. Communication between the two application types may be difficult to impossible.

• Risk of breach by the PaaS provider: If the company providing the PaaS service fails to meet agreed-upon service levels, performance, security, and availability may be at risk, and moving the application may be difficult.

CASE 3-4 NETSUITE AS A PAAS

NetSuite is somewhat of a hybrid in that it is a provider of both SaaS and PaaS. On the SaaS side, NetSuite offers turnkey enterprise resource planning (ERP), customer relationship management (CRM), and accounting solutions. The benefits of using the NetSuite cloud-based solution include the following:

• Reduced total cost of ownership compared with running on-site solutions within an IT data center

• Reduced duplication of data entry through the use of integrated storage solutions

• Enhanced distributed access to computer data

• Simplified application updates because NetSuite maintains and manages software solutions

On the PaaS side, NetSuite provides a development environment that sits on top of the Net-Suite business solutions. Using a drag-and-drop environment, developers can quickly build and deploy enterprise solutions.

Exercise Visit the NetSuite website and then discuss the role and capability of drag-and-drop solutions that do not require a programmer to create and deploy applications.

Web Resources For additional information on NetSuite, see www.CloudBookContent.com/Chapter03/index.html.

65

CASE 3-5 CLOUD FOUNDRY AS A PAAS

Cloud Foundry is an open source project enabled by VMware. Developers have access to and contribute to the project. Cloud Foundry provides developers with a complete PaaS solution that supports programming languages including Spring for Java applications, Rails and Sinatra for Ruby, and other Java virtual machine (JVM) frameworks. Cloud Foundry supports various open source databases, such as MongoDB and MySQL.

The primary Cloud Foundry is multitenant, but through the use of MicroCloud, developers can use a single instance of Cloud Foundry.

Exercise Research cloud applications on the web. Discuss the programming languages that cloud developers use most often to implement the applications they create.

Web Resources For additional information on Cloud Foundry, see www.CloudBookContent.com/Chapter03/index.html.

CASE 3-6 OPENSHIFT AS A PAAS

Red Hat is well known for providing and supporting open source solutions. Red Hat also distributes Red Hat Linux. OpenShift is the Red Hat PaaS offering, which lets developers quickly deploy browser-based and command-line-based applications. OpenShift has three primary development tools:

• Express: A free platform for cloud-based solutions written in PHP, Python, and Ruby.

• Flex: Well suited for cloud-based Java, JBoss, and PHP solutions.

• Power: Designed for Linux-based solutions written in the C programming language.

Exercise Discuss the pros and cons of using a Linux-based PaaS solution as opposed to a Windows-based environment.

Web Resources For additional information on OpenShift, see www.CloudBookContent.com/Chapter03/index.html.

66

CASE 3-7 WINDOWS AZURE AND SQL AZURE AS A PAAS

Microsoft.NET has driven the development of many dynamic web solutions and web services. Windows Azure is a PaaS running within Microsoft data centers. Users pay only for the scalable processor resources that they consume. SQL Azure provides a cloud-based database solution for applications running within Windows Azure. FIGURE 3-8 illustrates the Windows Azure PaaS environment.

Windows Azure goes beyond .NET and includes support for Java, PHP, and Ruby. Developers can build and deploy their solutions to Azure using an IDE such as Visual Studio or Eclipse. Developers can interface to SQL Azure using much of the same code they would use to access a local database.

Exercise Discuss advantages and disadvantages of using Microsoft as a PaaS solution provider.

Web Resources For additional information on Windows Azure and SQL Azure, see www.CloudBookContent.com/Chapter03/index.html.

FIGURE 3-8 The Windows Azure PaaS environment.

CHAPTER SUMMARY

A PaaS solution provides a collection of hardware and software resources that developers use to build and deploy cloud-based applications. PaaS solutions run a Windows- or a Linux-based operating system and normally support a specific programming environment, such as .NET or Java.

67

PaaS solutions eliminate the need for developers to buy and maintain hardware and install and manage operating system and database software. Because the PaaS computing resources reside in the cloud, the resources can scale up or down based on application demand, and the company pays only for the resources it consumes. Finally, because PaaS eliminates the developers’ need to worry about servers, they can more quickly deploy their web-based solutions.

KEY TERMS

Cloud-based database

Integrated development environment (IDE)

Platform

CHAPTER REVIEW

1. Define and describe PaaS.

2. List the benefits of PaaS solutions.

3. Describe potential disadvantages of PaaS.

4. Describe how a cloud-based database management system differs from an on-site database.

5. List the computing resources normally provided with a PaaS.

6. Assume your company must deploy a .NET solution to the cloud. Discuss the options available to developers. Research on the web and estimate the costs associated with deploying a PaaS solution.

7. Assume your company must deploy a PHP or Java solution to the cloud. Discuss the options available to developers. Research on the web and estimate the costs associated with deploying a PaaS solution.

68

chapter 4

Infrastructure as a Service (IaaS) MANY COMPANIES THAT DEPLOY applications to the cloud will need a specific platform, such as Windows, .NET, and Microsoft SQL Server, or Linux, Perl, and MySQL. Utilizing a platform as a service (PaaS) solution eliminates the company’s need to administer the operating system and supporting software. Other companies, because of security needs or a desire to manage all resources, turn to infrastructure as a service (IaaS) providers. An IaaS provider makes all of the computing hardware resources available; the customers, in turn, are responsible for installing and managing the systems, which they can normally do over the Internet.

Learning Objectives

This chapter examines IaaS in detail. By the time you finish this chapter, you will be able to do the following:

• Define and describe IaaS and identify IaaS solution providers.

• Define and describe colocation.

• Define and describe system and storage redundancy.

• Define and describe cloud-based network-attached storage (NAS) devices and identify solution providers.

• Define and describe load balancing and identify cloud-based solution providers.

• Describe the pros and cons of IaaS solutions.

Understanding IaaS

Running a data center is an expensive and staff-intensive process. To start, one must create a facility with the following capabilities:

• Access to high-speed and redundant Internet service

• Sufficient air conditioning to eliminate the heat generated by servers and disk storage devices

69

• Conditioned power with the potential for uninterrupted power supply in the short term and long term through the use of on-site diesel-powered generators

• Fire suppression systems

• Administrative staffing to support hardware, networks, and operating systems

FIGURE 4-1 illustrates a typical data center facility.

After a company creates an operation data center, it has a second significant problem—the data center is a single point of failure. Should the data center be damaged by fire, flood, weather, or an act of terrorism, the company’s entire data processing capabilities will be shut down.

To reduce the risk of a single point of failure, companies often create a duplicate data center at a remote location, as shown in FIGURE 4-2. Should one of the data centers fail, the other can immediately take over operations. Unfortunately, the second data center will increase the company’s costs—essentially doubling them—because there are duplicate servers, storage devices, network equipment, Internet access, and staffing.

FIGURE 4-1 Racks of servers within a data center.

70

FIGURE 4-2 To eliminate a single point of failure, many companies colocate duplicate data centers.

For many smaller companies with simpler data processing needs, a PaaS may eliminate the need for their own data center. As you will recall, a PaaS solution typically provides one or more virtual servers running a specific operating system, as shown in FIGURE 4-3. Most PaaS solutions eliminate the customer’s need to manage the operating system and supporting software.

In contrast, larger companies or companies with specific server needs may require their own independent server hardware and data storage devices. For such situations, IaaS is ideal. An IaaS solution provides a customer with its own hardware resources. You can think of IaaS as a mini data center within a large data center facility. Most IaaS providers, as shown in FIGURE 4-4, house data centers for multiple

companies. Because the IaaS provider spreads the cost of power, air conditioning, fire suppression, and staff across multiple customers, it can normally offer pricing that beats what each individual company would have to pay for its own facility.

Further, just as with software as a service (SaaS) and PaaS solutions, customers pay IaaS providers only for the resources consumed. Simply put, IaaS solutions provide the least expensive (and fastest) way for companies to launch a data center or colocation facility.

71

FIGURE 4-3 PaaS solutions allow smaller companies to eliminate the need for their own on-site data center.

FIGURE 4-4 IaaS providers normally house data centers for many companies.

Improving Performance Through Load Balancing

Across the web, sites experience a wide range of network traffic requirements. Sites such as Google, Yahoo!, Amazon, and Microsoft experience millions of user hits per day. To handle such web requests, the sites use a technique known as load balancing, as shown in FIGURE 4-5, to share the requests across multiple servers. For a simple web page, a client’s web browser requests an HTML page and then the related graphics, CSS, and JavaScript files from the web server, as shown in FIGURE 4-6.

72

FIGURE 4-5 Load balancing uses a server to route traffic to multiple servers which, in turn, share the workload.

When the demand becomes too great for the server, the company can place a load-balancing server in front of two or more servers to which the load balancer distributes the web requests. Load balancing for simple applications is quite straightforward because either server can handle all requests.

When server-based applications become more complex, such as accessing data within a database, the developers must provide shared access to the database. To eliminate a single point of failure, companies often replicate copies of the database on multiple servers. The database software, in turn, must then synchronize data updates across the systems, as shown in FIGURE 4-7.

As an alternative, the company may choose to simplify the solution using a cloud-based database or a cloud-based network-attached storage (NAS) device, as shown in FIGURE 4-8. In this way, the applications do not need to worry about the data synchronization and replication—that task is handled within the cloud.

73

FIGURE 4-6 A client (browser) typically makes multiple requests to a server in order to download the HTML, CSS, JavaScript, and page graphics.

Taking a Closer Look at Load Balancing

To better understand load balancing, consider the processing that occurs when a user visits a site such as Yahoo! To start, the user types in a domain name, such as www.yahoo.com. The user’s web browser, in turn, sends the domain name to a special server on the web called a domain name server (DNS), which, in turn, returns the site’s (Yahoo!’s) Internet protocol (IP) address. As shown in FIGURE 4-9, the browser in then uses the IP address to contact the server.

74

FIGURE 4-7 Load-balanced systems, for data redundancy purposes, often replicate databases on multiple servers. Each database, in turn, will send data updates to the other to maintain data synchronization between the servers.

FIGURE 4-8 Using a cloud-based NAS device and a cloud-based database to handle database replication and load balancing.

When a site uses load balancing, the IP address returned by the DNS might correspond to the load-balancing server. When the load balancer receives the browser request, it simply sends the request to one of the servers on a round-robin basis. If demand on the site increases, additional servers can be added, to which the load balancer can distribute requests. Using a similar technique, most IaaS solutions provide on-demand scaling and load balancing.

75

FIGURE 4-9 Web browsers use the IP address they receive from a DNS to access a server on the web.

System and Storage Redundancy

One of the greatest benefits of cloud-based computing is that it does not matter where the physical computing resources and data storage devices are located. As a result, companies often employ duplicate off-site servers or disk storage devices through a process known as colocation. As shown in FIGURE 4-10, by employing duplicate resources, systems can fail over from one location to another or they can use the duplicate systems for load balancing.

In this way, the colocated resources accomplish the following:

• Makes the company less susceptible to fire, acts of God, and terrorism

• Improves performance through a distributed workload

• Makes the company less susceptible to downtime due to power loss from a blackout or brownout

Over the past few years, the low-cost options offered by IaaS providers have made hardware redundancy a must-have item for companies that rely on the availability of key applications and data. Likewise, by leveraging cloud-based NAS devices and cloud-based database systems, companies can also easily replicate their data, as shown in FIGURE 4-11.

IaaS providers allow companies to add servers, processors, and RAM to their applications on demand. FIGURE 4-12 shows an administrator window that allows an application administrator to select the resources the application needs—scaling resources up or down. Further, IaaS providers can also scale

76

resource allocation up or down automatically. Customers, in turn, pay only for the resources they require.

FIGURE 4-10 Companies use colocated computing resources for system failover or load balancing.

FIGURE 4-11 Using cloud-based NAS devices and cloud-based databases, companies can replicate key data within the cloud.

77

FIGURE 4-12 Using an administrator menu to allocate application resources.

CASE 4-1 RACKSPACE IAAS

Rackspace has emerged as one of the largest players in the IaaS market. Rackspace offers a set of solutions that include cloud hosting, managed hosting (including 24/7 data-centerlike management), and hybrid solutions that combine the cloud and managed services.

Within minutes, from the Rackspace website an administrator can select a solution that deploys from 1 to 50 servers. Larger configurations are available. Today Rackspace offers cloud-based solutions to hundreds of thousands of clients. Rackspace houses its data centers at very large facilities located around the world.

With respect to the cloud, Rackspace offers pay-as-you-go scalability, with on-demand storage and load balancing. Beyond cloud hosting, Rackspace provides solutions for cloud-based e-mail, Exchange hosting, file sharing, backups, and collaboration.

78

Rackspace storage on demand is provided through a service called Cloud Files, a high-performance file system that provides very inexpensive redundant storage. The Cloud Files system was developed using OpenStack, a new open source software initiative for building private and public clouds. The goal of OpenStack is to create a massively scalable cloud operating system to accomplish the following:

• Leverage open standards to produce an environment less susceptible to vendor lock in (a situation in which a customer cannot easily move from an existing vendor)

• Increase industry-wide cloud standards

• Provide a platform that leverages performance and flexibility

Exercise Assume your company is planning to release a new .NET-based website. The company’s developers estimate the application will require 10 servers to manage the workload. Visit the Rackspace website and recommend a solution for the company (you can use physical servers, virtual servers, or a combination of both). What start-up and monthly costs should your company expect?

Web Resources For additional information on Rackspace and OpenStack, see www.CloudBookContent.com/Chapter04/index.html.

Utilizing Cloud-Based NAS Devices

Chapter 6, Data Storage in the Cloud, examines cloud-based data storage and database systems in detail. The chapter also presents several solution providers. For now, you should understand that companies can move their data storage to the cloud in a number of ways. One of the most innovative disk storage solutions utilizes cloud-based NAS devices, which present devices and applications as mountable drives and file systems. Normally customers can scale their cloud-based storage on demand and pay only for the storage they consume.

79

FIGURE 4-13 Cloud-based NAS devices present cloud-based storage as mountable devices, which may be replicated in the cloud to meet a company’s data redundancy needs.

As shown in FIGURE 4-13, some cloud-based NAS devices provide behind-the-scenes data replication for data redundancy needs.

CASE 4-2 NIRVANIX IAAS

Nirvanix provides a wide range of cloud solutions, from public, private, and hybrid clouds to backup and off-site storage and CloudNAS, which is a cloud-based NAS solution. As shown in FIGURE 4-14, CloudNAS is a high-performance, scalable, secure, cloud-based file system that supports Linux- and Windows-based applications.

By supporting both the Common Internet File System (CIFS) and the Network File System (NFS), CloudNAS seamlessly integrates into existing applications. In general, CloudNAS does not require programming or the development of an application program interface (API).

Exercise Within the cloud, IaaS providers offer a variety of ways for users and applications to access storage. Discuss the importance of having a cloud-based mountable storage device.

Web Resources For additional information on Nirvanix and CloudNAS, see www.CloudBookContent.com/Chapter04/index.html.

80

FIGURE 4-14 The Nirvanix IaaS provides cloud-based NAS, which is accessible through the CloudNAS file system.

Advantages of IaaS Solutions

In the simplest sense, IaaS is the process of providing the hardware necessary to run an application. By utilizing IaaS solutions, companies eliminate the need to house and maintain expensive data centers. Unlike PaaS, which also manages and administers the operating system and support software, an IaaS solution requires the customer to manage all software and take responsibility for maintaining system updates. Advantages of using an IaaS solution include the following:

• Elimination of an expensive and staff-intensive data center

• Ease of hardware scalability

• Reduced hardware cost

• On-demand, pay-as-you-go scalability

• Reduction of IT staff

• Ad hoc test environments suitability

• Complete system administration and management

Server Types Within an IaaS Solution

81

Within an IaaS environment, customers can acquire one or more servers. As shown in FIGURE 4-15, these servers fall under one of three types:

• Physical server: Actual hardware is allocated for the customer’s dedicated use.

• Dedicated virtual server: The customer is allocated a virtual server, which runs on a physical server that may or may not have other virtual servers.

• Shared virtual server: The customer can access a virtual server on a device that may be shared with other customers.

An IaaS physical server solution allocates one or more physical servers to the customer. The servers will not be shared with other customers. The physical server, because it is not shared by others, will be more expensive. However, the customer will have complete control over the system.

A dedicated virtual server solution allocates to a customer one or more virtual servers, which, as discussed in Chapter 8, Virtualization, runs on a server that has special software installed to allow it to run multiple operating systems (which do not have to be the same). Each operating system is protected from others on the server and often can be configured by the customer. The virtual server is used by only one customer, which, again, will result in a slightly higher cost per month.

82

FIGURE 4-15 Within an IaaS environment, customers can allocate various server types.

A shared virtual server solution allocates a shared virtual server to a customer. The server may, for example, provide web server capabilities to multiple users. The customer cannot configure the shared virtual server.

CASE 4-3 LAYERED TECH IAAS

Layered Tech supports grid, virtualization, and cloud computing platforms. With Layered Tech solutions customers can quickly launch cloud-based applications, satisfy backup and remote storage requirements, or utilize high-security, high-availability servers.

Layered Tech provides traditional cloud-based services, such as dedicated servers, virtual servers, and managed server solutions. In addition, Layered Tech provides large-scale enterprise solutions, such as hosting, colocation, and virtualization.

If a client performs e-commerce operations, Layered Tech provides a Payment Card Industry (PCI)-compliant hosting system. By examining the PCI Data Security Standard (DSS), you can gain considerable insight into cloud-based security issues. For more information on the PCI DSS, visit the PCI Security Standards Council website at www.pcisecuritystandards.org.

Exercise Many cloud-based sites implement e-commerce operations. Discuss the purpose of and some of the standards involved in the PCI standards.

Web Resources For additional information on Layer Tech and PCI standards, see www.CloudBookContent.com/Chapter04/index.html.

CHAPTER SUMMARY

Smaller companies that deploy applications to the cloud typically use a specific platform, such as Windows, .NET, and Microsoft SQL, or Linux, Perl, and MySQL. Companies that use a PaaS solution eliminate the need to administer the operating system and supporting software. Larger companies, because of security needs or a desire to manage all resources, turn to IaaS providers, which make all of the computing hardware resources available but leave the customer responsible for installing and managing the systems. This can normally be done over the Internet. You can think of an IaaS solution as a turnkey remote data center.

83

KEY TERMS

CloudNAS

Colocation

Common Internet File System (CIFS)

Load balancing

Network-attached storage (NAS)

Network File System (NFS)

Redundancy

CHAPTER REVIEW

1. Define and describe IaaS.

2. Define and describe system redundancy. Discuss how you might use IaaS to implement a redundancy plan.

3. Define and describe load balancing. Discuss how you might use IaaS to implement load balancing.

4. Define and describe NAS. Assume you must implement a shared file system within the cloud. What company would you select? Why? What costs should your client expect to pay for cloud-based data on a gigabyte (GB) basis?

5. Define and describe colocation. Discuss how you might use IaaS to implement colocation.

6. Compare and contrast a cloud-based disk storage device (with a file system) with a cloud-based database.

7. Compare and contrast physical, dedicated virtual, and shared virtual servers. Search the web for companies that provide each. What cost should a customer expect to pay for each?

84

chapter 5

Identity as a Service (IDaaS) TODAY, WITHIN MOST COMPANIES, users must log in to a variety of different systems in order to perform various tasks. Some of the systems may be cloud based, some may be based on local servers, and some may be accessible through different devices. The challenge of having multiple servers to access is that users must remember and manage multiple username and password combinations. Further, if an employee leaves the company, the IT staff must coordinate with the human resources department to ensure that each of the user’s accounts has been disabled. User identity management (ID management) is difficult, time consuming, and expensive. Over the past few years, companies have begun to emerge to provide identity (or identification) as a service (IDaaS), or cloud-based ID management.

Learning Objectives

This chapter examines cloud-based ID management in detail. By the time you finish this chapter, you will be able to do the following:

• Describe challenges related to ID management.

• Describe and discuss single sign-on (SSO) capabilities.

• List the advantages of IDaaS solutions.

• Discuss IDaaS solutions offered by various companies.

Understanding Single Sign-On (SSO)

As discussed, business users today must log in to a variety of applications, which may reside on many different servers. The users, therefore, must manage numerous username and password combinations. To simplify user access to multiple systems, many companies now use single sign-on (SSO) software, which, as shown in FIGURE 5-1, requires the user to sign on only one time. Behind the scenes, the SSO software manages the user’s access to other systems.

The advantages of SSO software include the following:

85

• Fewer username and password combinations for users to remember and manage

• Less password fatigue caused by the stress of managing multiple passwords

• Less user time consumed by having to log in to individual systems

• Fewer calls to help desks for forgotten passwords

• A centralized location for IT staff to manage password compliance and reporting

The primary disadvantage of SSO systems is the potential for a single source of failure. If the authentication server fails, users will not be able to log in to other servers. Thus, having a cloud-based authentication server with system redundancy reduces the risk of system unavailability.

Understanding How SSO Works

Although different implementations of SSO exist, many solutions employ a secure ticket. When a user logs in to the authentication server, he or she is given a secure ticket. Later, when the user accesses a server, that server, in turn, validates the ticket with the authentication server. The authentication server, as shown in FIGURE 5-2, not only confirms that the user is authorized to use the server, but may also provide the user’s access rights that are specific to that server.

FIGURE 5-1 An SSO system lets a user log in to a system one time and then move freely among related servers and applications without having to authenticate him- or herself each time.

86

Step 1: User logs into the authentication server using a username and password

Step 2: The authentication server returns the user’s ticket

Step 3: User sends the ticket to the intranet server

Step 4: Intranet server sends the ticket to the authentication server

Step 5: Authentication server sends the user’s security credentials for that server back to the intranet server

FIGURE 5-2 SSO systems often assign authenticated users a ticket, which the software presents behind the scenes to the servers that the user accesses. Each server can use the ticket to determine the user’s access rights on that particular server.

If an employee leaves the company, the IT staff need only disable the user at the authentication server in order to disable the user’s access to all systems.

Understanding Federated Identity Management

As you examine SSO solutions, you may encounter the term federated identity management (FIDM). In short, FIDM describes the technologies and protocols that combine to enable a user to bring security credentials across different security domains (different servers running potentially different operating systems). Behind the scenes, many FIDM systems use the Security Assertion Markup Language (SAML) to package a user’s security credentials, as shown in FIGURE 5-3. For specifics on SAML, visit the SAML website at www.saml.xml.org.

87

FIGURE 5-3 SAML allows software to package user security credentials.

Understanding Account Provisioning

In many companies, when an employee is hired the human resources department sends an e-mail to the IT staff, who creates a user account for the employee. Sometime during the employee’s first week, his or her manager will decide that the employee needs to access other systems. The manager will send additional e-mails to the IT staff requesting various account access. The process of creating a user account on a system is called account provisioning. As you might guess, because different employees may need different capabilities on each system, the provisioning process can be complex.

When an employee leaves the company, a deprovisioning process must occur to remove the user’s accounts. Unfortunately, the IT staff is not always immediately informed that an employee no longer works for the company, or the IT staff misses a server account and the user may still have access to one or more systems.

CASE 5-1 PING IDENTITY IDAAS

Ping Identity provides cloud-based ID management software that supports FIDM and user account provisioning. The company’s website provides an excellent article called “The 4 A’s of Cloud Identity,” which are as follows:

• Authentication: The process of determining and validating a user for on-site as well as cloud-based solutions.

• Authorization: The process of determining and specifying what the user is allowed to do on each server.

88

• Account management: The process of synchronizing user accounts by provisioning and deprovisioning access.

• Audit logging: The process of tracking which applications users access and when. To perform its ID management, Ping Identity makes extensive use of SAML.

Exercise Discuss the importance of the audit logging process within an IDaaS solution.

Web Resources For additional information on Ping Identity and SAML, see www.CloudBookContent.com/Chapter05/index.html.

CASE 5-2 PASSWORDBANK IDAAS

PasswordBank provides an IDaaS solution that supports on-site and cloud-based system access. Its FIDM service supports enterprise-wide SSO (E-SSO) and SSO for web-based applications (WebSSO). The PasswordBank solutions perform the FIDM without the use of SAML. PasswordBank solutions support a myriad of devices, including the iPhone.

Exercise Within the cloud, some IDaaS providers use SAML to package a user’s security credentials, and some do not. Discuss the arguments for and against using SAML.

Web Resources For additional information on PasswordBank, see www.CloudBookContent.com/Chapter05/index.html.

Understanding OpenID

For companies to support FIDM across autonomous systems, the security policies and protocols must be open. OpenID allows users to use an existing account to log in to multiple websites. Today, more than 1 billion OpenID accounts exist and are accepted by thousands of websites. Companies that support OpenID include Google, Yahoo!, Flickr, Myspace, WordPress.com, and more. For companies, the advantages of using OpenID include the following:

• Increased site conversion rates (rates at which customers choose to join websites) because users do not need to register

• Access to greater user profile content

89

• Fewer problems with lost passwords

• Ease of content integration into social networking sites

FIGURE 5-4 From the OpenID website, you can create your own OpenID username and password, which you can then use to access thousands of websites.

For more information on OpenID, or to get your own OpenID username and password, visit the OpenID website at www.openid.net, as shown in FIGURE 5-4.

Mobile ID Management

Every day employees access e-mail and other business applications through handheld devices. More and more business applications support mobile device interfaces. The challenge for developers today is not only getting content to the mobile device, but also securing the device. Threats to mobile devices include the following:

CASE 5-3 SYMPLIFIED IDAAS

Symplified provides ID management solutions for on-site and cloud-based applications. The solutions support a variety of device types, such as mobile devices. Symplified solutions support SAML and non-SAML-based applications,

90

which significantly extends the company’s product reach. Symplified’s key products include:

• Symplified Access Manager: This compliance tool provides on-demand web access management for access control and audit of software as a service (SaaS), private cloud, and public cloud applications.

• Symplified Identity Manager: This account management tool provides user account support for on-site and SaaS solutions.

• SinglePoint: This platform as a service (PaaS) solution provides a cloud-based platform for deploying ID management, with the following capabilities:

• Access control

• Authentication

• Auditing

• Federation

• Provisioning and user management

• Support for portals

Exercise Symplified provides IDaaS solutions for on-site and cloud operations. Discuss the additional requirements and challenges of implementing a solution for cloud-based applications over on-ground applications.

Web Resources For additional information on Symplified and the company’s IDaaS solutions, see www.CloudBookContent.com/Chapter05/index.html.

• Identity theft if a device is lost or stolen

• Eavesdropping on data communications

• Surveillance of confidential screen content

• Phishing of content from rogue sites

• Man-in-the-middle attacks through intercepted signals

• Inadequate device resources to provide a strong security implementation

• Social attacks on unaware users that yield identity information

CHAPTER SUMMARY

91

To accomplish a wide range of tasks, users must often log in to a variety of different systems. Today some of the systems may be cloud based and some may reside on local servers. Further, users often access servers (and their services) through different devices. Requiring users to access multiple servers means that users must often remember and manage multiple username and password combinations. To reduce this burden on users as well as the IT staff who must help retrieve forgotten passwords, many companies now use a technique called SSO. Users log in to a central authorization server that, in turn, uses a ticket that grants users access to other specific servers without requiring them to log in again. In this way, users must remember only one username and password.

If an employee leaves the company, the IT staff need only disable the user’s account on the centralized authorization server in order to shut down the user’s access to all other servers.

User ID management is difficult, time consuming, and expensive. To address the challenges and cost of user management, many companies are turning to IDaaS solutions that reside in the cloud.

KEY TERMS

Federated identity management (FIDM)

Identity (or identification) as a service (IDaaS)

Provisioning

Security Assertion Markup Language (SAML)

Single sign-on (SSO)

CHAPTER REVIEW

1. Define and describe SSO.

2. Define and describe IDaaS.

3. Define SAML and describe its purpose.

4. Define and describe provisioning.

5. Define and describe FIDM.

6. List factors that make mobile ID management difficult.

92

93

chapter 6

Data Storage in the Cloud CHAPTER 4, “INFRASTRUCTURE AS a Service (IaaS),” examined the process of using a service provider’s servers and data storage equipment. Within the IaaS model, the customer is responsible for installing and maintaining the software that runs on the platform. Chapter 4 introduced the use of cloud-based data storage and databases.

Learning Objectives

This chapter will examine cloud-based storage in detail. By the time you finish this chapter, you will be able to do the following:

• Discuss the role of storage-area networks.

• Discuss the role of network-attached storage.

• Describe cloud-based storage solutions.

• List the pros and cons of cloud-based storage.

• Describe cloud-based database solutions.

• List the pros and cons of cloud-based databases.

• Describe specific cloud-based data storage solutions such as backups and encrypted file storage.

• Provide an example of an industry-specific cloud-based storage solution.

Examining the Evolution of Network Storage

Years ago, local-area networks used special servers, called file servers, to support file sharing, file replication, and storage for large files. As shown in FIGURE 6-1, the file server was a server on the network with large disk capacity that users could use to store and retrieve files. Over time, operating systems, specifically the file system within the operating system, evolved to allow users and applications to open files directly on the file server.

94

FIGURE 6-1 Local-area networks had one or more file servers that users could access across the network to store and retrieve files.

As computer networks evolved, the file server was extended through the use of storage-area networks (SANs), which, as shown in FIGURE 6-2, could make one or more storage devices appear to be directly connected to the network. Behind the scenes, the devices were actually connected to SAN hardware through the use of network cables. Software running within the SAN device made the devices appear directly accessible to the rest of the network.

As storage demands continued to increase—as did disk storage capacities—network-attached storage (NAS) devices emerged, which, as shown in FIGURE 6-3, plug directly into the network.

The advantages of SANs include the following:

• Reliability: A NAS device typically provides advanced data striping across multiple volumes within the device. If one (or more) volumes fail, the data striping would maintain the data and allow reconstruction of the file contents.

• Performance: Because a NAS device does not run a complete operating system, the hardware has less system overhead, which allows it to outperform a file server.

FIGURE 6-2 SANs allowed administrators to connect various storage devices to a computer network.

95

FIGURE 6-3 NAS devices are disk volumes that plug directly into the network.

• Compatibility: NAS devices normally support common file systems, which, in turn, make them fully compatible with common operating systems.

• Ease of performing backups: NAS devices are commonly used for backup devices. Within a home, for example, all devices can easily access and back up files to a NAS device.

Understanding Cloud-Based Data Storage

Cloud-based data storage is the next step in the evolution of NAS devices. Across the web (the cloud), many providers offer data storage that resides in the cloud. Depending on your access needs, the data may be accessible as follows:

• Through a web browser interface that lets you move files to and from the storage area using a variety of devices

CASE 6-1 HOMEPIPE REMOTE FILE ACCESS

Many users now rely on cloud-based storage to provide them with access to files from anywhere at any time, often with any device. Despite that, users still encounter situations when the file they need resides on a computer at their home or office—often because they made a last-minute change and forgot to upload the file to the cloud. That’s where HomePipe comes to rescue. HomePipe is a program that lets users access files on their own system from anywhere on the web. Further, HomePipe supports file access from a variety of devices. And beyond that, HomePipe makes it easy for you to share specific files with other users. FIGURE 6-4 illustrates the use of HomePipe to access files on a remote system using a web browser.

Exercise Compare and contrast the use of HomePipe with that of a tool such as GoToMyPC.

96

Web Resources For more information on HomePipe, see www.CloudBookContent.com/Chapter06/index.html.

FIGURE 6-4 Using HomePipe to access files from a system across the Internet.

• Through a mounted disk drive that appears locally to your computer as a disk drive letter or mounted file system

• For application developers, the storage area may present itself through a set of application program interface (API) calls

CASE 6-2 ZUMODRIVE CLOUD-BASED STORAGE

ZumoDrive provides cloud-based storage that is scalable to meet customer needs. The company lets a customer get started at no charge and provides sufficient space to store a considerable number of documents. The files that are stored on ZumoDrive are accessible from a variety of devices. From their own PC, customers can use the web interface shown in FIGURE 6-5 to move files to or from ZumoDrive.

In addition, you can map a drive letter to your ZumoDrive storage and the access your cloud-based files as you would files from your local system. FIGURE 6-6 shows ZumoDrive as drive Z within Windows Internet Explorer.

97

Exercise Discuss why a user may need access to cloud-based storage from a variety of device types.

Web Resources For more information on ZumoDrive, see www.CloudBookContent.com/Chapter06/index.html.

FIGURE 6-5 ZumoDrive provides a web interface that lets users easily move files to or from their ZumoDrive storage from any device.

98

FIGURE 6-6 ZumoDrive lets users map a logical drive letter to their cloud-based storage area.

Advantages and Disadvantages of Cloud-Based Data Storage

Cloud-based data storage provides the following advantages:

• Scalability: Most cloud-based data storage providers let you scale your storage capacity (up or down) to align with your storage needs.

• Pay for use: With most cloud-based data storage facilities, users pay only for the storage (within a range) that they need.

• Reliability: Many cloud-based data storage facilities provide transparent data replication.

• Ease of access: Most cloud-based data storage facilities support web-based access to files from any place, at any time, using a variety of devices.

• Ease of use: Many cloud-based data storage solutions let users map a drive letter to the remote file storage area and then access the files through the use of a logical drive.

Disadvantages of cloud-based storage include the following:

• Performance: Because the cloud-based disk storage devices are accessed over the Internet, they will never be as fast as local drives.

• Security: Some users will never feel comfortable with their data in the cloud.

• Data orphans: Users may abandon data in cloud storage facilities, leaving confidential private or company data at risk.

CASE 6-3 DROPBOX CLOUD-BASED FILE SHARING AND SYNCHRONIZATION

Most users today manage their content on a variety of devices. Dropbox is a cloud-based storage facility for photos, documents, and other digital content. After you download and install Dropbox, your system will have a user-level Dropbox folder, as shown in FIGURE 6-7.

When you place a file into the Dropbox folder (either by cutting and pasting, dragging and dropping, or saving), a copy of the file is automatically saved to the Dropbox cloud storage facility. If you later need to access the file from another computer, you can simply log in to your Dropbox account on the web, and, as shown in FIGURE 6-8, your files will be accessible through your browser.

99

Dropbox also makes it very easy for users to share files. If, for example, you place a file within the Dropbox Public folder, you can then send a link to other users, which they can use to access the file. Dropbox supports a variety of devices. Also, Dropbox lets users try the software free of charge and provides them with ample storage space to get started.

Exercise Discuss the benefits of having web-based access to a cloud storage area.

Web Resources For more information on Dropbox, see www.CloudBookContent.com/Chapter06/index.html.

FIGURE 6-7 Users can easily drag and drop files to the Dropbox file folder structure.

100

FIGURE 6-8 Dropbox users can access their files through the web, from any device.

CASE 6-4 MICROSOFT SKYDRIVE

Cloud-based data storage systems allow users to access their documents from any place at any time. Given Microsoft’s presence within software as a service (SaaS) and platform as a service (PaaS) solutions, you might expect them to have a significant presence within cloud-based storage—and you would be right. Microsoft SkyDrive provides cloud-based data storage. Through the SkyDrive web interface, you can drag and drop files to and from the cloud, as shown in FIGURE 6-9.

What makes SkyDrive special is that if the PC from which you are accessing the files does not have Microsoft Office installed, SkyDrive lets you launch Word, Excel, and PowerPoint documents within Microsoft Office Web Apps, as shown FIGURE 6-10.

101

Exercise Discuss the need for a company to have a policy covering the types of documents employees can store within the cloud.

Web Resources For more information on SkyDrive, see www.CloudBookContent.com/Chapter06/index.html.

FIGURE 6-9 Using the SkyDrive web interface to access cloud-based files.

102

FIGURE 6-10 Using Microsoft Office Web Apps to access cloud-based documents within SkyDrive.

CASE 6-5 MOUNTING CLOUD DEVICES USING GLADINET

As you have learned, most cloud-based data storage facilities provide a drag-and-drop user interface that you can use to move files to and from the cloud. Some cloud storage systems also let you access your files using a logical disk drive letter, treating the cloud-based files as if they reside on a disk drive that is local to your system.

Gladinet provides software you can use to mount many cloud-based data storage services as a drive letter. FIGURE 6-11, for example, shows Microsoft SkyDrive mounted using a drive letter. In this way, you can access the SkyDrive-based files just as you would any files on your system.

Exercise Discuss what it means to mount a storage device and the importance of being able to do so.

103

Web Resources For more information on Gladinet, see www.CloudBookContent.com/Chapter06/index.html.

FIGURE 6-11 Mounting a SkyDrive file system using Gladinet.

Getting Past the Fear of Cloud-Based Data

As discussed, one of the disadvantages of cloud-based data storage is that some users simply do not feel comfortable placing their data within the cloud. One approach to such user apprehension is to encrypt the files that you place on the cloud. Several companies offer software that will encrypt and decrypt files on the fly, as they are sent to and retrieved from the cloud.

CASE 6-6 BOXCRYPTOR CLOUD-BASED FILE ENCRYPTION

BoxCryptor is a software tool that encrypts and decrypts cloud-based files on a file-by-file basis. When you install BoxCryptor, the installation process will create a folder within your cloud-based folder on your system and will map a drive letter to that folder. When you use the drive letter to store a file, BoxCryptor will encrypt the file and place the encrypted contents on the cloud. When you later retrieve the file, BoxCryptor will decrypt the file on the fly. If a hacker gains access to your cloud storage, the encrypted file’s contents will be unusable, as shown in FIGURE 6-12.

Exercise Discuss your level of confidence that files residing in the cloud are secure.

104

Web Resources For more information on BoxCryptor, see www.CloudBookContent.com/Chapter06/index.html.

105

FIGURE 6-12 Encrypted BoxCryptor files within the cloud.

CASE 6-7 MOZY CLOUD-BASED BACKUPS

Mozy provides cloud-based backups for personal and business users. Mozy provides an encrypted backup and runs without the need for user intervention on Windows- and Mac-based systems. Mozy has existed as a company since 2005 and has millions of customers worldwide. FIGURE 6-13 shows a Mozy screen with which you select files for your backup set.

Exercise Discuss the pros and cons of cloud-based file backups.

Web Resources For more information on Mozy, see www.CloudBookContent.com/Chapter06/index.html.

FIGURE 6-13 Selecting files for backup within Mozy.

Cloud-Based Backup Systems

In Chapter 2, Software as a Service (SaaS), you examined the Carbonite cloud-based backup software. Several companies provide cloud-based backup capabilities. The features that most companies provide are similar:

• Files are backed up in an encrypted format.

106

• Users can schedule when backup operations are to occur.

• Users can easily retrieve backup files from the cloud.

• Most systems support Windows, Linux, and Mac OS.

Understanding File Systems

Operating systems exist to allow users to run programs and to store and retrieve data (files) from one user session to the next. Within the operating system, special software, called the file system, oversees the storage and retrieval of files to and from a disk. When you copy a file, delete a file, or create and move files between folders, the file system is performing the work.

Initially, file systems allowed users to manipulate only local files that reside on one of the PC’s disk drives. As networks became more prevalent, so too did network operating systems, which allow users and programs to manipulate files residing on a device across the network. A cloud file system (CFS) allows users or applications to directly manipulate files that reside on the cloud.

CASE 6-8 ORACLE CLOUD FILE SYSTEM

Oracle is one of the world’s leading database solution providers. Oracle has on-site and cloud-based database solutions. In addition, Oracle offers a cloud-based file system that users can use to store and retrieve files that will reside outside of the database. As shown in FIGURE 6-14, the Oracle Cloud File System resides above cloud-based storage devices and supports Windows- and Linux-based applications.

The advantages of Oracle’s Cloud File System include the following:

FIGURE 6-14 Oracle provides a cloud-based file system that is accessible by Windows and Linux.

107

• Snapshot-based file recovery: Files can be recovered to a specific data snapshot that allows simpler fallback.

• File group by tagging: Users can associate one or more files via a tag name grouping for subsequent group-based file operations, such as replication.

• File replication: Key files can be replicated across multiple volumes.

• Access-control-based security: Administrators can finely control access to specific files via access control lists.

• Encryption: The Oracle Cloud File System supports file-by-file, directory, or file system encryption.

Exercise Explain the process of snapshots and how it may be important to an application developer.

Web Resources For more information on the Oracle Cloud File System, see www.CloudBookContent.com/Chapter06/index.html.

CASE 6-9 APACHE HADOOP DISTRIBUTED FILE SYSTEM

Apache Hadoop is an open source project, the goal of which is to support reliable, scalable distributed computing. Part of the project includes the Hadoop Distributed File System (HDFS), a Java-based file system that is well suited for cloud-based storage. HDFS is designed to be highly fault tolerant and robust to maintain operation in the event of a device failure. For specifics on HDFS, visit http://hadoop.apache.org/hdfs.

Exercise Discuss the features of Hadoop that make it well suited for a cloud-based file system.

Web Resources For more information on the Hadoop system, see www.CloudBookContent.com/Chapter06/index.html.

Today several cloud file systems are emerging that allow users and programs to manipulate files residing in the cloud.

Industry-Specific Cloud-Based Data Storage

108

Across different industries, groups have different data storage and access requirements. The healthcare industry, for example, is working to standardize secure electronic medical records, which, as shown in FIGURE 6-15, will be accessible from the cloud by a variety of medical facilities.

FIGURE 6-15 In the future, healthcare data will be accessible in real time to a wide range of medical facilities, some on-ground and some mobile.

CASE 6-10 MICROSOFT HEALTHVAULT

Microsoft HealthVault provides a secure storage facility within which people can store their medical records, prescriptions, and even measurements from a variety of medical devices. People can use Microsoft HealthVault to track their own medical records or those of family members for whom they assist with medical care. After you store records within Microsoft HealthVault, you can e-mail a link to a physician, other healthcare personnel, or a family member to grant access to all or specific records. You can also set an expiration date that removes an individual’s access. FIGURE 6-16 shows the Microsoft HealthVault home page.

Exercise Discuss potential risks of placing your health data within the cloud.

Web Resources For more information on HealthVault, see www.CloudBookContent.com/Chapter06/index.html.

109

FIGURE 6-16 Microsoft HealthVault lets users store medical records within the cloud.

Cloud-Based Database Solutions

Many PaaS solutions include support for a database, such as Microsoft SQL Server or MySQL. Often these database solutions connect to a cloud-based server, as shown in FIGURE 6-17, and, as such, can be considered a cloud-based database.

A better definition of a cloud-based database, however, is a database that can be used not only by applications that reside (are hosted) in the cloud, but also by applications that reside within the customer’s on-site data center, as shown in FIGURE 6-18.

110

FIGURE 6-17 A cloud-based database provided with a PaaS solution.

Advantages of cloud-based database solutions include the following:

• Cost-effective database scalability: Cloud-based databases can scale dynamically to meet customer needs on a pay-as-you-go basis.

• High availability: Cloud-based database systems normally reside on redundant hardware, which results in high system uptime.

• High data redundancy: Cloud-based databases are normally replicated behind the scenes to increase data availability.

• Reduced administration: The cloud-based database provider maintains the database version updates and patches.

111

FIGURE 6-18 A cloud-based database should be accessible by systems across the web.

The disadvantages of cloud-based databases include the following:

• Data security concerns: Some users still do not feel comfortable storing a database system in the cloud.

• Performance: Because data queries may travel the Internet, the cloud-based database access will not be as fast as a local database solution.

CASE 6-11 MICROSOFT SQL AZURE

Microsoft SQL Azure is a cloud-based database solution that supports not only Windows Azure PaaS, but, as shown in FIGURE 6-19, on-site applications as well. As you would expect, SQL Azure provides scalability, database replication, load balancing, and automatic server failover.

Exercise Discuss the steps a developer must perform to connect to an SQL Azure database.

Web Resources For more information on SQL Azure, see www.CloudBookContent.com/Chapter06/index.html.

112

FIGURE 6-19 SQL Azure is a cloud-based database that supports local (PaaS server-based access) and remote application access.

CASE 6-12 AMAZON CLOUD-BASED DATABASE SOLUTIONS

As discussed in Chapter 1, Introducing Cloud Computing, Amazon is one of the leading providers of cloud-based hosting solutions. To meet developer demands for cloud-based database storage solutions, Amazon provides two key solutions:

• Amazon Relational Database Service (Amazon RDS): A web service that makes available the capabilities of MySQL and Oracle through API web service calls

• Amazon SimpleDB: A scalable, nonrelational data store in which developers can quickly store and query data items using API-driven web service calls

Exercise Discuss reasons why Amazon chose to support MySQL and Oracle databases.

Web Resources For more information on the Amazon database solutions, see www.CloudBookContent.com/Chapter06/index.html.

DATABASE.COM CLOUD-BASED DATABASE

113

Database.com provides applications with access to a cloud-based database through a library of API calls. All access to the underlying database is via developer-written code. Database.com does not provide a user interface to the database—instead, its focus is on the database itself:

• Administration: Database.com administers all aspects of the database.

• Performance tuning: Database.com monitors and manages the overall database performance.

• Scalability: Database.com can scale a solution up or down dynamically to meet user demands.

• Backups: Database.com manages data backups and redundancy.

• Disaster recovery: Database.com provides redundant hardware and storage to reduce the risk of a disaster.

Developers create applications that call the Database.com API using a variety of programming languages, including C#, Java, Perl, PHP, Ruby, and more.

Exercise Discuss the pros and cons of restricting database access to developers using an API.

Web Resources For more information on Database.com, see www.CloudBookContent.com/Chapter06/index.html.

Cloud-Based Block Storage

In the simplest sense, a block of data storage is a fixed-sized sequence of bits. The size of the block normally corresponds to an underlying unit of storage on the cloud-based block storage device. Some applications work with very large blocks of data, the format of which has meaning only to the application itself—meaning that the data may not map well to storage within a file system or database. To support applications with large data block needs, Amazon provides the Amazon Elastic Block Store (EBS), a highly reliable, scalable, and available block storage solution. EBS supports block sizes up to a terabyte.

The data within the EBS is simply a collection of bits. To manage the block data in a meaningful way, developers may need to create their own file system. In this way, the applications that use the cloud-based block storage are in complete control of the data contents.

CLOUD DATA MANAGEMENT INTERFACE (CDMI)

114

The Storage Networking Industry Association (SNIA) is a not-for-profit association consisting of members from hundreds of companies that share the goal of standardizing data storage solutions. SNIA is working on the Cloud Data Management Interface (CDMI), which defines the behind-the-scenes functional interface that applications will use to create, retrieve, update, and delete cloud-based data items.

A goal of CDMI is that cloud-based storage facilities be discoverable to applications. This means that applications can query the facility for the data services it provides. In addition, CDMI is setting the stage for metadata assignment to data items that will be key to the development of Web 3.0 semantic capabilities.

Exercise Discuss the role of metadata within cloud-based data storage.

Web Resources For more information on the CDMI, see www.CloudBookContent.com/Chapter06/index.html.

CHAPTER SUMMARY

Within PaaS and IaaS solutions, customers often take advantage of provider-based disk storage solutions. In some cases, users don’t need cloud-based processing capabilities, but rather scalable and replicated data storage solutions. In such cases, users and applications can access cloud-based data storage and cloud-based database systems. In some cases local (on-site) applications may access the cloud-based storage, and in other cases the applications may also reside in the cloud. This chapter examined a variety of cloud-based data storage solutions. As you learned, many of the data storage providers include a web-based user interface that lets users access files anywhere at any time, often with any device. Further, some systems allow users to mount the remote storage area using a logical disk drive to which they can refer as they would any local disk drive letter.

KEY TERMS

Cloud-based block storage device

Cloud Data Management Interface (CDMI)

Cloud file system (CFS)

File system

Storage-area network (SAN)

115

CHAPTER REVIEW

1. Define and describe a SAN.

2. Define and describe NAS.

3. Describe how cloud-based data storage works.

4. Assume that you must select a cloud-based data storage solution for your company. List the factors you would consider when selecting a vendor.

5. Many users do not yet feel comfortable storing data within the cloud. Discuss some steps you can take to reduce their concerns.

6. Assume that you must select a cloud-based data storage solution for your company. List the factors you would consider when selecting a vendor.

7. List the pros and cons of cloud-based data storage.

8. List the pros and cons of a cloud-based database.

116

chapter 7

Collaboration in the Cloud IT WASN’T ALWAYS A good thing when people at a meeting were said to have their heads in the clouds. Today, however, cloud-based meetings and cloud-based collaboration tools are some of the information technology industry’s hottest items. What began as web-based e-mail has exploded to include cloud-based conference meetings, face-to-face voice over Internet protocol phone calls on virtually any device, document sharing, and streaming media content.

Learning Objectives

This chapter examines cloud-based collaboration in detail. By the time you finish this chapter, you will be able to do the following:

• Define and describe collaboration.

• Define and describe cloud-based collaboration.

• List the benefits of cloud-based collaboration.

• List and describe cloud-based tools for document sharing.

• List questions that one should consider with respect to cloud-based collaboration tools.

• Discuss the potential uses of cloud-based streaming media, from presentations to TV.

Collaborating in the Clouds

In the simplest sense, collaboration is the process of two or more people working together to achieve a result (a goal). For years, teams would meet in conference rooms to collaborate. Depending on the scope and importance of the project, some team members would fly in for face-to-face meetings. Those team members who could not attend would call in to the speakerphone, which was strategically placed at the center of the conference table.

117

FIGURE 7-1 The cloud provides team members with a variety of tools with which they can collaborate.

With the advent of the cloud has come a vast collection of distributed or remote collaboration tools, as shown in FIGURE 7-1.

Questions to Ask About Collaborative Tools

Regardless of the collaborative technology you are considering, there is a common set of questions you should consider:

Can the solution scale to meet the organization’s future needs?

• Is the solution secure?

• What are the solution’s start-up and operational costs?

• How will the solution impact the company’s IT staffing and resource requirements?

• What are the solution’s learning curve and training requirements?

118

FIGURE 7-2 Most web-based applications today, such as Google Gmail, support computer-based and handheld devices.

Web-Based Collaboration Began with Web Mail

One of the first tools for collaboration on the web (it wasn’t always known as the cloud) was web mail. Using only a web browser, users could access their e-mail from any computer at any time. Today web mail has evolved to support access from a wide range of devices. FIGURE 7-2a and FIGURE 7-2b, for example, show Google Gmail from within a computer and an iPhone.

CASE 7-1 MICROSOFT EXCHANGE ONLINE

Many companies today use Microsoft Exchange to meet their e-mail and calendar-management needs. Microsoft Exchange Online moves Exchange from the data center into the cloud. The advantages of Microsoft Exchange Online include the following:

• Users can access their e-mail and calendar-management tools from any place, at any time, with any device.

• Microsoft manages the Exchange Online software, keeping software versions and patches up to date.

• Companies maintain full control over user e-mail settings.

• Users have virtually unlimited e-mail storage, eliminating the need to move messages to an archive folder.

119

Exercise Discuss pros and cons of a company hosting its Exchange server within the cloud.

Web Resources For more information on Microsoft Exchange Online, see www.CloudBookContent.com/Chapter07/index.html.

Instant Messaging Isn’t What It Used to Be

For years, users took advantage of instant messaging (IM) to send a short message to another user outside of e-mail or to have a text-based real-time chat. There is no cost for IM, and the user with whom one was chatting could reside in the next cubicle or across the globe. Today many companies still rely on IM to provide text-based technical support. FIGURE 7-3 shows a text-based chat within Windows Live Messenger.

Over time, IM tools have expanded to support file sharing and even face-to-face video. FIGURE 7-4 shows a video-based IM session.

120

FIGURE 7-3 The IM text-based interaction provided one of the web’s early forms of collaboration.

FIGURE 7-4 IM tools have grown from a text-based medium for message exchange to support audio and video streaming.

CASE 7-2 SKYPE VOICE OVER INTERNET PROTOCOL (VOIP ) MESSAGING

It used to be that users around the globe could have text-based chats in real time using IM. Skype changed the computer communications playing field when it used voice over Internet protocol (VoIP) to let users place phone calls over the web. Using Skype, computer users can make face-to-face calls, as shown in FIGURE 7-5.

Skype then enhanced its services to allow users to make calls from a computer to a traditional phone or mobile phone. In fact, using Skype, mobile users can call each other to talk face to face. Further, as shown in FIGURE 7-6, Skype has expanded its services to support group-based conference calling.

Exercise Discuss advantages and disadvantages to using VoIP to drive a company’s phone system.

Web Resources For more information on Skype, see www.CloudBookContent.com/Chapter07/index.html.

121

FIGURE 7-5 Skype leverages VoIP to allow users to place face-to-face or audio-only calls over the Internet.

FIGURE 7-6 Using Skype to place VoIP-based conference calls.

Cloud-Based Phone and Fax Systems

Although faxing is becoming (or has become) an ancient technology, businesses still must be able to send and receive a fax. Fortunately, cloud-based companies have made the process of sending and receiving a fax as easy as sending and

122

receiving an e-mail message. In this way, no matter where you are, or which device you have, you can easily send and receive a fax.

CASE 7-3 MYFAX FAXES ANYWHERE, ANYTIME

MyFax is one of several companies that have made the faxing process very easy for those without a fax machine or a land-based phone line. After you sign up for MyFax, you will receive a phone number that corresponds to your virtual fax machine. When, as shown in FIGURE 7-7, someone sends a fax to you, MyFax sends the fax contents to your e-mail as a PDF file. In this way, you can receive your faxes any time, any place, with any device.

To send a fax, you simply e-mail the document to your MyFax account. Software at MyFax, in turn, will send the document’s contents to the recipient’s fax machine (or virtual fax account).

Exercise Discuss the potential cost savings to a company for using cloud-based faxing.

Web Resources For more information on MyFax, see www.CloudBookContent.com/Chapter07/index.html.

FIGURE 7-7 Cloud-based fax services deliver faxes as PDF documents to a user’s e-mail.

For years companies have relied on expensive phone systems to manage employee calls and group-based conference calls. Today, with most employees in possession of a cell phone, most phone operations can be controlled by software. In fact, several companies now provide cloud-based phone systems that will record and optionally transcribe voice messages and send the corresponding text to a user’s e-mail as a PDF document.

123

CASE 7-4 GOOGLE VOICE PHONE SYSTEM

Many people don’t like to give out their cell phone numbers to businesses or to strangers. A great solution is to create a Google Voice account, which provides a cloud-based answering system and voice mail. You can also direct Google Voice to forward calls to your cell phone, and if a caller leaves a voice mail, Google Voice will transcribe the voice content into text. Later, from any device, you can retrieve your recorded voice message or view the message transcript, as shown in FIGURE 7-8. Also, Google Voice is free!

Exercise Discuss the advantages of using a cloud-based phone system for personal or company use.

Web Resources For more information on Google Voice, see www.CloudBookContent.com/Chapter07/index.html.

FIGURE 7-8 Google Voice provides you with a virtual phone account that you can forward to your phone. You can receive voice messages or direct Google Voice to transcribe the voice messages as text.

Revisiting File Sharing

In Chapter 6, Data Storage in the Clouds, you learned that most cloud-based data storage providers allow you to share folders with other users. Using the shared folder, you can easily exchange photos, documents, and other digital content. In

124

this way, users do not have to track and later manage a myriad of e-mail attachments.

Within collaborative environments, however, users often need to edit the same document, sometimes at the same time. Fortunately, many cloud-based disk storage providers now facilitate simultaneous editing capabilities.

Editing Shared Files Within the Cloud

Depending on a document’s size, complexity, and project guidelines, there are times when users will need to edit the contents of the same document at the same time. As you might guess, depending how (and how many) users are editing the document, managing changes to the text can be challenging for collaborative editing software. In other words, if two users edit the same section of text, it becomes tricky to determine which user’s edits to apply.

One of the most popular Web 2.0 tools for document sharing is the wiki, which lets users collaborate on web-based content. The best-known wiki is Wikipedia, the online user-content-driven encyclopedia, shown in FIGURE 7-9.

Using wiki software, users can edit shared content. After the edits are saved, the document’s new contents are displayed on the web. Depending on the wiki software, changes to text may have to first be approved by a page moderator; or the wiki software may track edited versions of the content to make it easy to fall back to previous content if users choose to discard a change or content addition.

Many wikis are public and accessible to all users on the web. Some wiki software, however, supports private content, which is well suited for company-based internal messaging and documents.

The advantages of using a wiki for shared content include the following:

• Any member of the team can add or edit content.

• Most users quickly learn how to edit content within the wiki.

• Team members who edit the wiki content can reside anywhere.

• The edits to wiki content are immediate.

The disadvantages of using a wiki for shared content include the following:

• Because any member can edit the content, wikis sometimes contain errors.

• Public wikis are often targets of hacking and spam.

125

• The wiki’s free-flowing format may lead to disorganized content.

• Users are often suspicious of wiki content validity and accuracy.

FIGURE 7-9 Wikipedia provides the largest collection of web-based, user-contributed, and user-edited content.

126

CASE 7-5 WIKIA FREE WIKI HOSTING

Getting started with a wiki is very easy. To begin, you select the cloud-based host at which your wiki will reside. Your selection of a wiki site may include such factors as content versioning, content moderator approval, support for private content, and so on. FIGURE 7-10 illustrates a wiki focused on cloud computing, which I created in a matter of minutes using the Wikia editor.

Exercise Discuss the pros and cons of using a wiki for online editing of cloud-based documents.

Web Resources For more information on Wikia, see www.CloudBookContent.com/Chapter07/index.html.

FIGURE 7-10 Creating a cloud-based wiki, which discusses cloud-based topics and uses free software at Wikia.

CASE 7-6 GOOGLE DOCS FOR DOCUMENT SHARING

127

Google Docs provides users with web-based, free access to a word processor, spreadsheet, and presentation program—yes, Google Docs are meant to compete directly with the Microsoft Office tools. By default, the documents that you create using Google Docs reside in the cloud. That said, you can easily save your documents to a local file on your computer’s disk, print your documents, or share the document’s contents with other Google Docs users. To share a Google Docs document, you simply e-mail a link to the document to other users.

FIGURE 7-11, for example, illustrates a presentation on cloud computing that was created using Google Docs. The user can access the document using various devices.

Exercise Discuss the pros and cons of using Google Docs for business-based documents.

Web Resources For more information on Google Docs, see www.CloudBookContent.com/Chapter07/index.html.

FIGURE 7-11 Accessing a cloud-based Google Docs presentation from different devices.

CASE 7-7 MICROSOFT OFFICE WEB APPS

In Chapter 2, Software as a Service (SaaS), you learned about Microsoft Office 365, which provides cloud-based implementations of Word, PowerPoint, and Excel to users for a monthly fee. Given the popularity of the cloud-based Google Docs, Microsoft responded with Microsoft Office Web Apps—a scaled-down version of its office productivity tools. Using Office Web Apps, you can, free of charge, create a Word, PowerPoint, or Excel document; upload and edit your

128

existing documents; or share your documents with other users for viewing or editing. FIGURE 7-12 shows a PowerPoint presentation created with Microsoft Office Web Apps.

To share an Office Web Apps document, you simply e-mail a link to the document to another user. Depending on the permissions you have set, the user can view or edit the document’s contents.

Exercise Discuss the pros and cons of a business using Microsoft Office Web Apps in lieu of licensing the complete Office suite for each employee.

Web Resources For more information on Microsoft Office Web Apps, see www.CloudBookContent.com/Chapter07/index.html.

FIGURE 7-12 Microsoft Office Web Apps lets users create and share (for simultaneous editing) cloud-based Word, Excel, and PowerPoint documents.

CASE 7-8 MICROSOFT SHAREPOINT ONLINE

For years, many companies have used Microsoft SharePoint to provide a centralized document repository. Because the SharePoint user interface is similar to that of other Microsoft applications, users quickly come up to speed, and employees who move from a different company that uses SharePoint have only a small learning curve.

129

In Chapter 2, Software as a Service (SaaS), you learned that Microsoft now makes its Office suite of products available to the cloud through Office 365. Within Office 365, Microsoft includes SharePoint Online, the cloud-based version of the software.

The advantages of Microsoft SharePoint Online include the following:

• Ease of sharing documents

• Centralized storage for key team documents

• Ease of document searching and referencing

• Support for internal and external company sites

• Centralized storage for company reports and data

Exercise Discuss how Microsoft SharePoint Online differs from other web-based document-sharing utilities.

Web Resources For more information on Microsoft SharePoint Online, see www.CloudBookContent.com/Chapter07/index.html.

Collaborating via Web Logs (Blogs)

With the advent of Web 2.0, one of the most widely used communication tools has become the web log, or blog. Blogs allow virtually anyone, with little or no web development experience, to easily publish content on the web. Blogs can provide one-way or two-way communication—that is, some users post read-only content to blogs, while others allow readers to comment on the content. Over the past few years, blogs have become so successful that many newspapers have replaced printed content with digital blogs.

The primary advantages of blogs include the following:

• Blogs provide a device-independent way for content consumers to access digital content using only a web browser.

• Users can create and publish content to a blog with little or no web development experience.

• Within an organization, intranet-based blogs provide a convenient way to disseminate information.

• Blogs provide an effective way to collect feedback from readers.

130

The disadvantages of blogs include the following:

• Maintaining a blog takes time.

• Blogs can become opinion posts as opposed to fact posts.

• User feedback may not always be positive and may require moderation.

Collaborative Meetings in the Cloud

One of the biggest cost savings to businesses due to the cloud is the advent of the virtual meeting. Using sites such as WebEx and GoToMeeting, businesses can now reduce travel costs through cloud-based meetings. Additional benefits of cloud-based meetings include the following:

• Streaming video that allows face-to-face interaction

• Shared whiteboards that presenters can use to easily control the presentation of PowerPoint, Word, Excel, or related documents

• Accessibility to users, in most cases, through a myriad of devices

• Shared applications that let presenters easily demonstrate software live within a controlled environment

• The ability to hold company training online instead of on-site

• The ability to record meetings for playback at a later time

CASE 7-9 WORDPRESS, A LEADING BLOG SITE

Creating a blog is very easy. To start, you locate a free blog hosting provider within the cloud, such as WordPress. After you sign up, you will have access to a text editor, which you can use to create your blog.

Most blog providers offer a free user account, which is often advertising based. For a monthly fee, providers may eliminate advertisements, allow greater storage capacity, support streaming media such as video, and allow a user domain name. FIGURE 7-13 shows a blog in edit mode and the same content within presentation mode at WordPress.

Exercise Discuss the pros and cons of using a blog to present content on behalf of a company. Discuss the type of content for which a blog may be most appropriate.

131

Web Resources For more information on WordPress, see www.CloudBookContent.com/Chapter07/index.html.

FIGURE 7-13 Blogs provide users who have no web development experience with the ability to easily publish content on the web.

CASE 7-10 GOTOMEETING VIRTUAL MEETINGS

132

GoToMeeting is one of the leading providers of virtual meetings. The site offers a variety of scalable solutions that should meet most organizations’ needs. Using GoToMeeting, companies can host face-to-face meetings with two users or webinars that include 1,000 or more attendees. FIGURE 7-14 illustrates a virtual presentation within the GoToMeeting environment.

Exercise Discuss the pros and cons of virtual meetings in lieu of face-to-face on-site meetings.

Web Resources For more information on GoToMeeting, see www.CloudBookContent.com/Chapter07/index.html.

FIGURE 7-14 Virtual meetings allow companies to reduce expensive travel while maintaining the benefits of face-to-face interaction.

Virtual Presentations and Lectures

Using cloud-based tools such as WebEx and GoToMeeting, companies can easily host virtual meetings. Often companies will also want to place within the cloud multimedia content that users can access asynchronously at a time that best meets the users’ schedules. Using products such as Articulate or iSpring Presenter, companies can record and post cloud-based virtual presentations that may be used for marketing, virtual training, and more. The advantages of virtual presentations include the following:

133

• The costs of production and hosting for multimedia content are low.

• Users can play back content at a time that best meets their needs and as often as they desire.

• Companies can create a library of virtual marketing or training presentations.

• Virtual presentation software is migrating to handheld devices.

Using Social Media for Collaboration

Facebook is obviously the most successful Web 2.0 site. Using Facebook, users communicate with friends to share photos, videos, and text messages. Further, using Facebook groups, teams can share project information in a secure way. Because Facebook resides within the cloud, it must be considered a cloud-based collaborative tool. The advantages to using a social media tool for collaboration include the following:

• Users can exchange project information from anywhere, at anytime, with any device.

• Groups can keep team content secure.

• Most users are already familiar with the social media user interface.

CASE 7-11 ZENTATION VIRTUAL PRESENTATION SOFTWARE

Zentation provides a PowerPoint to streaming-media converter, which allows users to easily deploy multimedia presentations from the cloud. What makes Zentation unique is that it supports the integration of streaming video, as shown in FIGURE 7-15. Zentation not only provides software that will combine a video and PowerPoint, but it also offers cloud-based hosting.

Exercise Discuss potential ways a company might leverage virtual presentations.

Web Resources For more information on Zentation, see www.CloudBookContent.com/Chapter07/index.html.

134

FIGURE 7-15 Streaming a virtual presentation from the cloud.

CASE 7-12 SALESFORCE.COM CHATTER

Salesforce.com was one of the first companies to fully exploit the power of the cloud. Salesforce.com Chatter is a tool, like social media, that integrates with other Salesforce.com tools to improve communication, coordination, and data sharing. Using Chatter, employees can do the following:

• Collaborate privately and securely

• Share project documents and presentations

• Exchange thoughts, ideas, and status information with other group members

• Integrate Salesforce.com reporting data for improved communication and information sharing

Rather than having employees log into a traditional social media site, companies may prefer that team interaction occur within a more professional setting.

Exercise Discuss ways that companies might leverage social networking tools beyond sales management and customer relationship management.

135

Web Resources For more information on Salesforce.com Chatter, see www.CloudBookContent.com/Chapter07/index.html.

CASE 7-13 GOOGLE CALENDAR

Because it is free, cloud accessible, and easy to use, many users turn to Google Calendar. Users can easily share their schedule with others they choose. Further, users can delegate others as schedule administrators with the right to schedule or cancel meetings on the user’s behalf. FIGURE 7-16 shows the cloud-based Google Calendar user interface.

Exercise Discuss tools beyond schedule management that would make sense for companies such as Google to support in the cloud.

Web Resources For more information on Google Calendar, see www.CloudBookContent.com/Chapter07/index.html.

FIGURE 7-16 Using the cloud-based Google Calendar to manage meetings and appointments.

Using Cloud-Based Calendar Management

Within a busy organization, it can be difficult to schedule meetings, reserve meeting space, and track one’s own appointments and meetings. Many

136

companies use a calendar, such as that built into Microsoft Outlook, to manage employee appointments and meetings. Smaller companies, which may not have an Exchange server, may turn to cloud-based calendars, the advantages of which include the following:

• No software other than a web browser is required

• Calendars are accessible through most devices

• Many cloud-based calendars will sync with other applications

Using Streaming Video Content to Collaborate

YouTube is one of the Web 2.0 success stories. Each year users upload hundreds of millions of videos, containing a wide variety of content, to YouTube. Many companies use YouTube to market their products and services and even to deploy corporate training. YouTube supports video access from all web browsers and most handheld devices. Users are free to determine when and from where they retrieve the video content. More important, users can easily update their own videos to the YouTube cloud-based storage and then share the videos with other users. FIGURE 7-17 illustrates an overview of cloud-based video processing at YouTube.

Cloud-Based TV Content

Over the past few years, many households have gotten rid of their land-based phone lines in lieu of cellular phones. Recently, a similar phenomenon is taking place that has people getting rid of television sets and instead using cloud-based movie downloads and streaming content. In the near future, companies may also leverage streaming content to provide their own messaging, marketing, and training.

137

FIGURE 7-17 YouTube makes it very easy for users to upload and later stream video content to and from the cloud.

© 2010 salesforce.com, inc. All rights reserved. Used with permission.

CASE 7-14 HULU STREAMING CONTENT

Hulu is a website that offers on-demand streaming of TV shows, movies, film clips, webisodes (episodes created specifically for the web), and more. Hulu supports media streaming to a variety of devices. FIGURE 7-18, for example, presents a TV show streaming from the cloud-based Hulu website.

Exercise Discuss how companies such as Netflix and Hulu are changing how users view television and movies.

Web Resources For more information on Hulu, see www.CloudBookContent.com/Chapter07/index.html.

138

FIGURE 7-18 Hulu is one company that is deploying streaming media content from the cloud, on demand.

CHAPTER SUMMARY

Collaboration is the process of two or more people working together to achieve a result (a goal). It used to be that teams would meet in conference rooms to collaborate. Depending on the scope and importance of the project, some team members would fly in for face-to-face meetings. Those team members who could not attend would call in to a speakerphone. The cloud, however, has changed the ways in which teams collaborate. Today, using cloud-based tools, team members can do the following:

• Use cloud-based conferencing software to present documents, share desktops, and benefit from face-to-face video.

• Collaborate in real time and edit the same documents.

• Share calendars to simplify appointment scheduling.

• Use VoIP-based audio or video chats from anywhere with any device.

• Take advantage of virtual faxing services to send and receive faxes, without using a fax machine.

• Forward transcripts of voice mail messages to their e-mail.

139

• Communicate with team members using wikis and blogs.

• Leverage familiar tools that are like social media for group interaction.

• Stream media for marketing, training, or messaging purposes.

KEY TERMS

Blog

Collaboration

Instant messaging (IM)

Streaming media

Virtual meeting

Virtual presentation

Voice over Internet protocol (VoIP)

Wiki

CHAPTER REVIEW

1. Define collaboration.

2. Define and describe cloud-based collaboration.

3. The CIO of Ace Accounting Services suggests that the company can save considerable money using VoIP for phone calls. Define and describe VoIP. Then present three companies that provide VoIP offerings. Compare and contrast each company’s offering. Also, discuss whether or not you agree with the CIO and justify your opinion.

4. List the questions one should consider when evaluating a cloud-based collaborative solution.

5. Jan, a project manager at Smith Electronics, wants her team to be able to easily share and edit documents. Most of the documents are Word files—letters and memos—along with many presentations. Discuss the solution that you would recommend to Jan.

6. Mary, the human resources vice president for Baker Equipment, needs to train 500 remote employees on the company’s new sexual-harassment policy. Describe the cloud-based solution you would recommend to Mary and why.

140

Within your discussion, include the costs that Mary should expect for the cloud-based training.

7. Describe the pros and cons of using the following collaboration tools:

• Wiki

• Blog

• IM

• Shared documents

141

chapter 8

Virtualization VIRTUALIZTION IS THE USE of hardware and software to create the perception

that one or more entities exist, although the entities, in actuality, are not

physically present. Using virtualization, we can make one server appear to be

many, a desktop computer appear to be running multiple operating systems

simultaneously, a network connection appear to exist, or a vast amount of disk

space or a vast number of drives to be available.

Learning Objectives

This chapter examines virtualization in detail. By the time you finish this chapter,

you will be able to do the following:

• Define and describe virtualization.

• Discuss the history of virtualization.

• Describe various types of virtualization.

• List the pros and cons of virtualization.

• Identify applications that are well suited, as well as those that are not suited,

for virtualization.

• Describe why companies should employ virtualization.

Understanding Virtualization

Virtualization uses hardware and software to create the illusion that two or more

entities are present, when there is only one physical entity in existence. The most

common forms of virtualization include the following:

• Server virtualization: Making one server appear as many. Each virtual

server may run the same or different operating systems. Server virtualization

provides greater CPU utilization, a smaller equipment footprint, less power

consumption, and support for multiple operating systems.

142

• Desktop virtualization: This allows a user to switch between multiple

operating systems on the same computer. (An operating system that resides

within a virtualized environment is known as a guest operating system.) Some

desktop virtualization techniques can provide an operating system environment

on demand. Desktop virtualization provides support for multiple operating

systems, which is very convenient for software developers, testers, and help desk

support staff. In addition, desktop virtualization leads to ease of computer

maintenance and reduces desktop IT staff administration.

• Virtual networks: These create the illusion that a user is connected directly to

a company network and resources, although no such physical connection may

exist. Virtual networks are sometimes called virtual private networks or VPNs.

Using a virtual private network, users can connect to a network and access the

network resources from any Internet-connected computer. Virtual networks also

allow network administrators to segment a network, making different

departments such as management, development, and sales appear to have their

own separate networks.

• Virtual storage: This provides users (and applications) with access to scalable

and redundant physical storage through the use of abstract, or logical, disk drives

or file systems, or a database interface.

FIGURE 8-1 Virtual memory combines RAM with a page file on disk to create the illusion, to running programs, of the existence of a vast amount of RAM.

The History of Virtualization

Although virtualization has, over the past few years, become one of the hottest

topics in computing, it’s not a new idea. IBM, more than 30 years ago, had a

143

virtual operating system that allowed a mainframe computer to run multiple

copies of the same or different operating systems. Further, most operating

systems support virtual memory, which, as shown in FIGURE 8-1, combines

random access memory (RAM) and a page file on disk to create the illusion that a

process (a running program) has much more physical RAM than is present in the

computer. Windows, Linux, Mac OS, and other operating systems all support

virtual memory.

CASE 8-1 VIRTUAL MEMORY

Virtual memory is not physical memory (RAM). Instead, virtual memory combines RAM and space on a connected disk, called a page file, to create the

illusion, to running programs, that a vast amount of RAM exists.

Before the CPU can execute a program, the program’s instructions and data must

reside within RAM. Virtual memory takes advantage of the fact that not all of the

program’s instructions or data must be in RAM at the same time. Rather, the CPU

needs only the instructions and data with which it is currently working to reside

in RAM.

A virtual memory operating system breaks a program’s instruction and data into

fixed-size chunks called pages. When the CPU needs specific instructions or data,

the operating system loads the corresponding page from disk into RAM. When

the CPU no longer needs a set of instructions or data, the operating system can

move the pages from RAM back to disk. This process of moving pages between

RAM and the page file on disk is called paging.

The advantages of virtual memory include the following:

• A running program (process) appears to have unlimited memory.

• The operating system can easily manage several different programs, running at

the same time, and keep each program’s data and instructions secure.

• The operating system can take advantage of disk storage, which is considerably

less expensive than RAM.

The disadvantage of virtual memory is that the paging process (the process of

moving instructions and data between RAM and disk) adds overhead, mostly

because disk drives are much slower than RAM.

144

Exercise With computers supporting larger amounts of physical memory, some

users argue that there are applications for which users should turn off virtual

memory to improve performance. Discuss whether you agree.

Web Resources For additional information on virtual memory, see

www.CloudBookContent.com/Chapter08/index.html.

Leveraging Blade Servers

For years, when user demands required additional servers, the IT department

would add a physical server box within the data center, as shown in FIGURE 8-2.

Although the server box met user demands, each box consumed space within the

data center and required considerable power.

FIGURE 8-2 Server computers originally required their own chassis, disk, power supply, and fan. Servers consumed considerable power, took up considerable space, and generated considerable heat within the data center.

CASE 8-2 GREEN COMPUTING INITIATIVE

Years ago many people made the claim that computers, e-mail, and computer networks would reduce the vast number of printed pages and that many forests

would be spared. Unfortunately, the “less paper” thing never happened. Worse

yet, with desktops, laptops, and handheld devices now touching all aspects of our

lives 24/7, most devices never get powered off!

The result is that computer and device power usage is growing at exponential

rates. Because of the impact that computers now play with respect to our

environment, many green computing initiatives have emerged. Some general

guidelines for green computing include the following:

145

• Power off devices when they are not in use.

• Power up energy-intensive devices, such as laser printers, only when needed.

• Use notebooks when possible instead of desktop computers.

• Use the computer’s built-in power management features.

• Minimize unnecessary printing.

• Dispose of e-waste (devices, ink cartridges, monitors, and so on) in compliance

with government regulations.

For more specifics on green computing, visit the Green Computing Initiative

website hosted by the University of California, Berkeley, shown in FIGURE 8-3.

Exercise Discuss potential cost savings for a company supporting green

computing initiatives.

Web Resources For additional information on green computing, see

www.CloudBookContent.com/Chapter08/index.html.

FIGURE 8-3 The Green Computing Initiative details a variety of techniques and best practices.

As the server boxes were outgrowing many data centers, the blade server was

born. In short, the blade server, as shown in FIGURE 8-4, is a scaled-down server

146

designed to consume less power and to fit within a rack with other blade servers,

while still matching or exceeding the processing potential of chassis-based

servers.

To share disk space, blade servers support network-attached storage (NAS)

devices. Additional advantages of blade servers include the following:

• Consume less physical space (footprint)

• Consume less power

• Generate less heat and are easier to cool

• Easy to install and configure

Server Virtualization

Most servers today are either very busy, running at a high level of CPU

utilization, or are idle a significant portion of the time, waiting for something to

do. As you have learned, when a server becomes very busy, the IT staff may, as

shown in FIGURE 8-5, introduce a load-balancing server and then add additional

servers, as necessary, to handle the workload.

FIGURE 8-4 The blade server is designed to fit within a rack with other blade servers. This reduces the server’s physical footprint, makes the server easier to cool, and reduces the server’s power consumption.

147

FIGURE 8-5 Using load balancing, the IT staff can supply the number of servers necessary to meet the server workload at a given time.

In contrast, when a server is idle, the server’s potential processing power is being

wasted. For a cloud-based platform as a service (PaaS) provider, such wasted

processing time is a wasted revenue opportunity.

To reduce server idle time and to protect one client’s server from another, PaaS

providers use special software to divide the single physical server into multiple

virtual servers. As shown in FIGURE 8-6, each virtual server may run a different

operating system.

Improving CPU utilization is one reason to virtualize servers. Second, some

companies (including PaaS providers) need to support multiple server operating

systems. Fortunately, several tools exist to make it easy to virtualize most server

operating systems.

148

FIGURE 8-6 Through virtualization, a single physical server can be made to look like multiple separate servers, potentially running different operating systems.

CASE 8-3 MICROSOFT WINDOWS SERVER VIRTUALIZATION

Given Microsoft’s aggressive approach to cloud computing, it makes sense that Microsoft would also aggressively pursue client and server virtualization.

Microsoft servers now utilize an underlying technology the company refers to as

Hyper-V to allow administrators to create virtual servers.

The advantages of Microsoft Hyper-V technology include the following:

• The ability to consolidate servers and increase CPU utilization

• Enhanced business continuity and disaster recovery

• Ease of deploying testing and support environments

• Enhanced support for Windows-based client virtualization

• Improved load balancing

• Ability to move live virtual machines from one physical server to another on

the fly for load balancing and scalability

Exercise Assume your company primarily deploys .NET-based solutions.

Periodically, however, your company releases a PHP or Perl solution running

under Linux. Discuss the pros and cons of using Microsoft-based virtual servers.

Web Resources For additional information on Microsoft server virtualization,

see www.CloudBookContent.com/Chapter08/index.html.

Within a virtual server, to support the execution of multiple operating systems,

each operating system is actually installed on top of special software called the

hypervisor. The hypervisor, in turn, essentially manages each operating

system’s execution and resource use.

CASE 8-4 VMWARE ESXI

VMware is one of the best-known providers of virtualization solutions. For companies that need to support multiple operating systems within a

149

virtual-server environment, VMware ESXi provides the solution. That said, ESXi

is more than a simple server-virtualization tool. ESXi provides the following:

• Support for multiple operating systems

• Server consolidation

• Automated resource management to drive disaster recovery and service-level

agreements

• Detail cost-reporting services

• Automated load balancing

• Centralized management and administration of virtual servers and the

underlying machines

Exercise Assume your company must deploy virtual-server solutions for

Windows and Linux. You anticipate that you will require only one physical server

running the two virtual operating systems. Research and discuss the pros and

cons as well as the costs of using VMware server virtualization.

Web Resources For additional information on VMware server virtualization, see

www.CloudBookContent.com/Chapter08/index.html.

Desktop Virtualization

If you continue thinking in terms of the server-virtualization model, virtualizing

the desktop means allowing the system to run multiple operating systems at the

same time, as shown in FIGURE 8-7. The term for a desktop computer that runs

two or more operating systems is a virtual desktop.

If you consider a software tester who must test multiple operating system

platforms, or a help desk staff member who must answer calls from users

running a variety of operating systems, you can understand how the ability to

quickly switch between operating systems is very convenient and powerful.

The advantages of desktop virtualization of operating systems include the

following:

• A single desktop computer can simultaneously run multiple operating systems.

• There is reduced need for duplicate hardware.

150

• Less power is consumed.

FIGURE 8-7 Desktop virtualization allows a desktop computer to run two or more operating systems at the same time and allows a user to quickly switch between the systems.

CASE 8-5 PARALLELS DESKTOP 4 WINDOWS AND LINUX

Parallels Desktop 4 for Windows and Linux lets users easily integrate and install multiple Windows- and Linux-based operating systems on the same desktop

computer. Users can then quickly switch between operating systems as easily as

clicking the mouse on the target operating system window. FIGURE 8-8 shows

Windows and Linux running on the same desktop computer using Parallels

Desktop 4 for Windows and Linux.

Exercise Assume that your company has 10 programmers who write and test

code for applications running on Windows and Linux, and they must also support

applications running on these operating systems. Discuss the pros and cons as

well as the costs of using Parallels Desktop 4 for Windows and Linux.

Web Resources For additional information on Parallels Desktop 4 for Windows

and Linux, see www.CloudBookContent.com/Chapter08/index.html.

151

FIGURE 8-8 Using Parallels Desktop 4 for Windows and Linux to allow users to quickly switch between operating system environments.

The primary disadvantage of the virtual desktop is that the system incurs

overhead due to the virtualization and will not be as fast as an identical

standalone system running a single operating system.

Desktop Solutions on Demand

For years, desktop computer management went something like this:

• A new employee joins the company. The IT staff, in turn, prepares a computer

with the needed software and delivers it to the new employee’s desk.

• When it comes time to upgrade software, an IT support member carrying a

CD-ROM disk would visit each desktop computer and take as long as needed to

install the software. A high-tech data center, would then have a desktop

administrator push the upgrade across the network either at night or early in the

morning.

152

• When users encountered problems, the IT staff member would again show up

at the user’s desk to troubleshoot the problem, or the high-tech data center

would have a help desk support team member remotely log in to the user’s

computer from across the network.

• Users who were frustrated with the IT staff and its processes would simply

install software on their own systems, which the company may or may not own.

In any case, managing user desktop computers took time, money, and labor.

With faster computer networks, along with the migration to cloud-based

solutions, the approach to desktop management is changing. Today many data

centers are moving to on-demand delivery of desktop operating system

environments. In this way, when a user logs in to a system, he or she receives

access to his or her system customizations, assigned operating system, and

needed applications.

CASE 8-6 MICROSOFT DESKTOP VIRTUALIZATION

Most desktop computers today run a Windows operating system and a Microsoft suite of applications (normally Office). To simplify the management of such

desktop systems, Microsoft provides a suite of desktop virtualization tools:

• Microsoft Virtual Desktop Infrastructure (VDI) suite

• Microsoft Application Virtualization (App-V)

• Microsoft Enterprise Desktop Virtualization (MED-V)

• Microsoft Remote Desktop Services (RDS)

• Microsoft User State Virtualization (USV)

• Windows Thin computer

The advantages of the Microsoft desktop virtualization include the following:

• Simplified desktop management across the enterprise

• Access to user profiles and data from any computer

• Improved business continuity

153

• Improved management of software licenses

• Improved security and business compliance

Exercise Assume that your company has 1,000 desktops, for which your CIO

wants to deliver an operating system and environment on demand. Discuss

which Microsoft desktop virtualization tools you would require and the

corresponding cost.

Web Resources For additional information on Microsoft desktop virtualization,

see www.CloudBookContent.com/Chapter08/index.html.

As shown in FIGURE 8-9, in an on-demand operating system, software and user

settings are pushed to a desktop across the network.

Because the operating system and applications reside within a centralized

location within an on-demand environment, administrators can easily apply

patches and software upgrades, which are transparently downloaded to the

user’s computer the next time he or she logs in. Further, the on-demand

environment frees the user from ties to any one specific computer. A user can log

in to the system from any network computer and receive his or her work

environment.

FIGURE 8-9 On-demand operating system environments deliver a user’s operating system, environment customizations, and needed applications to any computer the user logs in to.

CASE 8-7 VMWARE VIEW

154

As one of the top leaders within the virtualization space, VMware offers View, a tool for providing virtual desktops on demand. Using View, system

administrators can centralize the on-demand delivery of an operating system

and user-assigned applications. The advantages of VMware View include the

following:

• Simplified desktop operating system and application management

• Automated desktop provisioning (account generation)

• Virtual-desktop image management

• Support for a variety of client platforms

Exercise Discuss the pros and cons of using VMware, as opposed to Microsoft, to

implement a company’s desktop virtualization.

Web Resources For additional information on VMware View desktop

virtualization, see www.CloudBookContent.com/Chapter08/index.html.

Virtual Networks

Networks allow users to share resources such as printers, storage devices, and

applications. Most businesses utilize a local-area network (LAN) to connect

users. Typically, LANs are just that—the cables or wireles devices that connect

users are local to a specific office, building, or campus, as shown in FIGURE 8-10.

Often users who travel and users who work from remote locations must connect

to the company’s LAN in order to accomplish specific tasks. In such cases, the

users can use special software to create a virtual private network (VPN)

connection to the LAN. VPN software, as shown in FIGURE 8-11, uses a secure

Internet connection to give the user the illusion that he or she is physically

connected to the remote network from his or her current location.

155

FIGURE 8-10 LANs are designed to allow users to share resources within a localized environment such as a home, business, office building, or small campus.

FIGURE 8-11 A VPN creates the illusion of a secure physical connection to a LAN using software and/or hardware to connect the user across the Internet.

When multiple employees work remotely, there may be times when the group

needs to establish its own network in order collaborate securely and effectively.

Rather than establish a physical network for the group, companies will configure

a virtual local-area network (VLAN), which uses special routers to segment part

of the physical network in such a way that the group appears to have its own

private network.

CASE 8-8 WINDOWS VPN SUPPORT

Across the web, several companies, including Cisco, provide advanced VPN support. Should you need to get a VPN connection up and running quickly,

however, Windows provides both client and server support. FIGURE 8-12, for

example, shows the Windows Create VPN Connection dialog box that lets a client

establish a VPN connection across the Internet. To create the connection, the

user needs only to know the IP address or domain name of the remote VPN

server.

156

Exercise Discuss the pros and cons of using VPN software provided with

Windows as opposed to licensing or buying a solution from a network company

such as Cisco.

Web Resources For additional information on Windows VPNs, see

www.CloudBookContent.com/Chapter08/index.html.

FIGURE 8-12 Windows provides client and server support tools that users can use to establish a VPN connection.

In a similar way, for internal security purposes, companies may use virtual

networks to create separate networking environments for sales, management,

development, and support, as shown in FIGURE 8-13.

Again, many companies such as VMware and Cisco provide support for the

creation, management, and security of VLANs.

Data Storage Virtualization

157

Chapter 6, Data Storage in the Cloud, discussed cloud-based data storage in detail.

You learned that the advantages of cloud-based data storage include the

following:

• Scalable disk storage space on demand

• The ability to pay as you go for the needed storage

• Behind-the-scenes backup and data replication

• Support for common operating systems

• Access from anywhere, anytime, and essentially any device

• Ease of document sharing

FIGURE 8-13 Virtual networks create the illusion of two or more stand-alone networks.

The primary disadvantages of cloud-based storage include the following:

• Some users are not comfortable with their data residing in the cloud.

• Cloud-based file access is slower than local file access due to network

overhead.

158

Data storage virtualization essentially separates the physical data storage from

the logical presentation that users (and applications) use to access the device.

For example, computer users will often partition a large (physical) hard drive

into two more logical drives (often drives C and D).

The process of making a device available to a user or application is called

mounting the device. As you learned in Chapter 6, several cloud-based data

storage providers allow users to mount the virtual storage so that the user can

refer to the storage area using a familiar disk drive letter.

Again, as shown in FIGURE 8-14, the data storage virtualization hides the physical

details of the actual storage device, which makes it very easy for administrators

to scale the available storage space.

FIGURE 8-14 Data storage virtualization hides the physical storage device or devices from the logical presentation that users or applications use to access the space.

CASE 8-9 VMWARE STORAGE VMOTION

Despite the virtual nature of cloud-based storage, at some point, an administrator, somewhere, must manage the physical data-storage devices. The

administrator may want to upgrade a device to a larger or faster drive, or, simply

move data for load balancing. Unfortunately, to perform such upgrades, an

administrator simply can’t call “time out” and take the device off line.

VMware’s Storage vMotion allows an administrator to move files from one

virtual data store to another while the virtual disk is active for use! If a user

updates a file on the source disk while the move is in progress, the Storage

159

vMotion software simply takes note and then later updates the file on the target

disk.

Exercise Discuss application types for which a data storage device cannot be

taken offline in order to perform system updates.

Web Resources For additional information on VMware Storage vMotion, see

www.CloudBookContent.com/Chapter08/index.html.

Not All Applications Are Well Suited for Virtualization

Despite the performance utilization gains that most applications will experience

within a virtual environment, some applications are not well suited for

virtualization:

• Applications with unique hardware requirements: If an application

requires a unique device or hardware device driver, the virtualization software

may be unable to support the device.

• Graphics-intensive applications: If an application is graphics intensive, such

as a 3-D modeling program, the virtual device drivers may slow down the I/O

processing to an unacceptable level.

Why Virtualize?

Throughout this chapter, you have examined a variety of virtualization

techniques. The following list summarizes a company’s motivation to virtualize:

• Increased device utilization (particularly CPU utilization)

• Decreased device footprint

• Decreased power consumption

• Simplified operating system and application administration

• Ease of software provisioning and patch releases

• Device and storage scalability

• Increased user access to key resources

• Increased flexibility in supporting multiple operating system environments

160

• Improved use and management of software licenses

• Improved utilization reporting, which leads to improved capacity planning

• Improved disaster recovery and business continuity

The primary disadvantages of virtualization include the following:

• New staff or staff training may be required to understand the virtualization

process.

• Not all applications are well suited for virtualization.

• The virtualization process adds slight overhead, which will make some

applications run more slowly.

CHAPTER SUMMARY

Virtualization is the use of hardware and software to create the perception that

one or more entities exist, although the entities, in actuality, are not physically

present. Using virtualization, we can make one server appear to be many, a

desktop computer appear to being running multiple operating systems

simultaneously, a network connection appear to exist, or a vast amount of disk

space or a vast number of drives to be available.

Through the use of server virtualization, companies reduce their server footprint

and power consumption, allow servers to support multiple operating systems,

and drive server CPU utilization. Further, through the use of desktop

virtualization, companies simplify operating system and application

administration. If needed, a virtual desktop can also run two or more operating

systems at the same time.

Virtualizing drives increases device utilization, simplifies device administration,

and improves business continuity and disaster recovery.

KEY TERMS

Guest operating system

Hypervisor

Virtual desktop

161

Virtual private network (VPN)

Virtual server

CHAPTER REVIEW

1. Define and describe virtualization.

2. Defend the following statement: Virtualization is not a new concept within

computer science.

3. Describe the various types of virtualization.

4. List the pros and cons of virtualization.

5. Discuss the attributes of applications that are not well suited for virtualization.

6. List reasons why companies should virtualize.

7. List the benefits of blade servers.

8. Define and describe the hypervisor.

9. Define and describe green computing.

10. Describe the concept of the desktop on demand, and include the benefits of

such a system.

chapter 9

Securing the Cloud FOR YEARS, IT DATA centers have been secured physically to prevent users who do not have a need to physically touch computers, servers, and storage devices from doing so. A general security rule is that if an individual can physically touch a device, the individual can more easily break into the device. As you might imagine, for many IT personnel the thought of hosting applications in the cloud is very concerning. When you consider cloud security issues, you should think in terms of two types of threats. Your first list of threats should correspond to the threats common to both cloud-based and on-site solutions. Your second list should focus on those concerns specific to the cloud.

Learning Objectives

162

This chapter examines cloud-based security. By the time you finish this chapter, you will be able to do the following:

• List the security advantages of using a cloud-based provider.

• List the security disadvantages of using a cloud-based provider.

• Describe common security threats to cloud-based environments.

General Security Advantages of Cloud-Based Solutions

As you have learned, because cloud-based solution providers spread their costs across multiple customers, the providers benefit from their economies of scale—meaning that most have more money available to invest in different solutions, such as security issues. The following list specifies several advantages cloud-based providers may have with respect to security:

• Immediate deployment of software patches: Many software patches address specific security concerns and requirements. Most cloud-based solution providers have a team of patch installation specialists who immediately deploy system patches. In this way, the cloud-based systems may have a shorter period of vulnerability after a software patch is released.

• Extended human-relations reach: Because of their financial strength, cloud-based solution providers may be able to better vet potential employees who will administer system software. Such vetting may include increased reference checking, security and background checking, and periodic screening (such as by polygraph).

• Hardware and software redundancy: Most cloud-based solution providers have redundant hardware and software resources they can quickly deploy in an emergency.

• Timeliness of incident response: Within a data center, key personnel often perform multiple tasks. A company’s security specialist may also be the company’s patch administrator. As a result, there are often delays between the start of a security incident and its identification—which may have a catastrophic result. A cloud-based solution provider, in contrast, likely has experts monitoring systems for intrusion, system utilization, and more. In this way, should a security incident occur, the cloud-based solution provider is likely to be more responsive.

• Specialists instead of personnel: Again, because of their financial advantage, cloud-based solution providers may be better positioned to recruit and hire trained system specialists. A small company that tries to handle its own IT, on the

163

other hand, may have a one-person IT staff—and that employee may have a steep learning curve.

There are also security disadvantages to hosting applications and their data within the cloud:

• Country or jurisdiction: It is not always clear where cloud-based resources reside. If a cloud hosts its resources within a remote country, for example, one must be concerned with the laws and the government stability of the country. If the cloud resources reside in multiple states, questions of jurisdiction may arise in the event of a legal matter. If a cloud-based provider, for example, receives a subpoena or a request for an e-discovery process, a customer’s data may become part of, and exposed to, an unwanted legal discovery.

• Multitenant risks: Many cloud-based solution providers use multitenant solutions, which means that two or more customers may use the same resources, such as a database. As a result, an application error might expose one company’s data to another company. Likewise, if a data storage device is shared, data remnants from one company may be exposed to another company.

• Malicious insiders: Despite a cloud solution provider’s best human-relations efforts, there can sometimes be problems with malicious employees. Depending on the employee’s role, a company’s cloud-based data may be at risk.

• Vendor lock in: Depending on how a cloud-based solution provider stores a company’s data, it may become difficult for the company to change providers later in the event of a service-level agreement breach or other problem.

• Risk of the cloud-based provider failing: Companies who rely on cloud-based providers are at risk that the provider could fail. Some companies ask for a source code escrow agreement, which places a copy of the provider’s source code with a third-party company. If the provider fails, the company can gain access to the source code, with which they may be able to rehost the solution.

CASE 9-1 MCAFEE SECURITY AS A SERVICE

To stay current with virus and spyware threats, most antivirus solutions perform constant updates to their virus signature dictionary/database. When you license an antivirus solution, you normally receive at least one year of automatic security system updates. As you work, the antivirus software updates your system against new threats behind the scenes. In general, the antivirus

164

software, as shown in FIGURE 9-1, pulls in the threat signatures from across the cloud.

McAfee now offers a range of security solutions that deploy from the cloud. The solutions protect e-mail (spam, phishing, redirection, and virus elimination), websites, desktop computers, mobile devices, and more. FIGURE 9-2 shows the McAfee security as a service web page.

Exercise Assume that you must provide desktop antivirus and antispam support for 1,000 desktop computers. Visit the McAfee website and create a proposal that includes your solution features and cost.

Web Resources For additional information on McAfee security as a service, see www.CloudBookContent.com/Chapter09/index.html.

FIGURE 9-1 Antivirus systems retrieve cloud-based updates regarding new threats in near real time.

165

FIGURE 9-2 McAfee, like many security providers, now offers a range of cloud-based security solutions.

Introducing Business Continuity and Disaster Recovery

Chapter 10, Disaster Recovery and Business Continuity and the Cloud, examines business continuity and disaster recovery in detail. Within Chapter 10, you will learn that companies always face a variety of risks. Each company’s goal is to evaluate the risks and to determine ways to mitigate (reduce) them. When you work with security issues, the same technique applies. To start, you must determine where your system is vulnerable and then you must take steps to reduce the vulnerability. The following sections examine common security threats.

Understanding Data Storage Wiping

In Chapter 6, Data Storage in the Cloud, you learned that many facilities offer cloud-based storage. Often a cloud-based data storage provider may share a storage device across multiple customers. Assume, for example, that you store a confidential company document within the cloud. Later you delete that document. Normally, when the file system deletes a file on disk, the file system simply marks the locations within which the file resided as available for use to store other files. Assume that another customer comes along and allocates space on the disk for storage but does not write any information to the space. If the

166

customer examines the allocated space, the customer may have access to your previously deleted confidential document!

To prevent such inadvertent data access, many cloud-based data storage facilities will wipe a file’s contents upon deletion. Data wiping is the term used when a cloud-based storage device overwrites (wipes) a file’s contents when a file is deleted. Wiping involves overwriting the previous file space with a series of values. In this way, as shown in FIGURE 9-3, if a customer allocates space within a cloud-based disk, that customer cannot read the disk’s previous content.

FIGURE 9-3 Within a cloud-based disk storage facility, file wiping overwrites a file’s previous contents when the file is deleted.

Understanding Distributed Denial-of-Service (DDoS) Attacks

A denial-of-service attack is a hacker attack on a site, the goal of which is to consume system resources so that the resources cannot be used by the site’s users. The motivation for and the implementation of denial-of-service attacks differ. The following batch file, for example, repeatedly sends ping requests to a specified website. Because the site must respond to the requests, it may need to deny or delay service to other users:

:Loop

ping SomeSite.com

167

GOTO Loop

A distributed denial-of-service (DDoS) attack uses multiple computers distributed across the Internet to attack a target site, as shown in FIGURE 9-4.

It can be challenging for a server to defend itself against a denial-of-service attack. Often a server slows down considerably before the attack can be detected and defended. The advantage of a cloud-based host with respect to a denial-of-service attack is that the cloud server may scale its resources quickly to respond to the attack messages in such a way that the site’s users are not impacted. The increased scaling will notify the administrators that the site is under attack so they can initiate defensive actions.

Packet Sniffing

Across the Internet and cloud, applications communicate by exchanging packets of data. As shown in FIGURE 9-5, within a wired network each computer examines packets to determine which ones are addressed to it.

FIGURE 9-4 A DDoS attack employs multiple computers to attack a target site.

168

FIGURE 9-5 Network applications communicate by exchanging network packets. Each computer within a wired network examines the message address to determine if the message is for an application it is running.

A hacker can write code that lets his or her system examine the content of each packet that travels past it. Such programs, called packet sniffers, allow the hacker to view, and in some cases change, a packet’s contents. Within a wireless network, hackers can simply monitor the airways to intercept packets.

The best defense against a packet sniffing attack is to use secure (encrypted) connections. The cloud, because it allows users to connect to applications from anywhere, increases potential risks. Users may connect from an insecure network or a network in which the wireless traffic is being monitored. To reduce the threat of such attacks, more cloud-based applications will require secure connections in the future.

Man-in-the-Middle Attack

A man-in-the-middle attack is much as it sounds. In general, the attack occurs when a hacker, as shown in FIGURE 9-6, is able to interrupt network messages and essentially place himself or herself between the user and the remote system. When the hacker is positioned in this way, he or she can then then send messages that appear to come from either the user or the system, as needed.

FIGURE 9-6 Within a man-in-the-middle attack, a hacker intercepts the messages a user and system are exchanging. The hacker can view and/or change the message contents.

Because cloud-based solutions rely on user communications across the Internet, the solutions are at risk for man-in-the-middle attacks. A good defense against

169

such attacks is to establish a secure (encrypted) connection with the remote server.

Monitoring Device Screens

Years ago, when employees accessed sensitive or confidential data only from within their office, the physical data were better protected from prying eyes. The cloud, however, extends the delivery of such data to users who are any place, at any time, and often to any device. The net result is that within a busy coffee shop or an airport, strangers can see data ranging from human-relations information or customer sales data to student grades, and more.

Unfortunately, the problems caused by remote data access will only get worse. The best defense against screen monitoring is user training. Users who access sensitive data must be aware of their surroundings.

Malicious Employees

Companies spend considerable amounts of money trying to protect their data and communications from hackers. IT staffs deploy firewalls, use encryption, monitor network traffic for intrusion, and much more. With all of these security features in place, the most difficult challenge for a company to defend itself against is a malicious employee. Developers, for example, have access to databases, and IT staff members have access to various system passwords, which means that each may have access to human-relations data, payroll data, e-mail content, and so on.

By shifting data to the cloud, you move sensitive data away from your own employees. However, the data are now accessible to a staff of IT personnel that you do not know. For many data items, such as payroll data, the cloud-based staff is likely less interested and curious about the data. That said, companies must feel confident that the data they store within the cloud are secure. To meet these concerns, cloud-based solution providers are intensifying their recruitment and hiring processes.

Hypervisor Attack

Chapter 8, Virtualization, introduced you to the concept of server virtualization. As you learned, when you virtualize a server, each server operating system runs on top of special virtualization software called the hypervisor, as shown in FIGURE 9-7.

170

As you might imagine, hypervisor developers such as VMware and Microsoft constantly focus on ways to lock down and secure the hypervisor to reduce risks. That said, the hypervisor will remain an attractive hacker target as companies continue to virtualize solutions. Hackers refer to the process of taking over the hypervisor as a hyperjacking attack. In the future, to reduce the chance of a hypervisor being taken over by malicious code, the underlying hardware may assign a state value, like a cyclic redundancy check (CRC), to the hypervisor. If this value changes, the hardware can detect that the hypervisor has been attacked or replaced.

FIGURE 9-7 The hypervisor is special software that allows virtualization of system resources.

Guest-Hopping Attack

Within a virtualized server, the operating systems that execute are called guest operating systems. Assume, as shown in FIGURE 9-8, that a virtual server is running three operating systems and a hacker is trying to attack operating system A.

If the hacker is unable to directly attack operating system A, the hacker may then try to attack operating system B. If the hacker is successful, the hacker may then initiate a peer-level attack on operating system A, as shown in FIGURE 9-9. Hackers refer to an attack from one guest operating system to another as a guest-hopping attack.

171

FIGURE 9-8 A virtualized server running three guest operating systems with a hacker trying to attack operating system A.

FIGURE 9-9 A guest-hopping attack occurs when a hacker tries to attack one guest operating system from another.

CASE 9-2 CLOUD SECURITY ALLIANCE

The Cloud Security Alliance is a not-for-profit organization, the goal of which is to promote education of cloud security issues. The Cloud Security Alliance consists of a large coalition of cloud practitioners, companies, associations, and other cloud stakeholders. As shown in FIGURE 9-10, the Cloud Security Alliance offers training that can lead to a Certificate of Cloud Security Knowledge.

Exercise Visit the Cloud Security Alliance website. Produce a list of cloud security topics one should understand in preparation for taking the cloud knowledge certification exam.

172

Web Resources For additional information on the Cloud Security Alliance, see www.CloudBookContent.com/Chapter09/index.html.

FIGURE 9-10 The Cloud Security Alliance offers training and certification in cloud security knowledge.

SQL-Injection Attack

Many web applications present forms that users must complete by filling in fields and then submitting the form contents for processing. The application that receives the form data often stores the data within an SQL database. An SQL-injection attack occurs when a malicious user inserts one or more SQL queries within one or more of the fields. For example, rather than simply typing in his or her last name, the hacker might type the following:

Smith; DROP DATABASE EMPLOYEES;

Depending on how the database uses the user input, the processing may result in the execution of the injected SQL, which in this case would delete the database of the company’s employees. When developers prompt users to enter data within forms, the developers must be aware of and test for such injections.

CASE 9-3 EUROPEAN NETWORK AND INFORMATION SECURITY AGENCY (ENISA)

173

The European Network and Information Security Agency (ENISA), based in Greece, promotes cybersecurity best practices. Within the ENISA website, you will find a broad range of papers and reports on a variety of security topics. FIGURE 9-11, for example, illustrates the ENISA Cloud Computing Risk Assessment page which you should read.

Exercise Visit the ENISA website and review the Cloud Computing Risk Assessment page and document. Create a two- to three-page executive summary that describes the risk assessment overview.

Web Resources For additional information on ENISA security recommendations, see www.CloudBookContent.com/Chapter09/index.html.

FIGURE 9-11 The ENISA website provides a wide range of cybersecurity best practices, including recommendations for secure cloud computing.

Many cloud-based SaaS solutions are multitenant applications, which means different customers may share underlying resources such as a database. If the SaaS application falls victim to SQL injection, it might be possible for a user in one company to view, change, or destroy the data of another company.

Physical Security

In Chapter 10, Disaster Recovery and Business Continuity and the Cloud, you will examine a variety of system threats, including fire, flood, theft, earthquakes,

174

tornadoes, hurricanes, and power outages. A cloud-based solution provider, like all data center facilities, is subject to each of these threats. Most, however, reduce the risk of such threats by replicating (colocating) identical systems at geographically dispersed locations, as shown in FIGURE 9-12.

If one system fails, the service provider can immediately fail over to the other system. Further, because most cloud service providers have state-of-the-art data centers, they normally have fire suppression systems, backup as power generators, and strong physical security measures in place.

FIGURE 9-12 By using colocated, replicated hardware and software, cloud solution providers reduce many threats to IT resources.

CHAPTER SUMMARY

For years, IT data centers physically secured resources to prevent users who do not have a need to physically touch computers, servers, and storage devices from doing so. IT security professionals know that anyone who can physically touch a device can more easily break into it, and so much of IT security is based on preventing access. The cloud, however, changes the security model significantly by making data available to users anywhere, anytime, with virtually any device. Securing cloud-based applications takes planning and resources. As you examine cloud security issues, think in terms of two types of threats: those that are

175

common to both cloud-based and on-site solutions, and threats that are specific to the cloud.

KEY TERMS

Data wiping

Denial-of-service attack

Guest-hopping attack

Hyperjacking attack

Man-in-the-middle attack

Packet sniffing

SQL-injection attack

CHAPTER REVIEW

1. List the security advantages of cloud-based solutions.

2. List the security disadvantages of cloud-based solutions.

3. Define and discuss the data wiping process.

4. Discuss how a cloud-based solution provider may reduce the risk of a DDoS attack.

5. Define and discuss hyperjacking attacks.

6. Define and discuss guest-hopping attacks.

• Copy

• Add Highlight

• Add Note

chapter 10

Disaster Recovery and Business Continuity

and the Cloud

176

FOR YEARS, A PRIMARY job of the IT staff of an organization was to ensure availability of computing resources (applications, files, and even phone systems) not only on a day-to-day basis, but also in the event of a crisis or natural disaster. Business continuity describes the policies, procedures, and actions taken by an organization to ensure the availability of critical business functions to employees, customers, and other key stakeholders. Disaster recovery describes the steps a business will take to restore operations in the event of a disaster (fire, flood, hurricane, tornado, or other event). Following 9/11, business continuity and disaster recovery became a very real and essential IT function.

Learning Objectives

This chapter examines ways companies can leverage the cloud to increase business continuity and to simplify disaster recovery. By the time you finish this chapter, you will be able to do the following:

• Define and describe business continuity.

• Define and describe disaster recovery.

• Describe the benefits of cloud-based or off-site backups.

• Evaluate the risk of various threats and discuss steps to mitigate each.

• Discuss the role of colocation as a business continuity and disaster recovery solution.

• Identify and discuss a variety of system threats.

• Describe the benefits of a cloud-based phone system.

• Describe the benefit of cloud-based data storage to business continuity.

• Describe the importance of testing/auditing the business continuity and disaster recovery plan.

• Create a business continuity and disaster recovery plan.

Understanding the Threats

An IT staff must anticipate and prepare for a wide range of system threats. The following sections examine common threats, how IT teams traditionally tried to mitigate threat risks, and how cloud-based solutions may further mitigate risks.

Threat: Disk Failure

177

Disk drives are mechanical devices, and as such they will eventually wear out and fail. Further, other threats, such as fire, flood, theft, or power surges, can result in the loss of disk-based data.

All mechanical devices have an associated mean time between failure (MTBF) rating. For a disk drive, the MTBF may be 500,000 hours of use (about 8 years). That said, it is important that you understand how manufacturers calculate the MTBF. To start, the manufacturer may begin running 1,000 disk drives. When the first disk drive fails, the manufacturer will note the time—let’s say after 500 hours (less than a month). The manufacturers then multiply that time by the number of devices that they tested to determine the MTBF:

MTBF = (500) × (1000)

= 500,000 hours

It’s important to note that no device in the group ran near the 500,000 hours!

Traditional Risk Mitigation for Disk Failure

The first and foremost risk mitigation for disk failure is to have up-to-date disk backups. If a disk fails, the company can simply replace the disk and restore the backup. That implies, of course, that the cause of the disk failure (fire, smoke, flood, or theft) did not also damage the disk backup. To reduce such risk, most companies store their disk backups at an off-site storage facility.

CASE 10-1 IRON MOUNTAIN OFF-SITE TAPE VAULTING

Because of their ease of use, inexpensive cost, and high storage capacity, many companies continue to use tape backups for their disk storage. A lot of companies use Iron Mountain to store the tape backups securely. If the company ever needs to restore a disk or retrieve an archived letter, e-mail, or other data for legal or compliance reasons, the company can simply retrieve and restore the magnetic tape. The question then becomes, why use Iron Mountain? The answer is simple: they have been storing key company data since 1951!

Today Iron Mountain provides a variety of services beyond digital tape storage:

• Document management

• Cloud-based automatic backups

• Records management and storage (including health records)

178

• Secure document shredding

• And more

Exercise Assume your company must back up 500 users’ desktops and 20 physical servers. Visit the Iron Mountain website and create two backup plan options.

Web Resources For additional information on Iron Mountain and the company’s backup solutions, see www.CloudBookContent.com/Chapter10/index.html.

The problem with the remote tape backup system is that it takes time. To start, the company may need to purchase a replacement disk. Then the company must install and format the disk for use. Finally the company’s tape storage facility must locate and return the tape that contains the data.

To reduce the potential need to retrieve and store a tape backup, companies turned to multiple disk storage solutions.

RAID-Protected Storage Today, many data centers use a redundant array of independent (or inexpensive) disks (RAID) to reduce the impact of disk failure. A RAID system contains multiple disk drives. Rather than simply store a file on one drive, the RAID system stores the data across several drives. In addition, the RAID system stores data that can be used to reconstruct the file if one of the drives fail. In this way, if a disk drive fails, no file recovery is required from the tape backup. Instead, the IT staff can simply replace the failed disk and the RAID system will rebuild the disk’s contents on the fly!

It is important to note that RAID systems do not eliminate the need for disk backups. If fire, flood, or theft occurs, the entire contents of all the RAID drives may be lost. In such a case, the tape backup of the drives becomes the data restoration solution.

Cloud-Based Data Storage and Backup Solutions

Chapter 6 examined cloud-based data storage in detail. As you learned, cloud-based storage not only lets users access their data from any place, at any time, and often with any device, but it also provides enhanced data replication. As shown in FIGURE 10-1, many cloud-based data storage systems automatically replicate cloud-based data at a second off-site, cloud-based facility. In this way, if one of the RAID-based cloud devices fail, the cloud-based data provider can immediately fail over to the redundant device.

179

FIGURE 10-1 Most cloud-based data storage facilities provide automatic data replication to another cloud-based data repository.

Further, as discussed in Chapter 6, many cloud-based facilities now use a RAID-like file system, which produces recovery data the facility can use in the event of a device failure.

Cloud-Based Data Backups

Chapter 6 examined the role of cloud-based backups in detail. Because cloud-based backups reside at a remote storage facility, the backups immediately introduce a level of protection. Then, because the backup files are immediately available from any device, anywhere, the backups reduce potential downtime because no time is needed to find, retrieve, and restore a tape backup from a traditional backup storage facility.

Threat: Power Failure or Disruption

Computers are sensitive electronic devices. When a computer loses power, the user’s current unsaved data is lost. Further, an electrical spike can permanently damage the computer’s electronic components, rendering the device unusable or destroying disk-based data. Although power blackouts can be caused by storms, accidents, or acts of terrorism, the more common power brownout is typically more damaging. And, unfortunately, power brownouts can be quite common, especially in the hot summer months when electrical demands spike.

Traditional Power Loss Risk Mitigation

To reduce the risk of an electrical surge damaging a computer and its peripherals, most users plug their computers and devices into a surge suppressor. Although the surge suppressor can prevent damaging power spikes

180

from reaching the computer’s electronic components, the surge suppressor cannot help against power loss. If a power loss occurs, the user’s unsaved work will be lost.

FIGURE 10-2 Users plug devices into surge suppressors to protect the devices from power spikes. A UPS provides users with a few minutes of battery backup power so the users can save their work and shut down their systems in an orderly way.

To reduce the risk of lost work, many users plug their devices into an uninterruptible power supply (UPS). Most UPS devices provide 10 to 15 minutes of battery backup power, which gives users time to save their work and shut down their systems in a conventional way. FIGURE 10-2 shows a surge suppressor and a UPS.

Within a data center, as you can imagine, it would be physically impossible to plug every device into its own UPS. Further, within a data center, a loss of power also means a loss of critical air conditioning to cool the computer devices. To mitigate risks from power loss, some data centers use very large UPS-like devices that provide a period of battery power to all of the powered devices. Further, as shown in FIGURE 10-3, if the power outage lasts a long time, the data center can switch to a large diesel-powered generator to drive power.

181

FIGURE 10-3 Many data centers have diesel-powered generators to produce power in the event of a long-term outage.

Colocation of Data Resources Colocation is the process of replicating key data processing, data storage, and possibly telecommunications equipment at a second remote facility. In other words, a company will duplicate its data center at a second facility. The advantage of colocation is that if one data center fails, the system can immediately fail over to the second facility. The disadvantage of colocation is cost. Not only does the company have to replicate its equipment, but it must also pay for the power, air conditioning, and staffing for a second facility.

Colocation is one way to reduce the risk of power failure. It is not enough to simply locate the second facility across the street or even across town. One must place the second facility across the country to eliminate the impact of storms, attacks, or power grid failures.

Cloud-Based Power Loss Risk Mitigation

Chapter 3, Platform as a Service (PaaS), introduced the concept of cloud-based PaaS solutions. Likewise, Chapter 4, Infrastructure as a Service (IaaS), presented the concept of cloud-based IaaS solutions. When you consider the expensive infrastructure needed to reduce the impact of power interruption, that alone should make you consider housing the data center off-site within the cloud. Most PaaS and IaaS solution providers have effectively dealt with power loss issues.

182

Remember, such providers can share the infrastructure costs across many customers. Also, most of the providers have colocated facilities on different power grids.

CASE 10-2 SITE SECURE NET | THE PLANET

Many companies today provide cloud-based PaaS and IaaS solutions with excellent power management facilities. Site Secure Net | The Planet is one such company, featured here because its website, shown in FIGURE 10-4, specifically addresses the company’s power management infrastructure. Beyond a state-of-the-art power management system, Site Secure Net | The Planet also provides colocation support. If power fails in one facility, the second facility can immediately take over operations.

Exercise Assume that your company has an in-house data center and 500 on-site user computers. Discuss the steps you would recommend that the company pursue to provide power management to the computer resources.

Web Resources For additional information on Site Secure Net | The Planet, see www.CloudBookContent.com/Chapter10/index.html.

FIGURE 10-4 The Site Secure Net | The Planet website provides an excellent power management overview.

Threat: Computer Viruses

183

As users surf the web (potentially downloading and installing software) and share drives (such as junk drives), their systems and those in the same network are at risk for a computer virus attack or spyware. It is estimated that within the United States alone, lost productivity time due to computer viruses exceeds $10 billion per year!

Traditional Computer Virus Risk Mitigation

The best defense against computer viruses and spyware is to ensure that every system has antivirus software installed. Most antivirus solutions today automatically update themselves across the web, as often as daily, with the most recent virus and spyware signatures.

Second, many organizations prevent users from installing their own software. Not only does this practice reduce the chance of a computer virus infection, it also aids the company in preventing the installation of software that the company does not own.

Third, as shown in FIGURE 10-5, home users should enable a firewall on their system, either at their router or on the computer itself. Most companies place a firewall outside the network.

FIGURE 10-5 Home computer users and business users should protect their systems by placing a firewall between the systems and the Internet.

Fourth, companies must train users to not open e-mail attachments in messages they receive from users they do not know.

Cloud-Based Computer Virus Risk Mitigation

In Chapter 8, Virtualization, you learned that many companies now virtualize desktop systems and, in some cases, download an operating system image on demand. A side effect of this virtualization process is a reduced opportunity for a computer virus to make its home within a user’s desktop environment. Further, as you learned in Chapter 9, Securing the Cloud, many companies are moving to cloud-based antivirus solutions.

184

Threat: Fire

Fire can damage computer resources, data stored on disks, and local copies of system backups. If the fire itself does not damage the equipment, the smoke or the process of putting out the fire will.

Traditional Fire Risk Management

Most offices have sprinkler systems, which, as you can imagine, destroy computers when they deploy. Often there is no good way to protect office hardware other than simply to insure it. The goal, when such damage occurs, is to get the users up and running again as soon as possible—business continuity, in other words. That means that system backups must be up to date and must be stored at an off-site location.

Within a data center, you normally won’t find sprinkler systems, but rather halon systems, based on compounds of carbon and one or more halogens, that stop fire by removing all the oxygen from the room.

Cloud-Based Fire Risk Mitigation

If you house your data center in the cloud, your system will reside in a state-of-the-art data center that provides fire suppression systems and, in most cases, colocated system redundancy. Again, because the PaaS and IaaS solution providers share their costs across many customers, they are able to provide their customers with top-level service at a relatively low cost.

Threat: Floods

During the rainy season, the nightly news often leads with a story about a city or state that is under water due to flooding. Depending on the speed and severity of the flood, companies may have a chance to remove systems from the area before the flood hits. If not, the equipment and the data stored within it is typically lost.

Traditional Flood Risk Mitigation

As with fire, so with flood: the best defense is to have current backups and insured equipment. Within many data centers you will find flood sensors, similar to the one shown in FIGURE 10-6, which sound an alarm if water is detected. These sensors do not exist to detect widespread flooding, but rather water leaking from an on-site pipe break.

185

FIGURE 10-6 Many data centers use water detection systems to sound alarms if a pipe breaks.

Cloud-Based Flood Risk Mitigation

A good rule of thumb is to not place your data center within a flood zone. Historically, most companies had little choice—they had to place their data center near their business offices, often in the same building. Today, however, with cloud-based PaaS and IaaS solutions readily available, the data center can essentially reside anywhere. Thus, the new rule of thumb is to not select a PaaS or IaaS provider located in a flood zone.

Threat: Disgruntled Employees

A disgruntled employee can harm a company by launching a computer virus, changing or deleting files, or exposing system passwords. It is very difficult to defend completely against a disgruntled employee, particularly one who has physical access to systems.

Traditional Disgruntled Employee Risk Mitigation

In the past, businesses protected themselves from disgruntled employees by trying to limit the damage such an employee could cause. First, as previously discussed, companies must ensure that up-to-date backups are in place. Second, the company must use controls to limit the resources that employees can access to only those they need in order to perform their jobs. Then, if an employee is terminated, the company must quickly disable the employee’s access to all systems.

Cloud-Based Disgruntled Employee Risk Mitigation

186

Chapter 5, Identity as a Service (IDaaS), presented the single sign-on process and ways companies are using the cloud to implement IDaaS. In this way, if a company terminates an employee, the company can quickly disable the employee’s access to all systems by simply disabling the employee within the authentication server. Chapter 8, Virtualization, examined desktop virtualization. If a company provides employees with a desktop on demand, most employees (except for the one in charge of desktop images) can do little to harm the system.

Threat: Lost Equipment

Each year, within airports alone, thousands of notebook computers are lost or stolen. When an employee loses a notebook, not only is the computer lost, but also the user’s local data, which may be confidential. Today, with users carrying powerful handheld devices, the opportunity for loss becomes even greater. Given the amount of information a user stores on such a device, identity theft often follows the theft of a device.

Traditional Lost Equipment Risk Mitigation

To reduce the risk of data loss when a device is lost or stolen (or broken), the user must maintain current backups. To reduce access to company sensitive data, many systems require a username and password or biometric sign-on. Although such techniques can be bypassed by an advanced hacker, they will prevent most criminals from accessing data.

Cloud-Based Lost Equipment Risk Mitigation

Typically, the more a company utilizes the cloud, the less risk the company will have with respect to a lost device. If, for example, the user stores (or syncs) key files to a cloud-based data repository, the user is likely to lose only minimal data. Likewise, if the company uses a cloud-based system such as Exchange Online, the user will be without e-mail, calendar, and contact access for only a brief period of time.

Threat: Desktop Failure

Computers, like all devices, may eventually wear out and fail. The cause of failure may be a bad disk drive, motherboard, power supply, and so on. The bottom line is that a user is now without a system.

Traditional Desktop Failure Risk Mitigation

The first step in recovering from a desktop failure is to ensure that current backups of the user’s files exist. Many companies have users store key files on a

187

network disk, which the company can easily back up and later restore. In most companies, a user experiencing the desktop failure will be offline until the IT staff can locate a replacement computer, install and configure software, restore backups of any of the user’s local files, and then make the system available. A few hours of employee downtime can have a significant cost.

Cloud-Based Desktop Failure Risk Mitigation

Chapter 8, Virtualization, examined desktop virtualization. If a company delivers the users’ desktops on demand, a user whose system has failed need only stand up, walk to another system, and log in. The employee can then resume work right where he or she left off. Further, if the user stores files in the cloud, he or she can likely access them from any device, and, if necessary, use software such as Office Web Apps to access and edit the files.

Threat: Server Failure

Just as desktop computers can fail, so too can servers. Because most servers today are blade devices, replacing a server is a relatively simple process, as shown in FIGURE 10-7, as long as the company has an extra server available. Because most servers boot from a network-attached storage (NAS) device, the process of getting the new server up and running should be easy.

FIGURE 10-7 Blade server replacement is normally fast and simple. Because most servers boot from a NAS device, only minimal software setup is normally required.

Traditional Server Failure Risk Mitigation

If a company has a mission-critical application running on a lone server and does not have a replacement server available, or better yet, online, then shame on that company. Device redundancy is the only way to recover quickly from a server failure.

188

Cloud-Based Server Failure Risk Mitigation

Given not only the cost factors, but also the advantages discussed throughout this chapter, most server applications should reside in the cloud with a PaaS or IaaS solution provider. Such providers typically provide 99.9 percent uptime through hardware redundancy and automatic failover.

Threat: Network Failure

Although networks consist primarily of cables and simple switching devices, things can break. For simple networks, the network will remain down until the faulty device or cable is identified and replaced.

Traditional Network Failure Risk Mitigation

For home computer users, when a network fails, users are going to be offline until a fix is applied. If the problem resides within the Internet service provider (ISP), the user can do nothing to resolve the issue. As a solution, some users are purchasing 3G and 4G wireless hotspot devices as a backup method of accessing the Internet.

To make sure that the network does not become a single point of failure, some companies bring in a second Internet source from a vendor other than their primary ISP. In this way, if one network provider fails, the company can gain access to the Internet through the backup network. Further, given that the backup network is in place, many companies will use it to load balance their bandwidth demands.

Cloud-Based Network Failure Mitigation

At first consideration, relying on the cloud for application and data storage may make the thought of a network failure quite concerning. However, as you have just read, to reduce the risk of network failure many companies provide redundant network connections to the Internet. The same is true for cloud service providers. Again, most will guarantee 99.9 percent uptime.

Threat: Database System Failure

Most companies today rely on database management systems to store a wide range of data, from customer data, to human resources data, to application-specific data. If a company’s database fails, many applications may also fail.

Traditional Database System Failure Risk Mitigation

189

The first defense in reducing the risk of database failure is to maintain current backups of the database. Most database systems today make the backup process easy and automatic. If the database fails, the IT staff can restore the backup. Unfortunately, the database and the applications that rely on it will be down while the restoration is performed.

To reduce the risk of database downtime as a result of a database failure, companies typically replicate data across two database systems in real time. When an operation updates data within the database, the database replication software will immediately update both database systems, as shown in FIGURE 10-8.

FIGURE 10-8 Database replication creates two live copies of databases on separate servers. If one database fails, the other can immediately take over operations.

Cloud-Based Database System Failure Risk Mitigation

As you just learned, to reduce potential system downtime in the event of a database system failure, many companies replicate the database contents in real time. The disadvantage of database replication is that it requires two servers (ideally in different locations) and may be complicated for developers to initially configure.

Chapter 6, Data Storage in the Cloud, discussed cloud-based database management systems in detail. As you learned, most cloud-based database

190

storage providers use transparent database replication. If a database in the cloud fails, the system will fail over to the backup database automatically. Further, because replication can occur in both directions, the system can use the second database for load balancing. If data is updated in either system, the change will be replicated to the other system.

Threat: Phone System Failure

Despite the fact that virtually all employees carry a cell phone today, most organizations still maintain phone systems that provide voice mail, conference calling, and call forwarding. If the phone system fails, the company can resort to cell phones. Unfortunately, customers calling in to the company would not know which numbers to call.

Traditional Phone System Failure Risk Mitigation

Historically, there have been few ways outside of redundancy to reduce the impact of a phone system failure. That was the case until the advent of cloud-based phone systems.

Cloud-Based Phone System Failure Risk Mitigation

To avoid a single point of failure for phone systems, cloud-based phone systems have now emerged. The cloud-based systems provide the functionality of a traditional phone system and, behind the scenes, provide system replication.

CASE 10-3 RINGCENTRAL CLOUD-BASED PHONE SYSTEM

RingCentral is a cloud-based phone system provider. It offers a cost-effective phone system solution. Features of RingCentral include the following:

• Free nationwide calling and faxing

• Support for existing phones and faxes as well as RingCentral IP phones

• Lets users place calls from any phone, anywhere, while appearing to be made from the usual office number

• Caller greetings customized by the time of day

• Fully customizable call forwarding

• Forwarding of voice mail and faxes to e-mail

• A phone directory system that helps callers locate personnel

191

• Ability to let companies deliver music or corporate messaging to callers who are on hold

FIGURE 10-9 presents the RingCentral website.

Exercise Discuss the pros and cons of using a cloud-based phone system provider.

Web Resources For additional information on RingCentral and the company’s phone system solutions, see www.CloudBookContent.com/Chapter10/index.html.

FIGURE 10-9 RingCentral offers a fully functional cloud-based phone system.

Understanding Service-Level Agreements

When you sign a service agreement with a cloud-based solution provider, your agreement will normally contain a clause called a service-level agreement (SLA). The SLA defines the level of service that the cloud-based company must provide. Common components of an SLA include MTBF, uptime percentage,

192

throughput, and other performance benchmarks. Before you enter into an agreement, pay close attention to the details of the SLA.

Measuring Business Impact: The Essence of Risk Mitigation

Often the process of reducing risk will bring with it some sort of cost, perhaps for backups, system redundancy, and so on. As a result, a business cannot always eliminate all technology risks. Instead, the IT staff must evaluate which risks are most likely and which risks have the greatest potential impact on the company and its ability to continue operations. The risk mitigation process requires that the IT staff balance risks and potential impacts.

To start the risk mitigation process, make a list of the company’s potential technology risks. Then estimate each risk’s potential for occurrence and its business continuity impact, as shown in TABLE 10-1.

You may want to add a column that estimates the cost to reduce the risk. In this way, you can provide management with the key factors they should consider as they invest in resources to reduce the company’s technology risks.

TABLE 10-1 RISK OCCURRENCE PROBABILITY AND BUSINESS CONTINUITY IMPACT

Risk Occurrence Probability Business Continuity Impact

User disk failure Medium Low

Server disk failure Low High

193

Network failure Low High

Database failure Medium High

Phone system failure Low Medium

Server power failure High High

Desktop power failure High Low

Desktop failure Low Low

Fire Low High

194

Flood Low High

Disaster Recovery Plan Template

Companies should have a disaster recovery plan (DRP) in place that details their planned operations. To get started with a DRP, you can use the following template as a guide.

COMPANY NAME: BUSSINESS CONTINUITY AND DISASTER RECOVERY PLAN

PLAN OVERVIEW

Company Name is taking steps to provide risk mitigation, business continuity, and disaster recovery for its information technology and communications infrastructure. The following sections detail the operational plan and recommend responsible parties. When possible, the plan sections provide detailed contact information for the plan’s responsible parties and stakeholders.

This plan is CONFIDENTIAL and is the property of Company Name.

PLAN GOALS AND OBJECTIVES

The goals of this business continuity and disaster recovery plan include the following:

• To ensure the safety of all Company Name employees

• To provide the ability to resume key business operations quickly and safely within the shortest possible amount of time following a disaster or business interruption

• To mitigate the impact of a disaster to Company Name stakeholders

• To reduce confusion with respect to operational steps and responsibility in the event of a disaster

DISASTER OR EVENT CATEGORIZATION

The Company Name recovery plan addresses three types of disaster or business interruption events:

195

• Short term: A day or less

• Medium term: A month or less

• Long term: A month or more, with the possible relocation of employees and facilities

DISASTER RECOVERY TEAM

Company Name has assigned the following key personnel to the disaster recovery team:

EMERGENCY CONTACT INFORMRATION

RISK IDENTIFICATION

Tornado Hurricane Flood

Hail Earthquake Fire

Power failure (server, desktop) Phone system Database failure

Disk (server, desktop) Theft Disgruntled employee

Virus Network failure System failure (desktop, server)

RISK ANALYSIS

196

Risk Occurrence Probability Business Continuity Impact

User disk failure Medium Low

Server disk failure Low High

Network failure Low High

Database failure Low High

Phone system failure Low Medium

Server power failure High High

Desktop power failure High Low

Fire Low High

Flood Low High

Virus High High

RISK MITIGATION

Risk Mitigation

User disk Company Name will back up user disks to the Carbonite cloud-based backup

197

failure system.

Server disk

failure

Company Name will use RAID systems for all servers and will back up the

server disks to the Carbonite cloud-based backup system.

Network

failure

Company Name will bring two Internet providers into each facility and load

balance the network traffic across the shared bandwidth.

Database

failure

Company Name will replicate its existing database system to a remote database

that resides in the cloud and will implement an automatic failover.

Phone

system

failure

Company Name will tie all company cell phones to the RingCentral cloud-based

phone system.

Server

power

failure

Company Name will colocate a replicated copy of its servers within a

cloud-based PaaS facility and will use load balancing to share traffic between

the two. Company Name will implement an automatic failover between the

servers.

Desktop

power

failure

Company Name will plug all desktop systems into UPS devices.

Fire Company Name will house its servers within a cloud-based PaaS provider,

which will act as fire suppression. Company Name will insure its desktop

computers against loss from fire.

Flood Company Name will house its servers within a cloud-based PaaS provider that

does not reside within a flood zone. Company Name will insure its desktop

computers against loss from flood.

198

Virus Company Name will install antivirus software on all systems, place a firewall in

front of the network, and prevent users from installing software.

CHAPTER SUMMARY

Since 9/11, a primary job of corporate IT staffs has been to ensure the availability of computing resources (applications, files, and even phone systems) not only on a day-to-day basis, but also in the event of a crisis or natural disaster. Business continuity refers to the policies, procedures, and actions taken by an organization to ensure the availability of critical business functions to employees, customers, and other key stakeholders. Disaster recovery describes the steps a business will take to restore operations in the event of a disaster (fire, flood, hurricane, tornado, or other event). By integrating cloud-based solutions, many companies have significantly reduced the cost of their business continuity programs while simultaneously reducing potential risks.

KEY TERMS

Business continuity

Disaster recovery plan (DRP)

Halon

Mean time between failure (MTBF)

Redundant array of independent (or inexpensive) disks (RAID)

Service-level agreement (SLA)

Uninterruptible power supply (UPS)

Virus

CHAPTER REVIEW

1. Define and describe business continuity.

2. Define and describe disaster recovery.

3. Discuss pros and cons of cloud-based backup operations.

4. Discuss threats to an IT data center infrastructure and provide cloud-based solutions to mitigate the risks.

199

5. Create a DRP for a company with which you are familiar.

chapter 11

Service-Oriented Architecture “SOFTWARE ARCHITECTURE” DESCRIBES THE major components that comprise a system, their relationships, and the information the components exchange. The distributed nature of the cloud has provided an ideal platform to support service-oriented architecture (SOA), an architectural approach to building solutions through the integration of services. This chapter introduces SOA and its implementation through web services.

Learning Objectives

This chapter examines SOA. By the time you finish this chapter, you will be able to do the following:

• Define and describe SOA.

• Compare and contrast the roles of web services and web pages.

• List common examples of web services.

• Discuss the benefits of treating a web service as a black box.

• Discuss governance challenges in using web services.

• Discuss the role of the Web Service Description Language (WSDL) to describe a web service and its methods.

Understanding Service-Oriented Architecture

200

A software system consists of components that implement different aspects of the processing. There are many different ways to create the architecture for a system—its components and their relationships and interactions. Service-oriented architecture (SOA) is a system design upon which the solution is described in terms of one or more services. Normally, to promote reuse, the services are distributed on the Web. When a program must use a service, the program exchanges messages with the service, normally through the use of a remote-procedure (method) call, as shown in FIGURE 11-1. This chapter examines the use of web services to implement SOA design.

FIGURE 11-1 Within SOA, programs make remote-procedure calls to services that reside on servers distributed across the Web.

Web Services Are Not Web Pages

Across the Web, people use sites that perform specific tasks. For example, they book travel on Travelocity, buy books at Barnes & Noble, check their account balance at Bank of America, and order pizza from Domino’s. These sites offer services to the user, but they are web pages, not web services. A web service is program code that resides on the Web and performs a specific task that other programs, not people, use. The following are examples of tasks performed by a web service:

• Return the weather conditions for a specific zip code

• Return real-time traffic conditions for a road or highway

• Return a stock price for a particular company

• Return driving directions to a specific location

201

• Return the country associated with an IP address

Programmers use web services within their programs to perform specific processing. To use a web service, a program exchanges messages across the

FIGURE 11-2 A program exchanges messages with a web service to call a specific method and then normally waits for the web service to return its result.

Internet with the web service that resides on a remote server. The program may pass parameter values to the service, such as a stock symbol of a company for which the program wants the stock price or the zip code of the area for which the program wants weather conditions. When a program calls a web service, normally the program will send its message to the web service via a function call and then wait, as shown in FIGURE 11-2, for the web service to return its result.

CASE 11-1 TEST DRIVING WEB SERVICES

As discussed, a web service is code that a program calls from across the Internet to perform a specific task. To help you understand how a program might use a web service, there are several simple programs (web applications) hosted on this book’s companion website. In each case, the program creates a web page within which it displays information it receives from a web service.

Exercise Discuss potential pros and cons of using a web service to accomplish a specific task.

Web Resources To test drive several programs that use web services, visit www.CloudBookContent.com/Chapter11/index.html.

Many Companies Provide Web Services

202

When programmers create applications, often they need programs to perform tasks that involve another company, such as the following:

• Determining the shipping rate to send a package via UPS or FedEx

• Determining if a company has a particular product in inventory and, if so, the quantity available

• Performing credit card processing

• Placing an order for a product

To help programs perform such tasks, many companies provide web services. For example, FedEx and UPS provide web services that programs can use to integrate each company’s shipping and tracking capabilities. Amazon provides web services that programs can use to integrate product searching and purchasing into their applications. Google provides web services that programs can use to access the site’s search-engine capabilities.

Discovering Web Services

Before a developer can take advantage of an existing web service, he or she must know that the web service exists. Companies such as FedEx, UPS, Amazon, and Google usually have developer-specific web pages that provide documentation for their service offerings. Across the Web, developers may take advantage of registries within which other programmers store information about the web services they create. More than 10 years ago, when developers first began deploying web services, a large registry, known as Universal Description, Discovery, and Integration (UDDI), emerged. The goal of UDDI was to make it easier for a developer and a program to discover web services. Unfortunately, UDDI was never widely used and was shut down.

CASE 11-2 XMETHODS WEB SITE

As programmers develop web services, often they will share them with others—sometimes for free, sometimes not. At the XMethods website, shown in FIGURE 11-3, you can find a wide variety of web services available for use within programs. Even if you are not a developer, you should visit the site to gain a better understanding of the types of tasks performed by web services.

Exercise Visit the XMethods website. Describe three different web services listed that programmers might use within a business application.

203

Web Resources For more information on web services, visit www.CloudBookContent.com/Chapter11/index.html.

FIGURE 11-3 You can find a wide variety of web services at the XMethods website.

Understanding Web Service Performance

Primarily because of their distributed nature, web services provide advantages to developers, the most important of which is ease of code reuse. The cost of a web service’s distributed processing is performance. Because web services require network operations, a web service will be considerable slower than a program’s call to a function that resides on the same computer. Consider, for example, the following C# program that determines the square root of the values 1 to 1,000:

204

The program simply tracks how long it takes to perform its processing and then displays output similar to the following:

Ticks required: 5

In this case, the square root processing takes 5 ticks (100 nanosecond intervals) to complete.

In contrast, consider the following C# program that uses a remote web service to calculate the square-root values:

205

In this case, the program displays output similar to the following:

206

Ticks required: 10,562,000

As you can see, the message-passing overhead associated with calling the remote web service increases the processing to more than 10,000,000 ticks.

These examples illustrate that due to network overhead, a web service, despite its increased code reuse, is not always the best solution to a problem.

Web Service and Reuse

When programmers develop code, they break large, complex operations into smaller, more manageable tasks. Then they implement the well-defined tasks as functions. Ideally, each function should perform one task only. In this way, programmers can reuse the function code in other programs, which saves development and testing time and ultimately reduces costs. A common rule of programming is not to “reinvent the wheel,” which means that if another programmer has written code that performs the task that your program needs, you should reuse that code.

Web services contain functions that perform specific tasks. Normally, the web service’s functions will perform key tasks that many programs need. As a result, web services typically have a high level of code reuse.

Scaling Web Services

Chapter 19, Application Scalability, examines ways to scale cloud-based applications. Depending on its program demands, a web service may become a potential system bottleneck. An easy first solution is to scale up the web service by placing it on a faster server. If high utilization of the service continues, the developers may need to distribute copies of the web service onto additional servers and then use a load balancer, as shown in FIGURE 11-4, to distribute the program requests.

207

FIGURE 11-4 Using a load-balancing model, developers can scale a web service solution.

Web Services and Loose Coupling

As you have learned, a web service contains code that programs can call from across the Internet to perform a specific operation. Coupling describes the degree of dependence between a calling program and the web service. Ideally, to use a web service, a program only needs to know the location of the web service (its URL), the name of the functions (methods) the web service provides, and parameters the program can pass to the functions. In this way, programs and web services are said to be loosely coupled.

Because of a program’s loosely coupled relationship to a web service, it is possible for a developer to update a web service with a newer version (perhaps a faster version) and for programs that use the service to use the new version immediately without requiring any modifications.

Treating a Web Service as a Black Box

The term black box describes a module for which the software developer does not care how the processing is performed, but instead, knows that the code, when provided valid inputs, will produce predictable results.

208

Based on a web service’s loosely coupled relationship with a program that uses the service, the developer is confident that he or she can treat the web service as a black bos and not worry about how it performs a task. Instead, the developer trusts that, with valid input, the web service will function consistently.

Web Service Interoperability

One of the biggest advantages of web services is their interoperability. In other words, they can be called from programs using a variety of programming languages. Consider, for example, the following web service that provides two methods, Uppercase and Lowercase, which return the uppercase or lowercase equivalents of the character strings they receive:

209

This particular web service was written using the C# programming language within a .Net environment. The following C# program uses the methods the web service provides:

210

When you compile and execute this program, it displays the following output:

HELLO world

Because they are interoperable, web services can be called from different programming languages. The following PHP script uses the web service:

211

When you run this script, it displays the following output:

Hello, world HELLO world

Web Service Description Language

A web service consists of one or more functions, each of which performs a specific task and normally returns a specific result. Within the web service, each function has a unique name and may receive zero or more parameter values. For example, a web service function called HousePayment might receive parameter values for the principal, interest rate, and length of the loan. Behind the scenes, the web service uses a Web Service Description Language (WSDL) file to describe the web service and its methods. Programs that use the web service will use the WSDL file to determine the available functions, parameter types, and more. The following statements, for example, contain the WSDL statements for the previous web service that provides the Uppercase and Lowercase methods. Within the WSDL, you can determine the methods supported, the values returned, and the types of parameters received:

212

213

214

Governing Web Services

215

Chapter 15, Governing the Cloud, examines the process of governing cloud operations to confirm that applications work correctly and are protected from potential malicious modification by an external source. A web service is program code that resides on a server that belongs to the company whose programs use the service, or on a server owned by a third party. Before a developer uses a web service within an application, the company’s IT staff should ensure that the web service implementation and deployment satisfies their policies and procedures. These may include requirements such as the following:

• The solution must be developed and deployed by a reputable company.

• The solution cannot be dynamically changed or updated without the company’s notification and approval.

• The solution must provide secure communications to avoid threats such as a man-in-the-middle attack.

• The solution must be scalable to meet potential demand.

• The solution must be able to be validated.

CHAPTER SUMMARY

Developers often refer to the major components of a software system as the system’s architecture. To leverage the distributed nature of the cloud, developers make extensive use of SOA. Using this architecture, developers build systems by taking advantage of distributed web services, which may reside on a server anywhere across the Web. Traditionally, programs call the remote web service the same way it calls a function or subroutine, passing optional parameters to the service and waiting for an optional response. Today, companies such as Amazon and eBay offer a wide range of web services that perform specific tasks, which programmers can integrate into the applications they create. This chapter examined SOA and its implementation through web services.

KEY TERMS

Architecture

Black box

Coupling

Interoperability

Loosely coupled

216

Method

Service-oriented architecture (SOA)

Web Service Description Language (WSDL)

CHAPTER REVIEW

1. Define software architecture.

2. Define and describe SOA.

3. Compare and contrast a web page and a web service.

4. Search the Web for companies that offer web services and then describe three to five web services that programmers might integrate into the applications they create.

5. Discuss what it means for a web service to be interoperable.

217

chapter 12

Managing the Cloud OFTEN, BY MOVING A solution to the cloud, IT managers shift a great deal of day-to-day management from their in-house department to the cloud-solution provider. That said, the IT manager must not relinquish oversight and responsibility for performance and data management. Instead, he or she must provide essential oversight of the key system operations.

Learning Objectives

This chapter examines essential cloud-management operations. By the time you finish this chapter, you will be able to do the following:

• Discuss components often found within a service-level agreement.

• Define and discuss vendor lock-in and specify steps a manager should take to reduce this risk.

• Discuss a manager’s potential use of audit logs to identify system bottlenecks and resource use.

• List the specific aspects of the cloud deployment that a manager must oversee.

Know Your Service-Level Agreement

When you contract with a cloud-solution provider, part of your contract will contain a service-level agreement (SLA), which defines the levels of service the provider will meet. Common components of an SLA include the following:

• System uptime, normally expressed as a percentage, such as 99.9 percent

• Run-time monitoring capabilities and event notification

• Billing policy for various types of resource use (e.g., CPUs, disk space, and databases)

• Technical support operations (e.g., call-time delay and event response time)

• Data-privacy policy

• Multitenant systems and applications

218

• Customer and provider roles and responsibilities

• Backup policies and procedures

• Resolution steps in case provider fails to meet the service levels

CASE 12-1 APICA CLOUD LOAD PERFORMANCE TESTING

A key responsibility of cloud managers is to monitor system performance. Several sites in the cloud provide response time-based cloud performance monitoring; others provide load testing, which measures how a site will perform during high user demand. The Apica website, shown in FIGURE 12-1, provides both types of testing, as well as cache-utilization assistance, which the company says will significantly improve a site’s responsiveness.

Exercise Discuss how a company might deploy load testing and the specific types of tests the process might include.

Web Resources For more information on Apica, visit www.CloudBookContent.com/Chapter12/index.html.

219

FIGURE 12-1 The Apica site offers performance monitoring, load testing, and assistance in configuring a site’s cache settings.

Ensure and Audit System Backups

Chapter 6, Data Storage in the Clouds, discusses cloud-based backups in detail. Managers should consider different forms of backups. First, your company may back up user files from on-site computers to disks that reside within the cloud. Hopefully you will never require these backups; but regardless, you should periodically audit the backups, perhaps by checking that you can successfully restore randomly selected files of different users.

CASE 12-2 DISTRIBUTED MANAGEMENT TASK FORCE CLOUD-MANAGEMENT STANDARDS

The Distributed Management Task Force (DMTF) consists of hundreds of organizations and thousands of members who work to provide IT standards. As shown in FIGURE 12-2, the DMTF provides standards and recommendations for managing the cloud and virtual solutions.

Exercise Review the DMTF cloud-management recommendations. List the top 10 recommendations.

Web Resources For more information on the DTMF cloud-management standards, visit www.CloudBookContent.com/Chapter12/index.html.

220

FIGURE 12-2 The DMTF provides cloud-management standards and recommendations.

Second, if the cloud provider stores some or all of your company data, you must understand the provider’s backup process (and include it in the SLA). For governance purposes, you should know if the data is encrypted, who has access to it, and if it is replicated to a remote facility. If it is backed up to another location, you must know where and how often.

Additionally, if the provider uses a database to store your company data, you need to know if and how the data is replicated and whether your company’s information is stored in a private or multitenant database. You should also know the system’s guaranteed uptime.

Know Your System’s Data Flow

Often, developers and managers think of a cloud solution as a black box, which means that they know what the system does but not how it does it. Chapter 15, Governing the Cloud, discusses the role of internal controls in providing stakeholders with confidence, first and foremost, that a solution works correctly;

221

second, that the solution cannot be manipulated by external factors; and third, that the solution is auditable.

Managers should create a detailed process-flow diagram that shows the movement of company data throughout the cloud solution. They should also identify within the dataflow various points for the placement of internal controls or auditing.

CASE 12-3 EMBOTICS CLOUD AND VIRTUALIZATION MANAGEMENT TOOLS

For many IT professionals, managing device virtualization and cloud deployment is a daunting task. To facilitate the process, Embotics offers V-Commander, an off-the-shelf-product that offers life cycle solutions for managing private cloud deployments and optimizing the underlying virtual devices. As shown in FIGURE 12-3, Embotics states that with its product an IT team can install the software and manage the cloud within one hour.

Exercise Discuss how cloud-management considerations may vary across the life cycle of a cloud-based solution.

Web Resources For more information on Embotics, visit www.CloudBookContent.com/Chapter12/index.html.

222

FIGURE 12-3 Embotics provides tools to assist in cloud management.

Beware of Vendor Lock-In

Relationships can go bad—even those with a cloud-solution provider. The agreement you sign with a cloud provider should stipulate exit procedures in case the provider fails to meet the service levels or breaches any other aspect of the contract.

IT managers must be able to control their company’s data. In the event of a worst-case scenario, a manager must be able to export the company data, ideally to a file that can be imported by another provider. Managers should test this capability before a problem arises.

Vendor lock-in occurs when a provider does not support data export or when a provider’s service is unavailable through others. Thus, the customer is “locked in” to the relationship with the vendor. If this happens, a company may have to put up with breaches of its SLA because it has no other place to move its data. Managers should consider the risk of vendor lock-in before they enter into a provider agreement.

223

Source-Code Escrow

Companies fail. Therefore, managers, should perform due diligence on a cloud-solution provider before they enter into an agreement. The manager may want to arrange a source code escrow agreement, which places a copy of the provider’s programming language source code with a third-party escrow company. Then, if the solution provider fails, the company can acquire and deploy the source code, put it on its own system, and implement the provider’s solution.

CASE 12-4 JITTERBIT CLOUD INTEGRATION

Many organizations use multiple cloud-based solutions provided by a variety of providers. Often, IT managers must integrate the various solutions, such as combining sales and financial data, or human resource and enterprise-resource planning solutions. Jitterbit, as shown in FIGURE 12-4, provides integration for cloud-based solutions without the need for programming. Jitterbit provides a drag-and-drop interface that allows a manager to define how applications integrate and share data. For companies with in-house developers, Jitterbit provides advanced scripting tools so that developers can incorporate business rules into the data-integration process.

Exercise Discuss challenges associated with integrating data from different cloud-based solutions.

Web Resources For more information on Jitterbit capabilities, visit www.CloudBookContent.com/Chapter12/index.html.

224

FIGURE 12-4 Jitterbit provides a drag-and-drop tool for data integration across cloud-based solutions.

Determine Technical Support and Help Desk Procedures

Depending on the solutions it places in the cloud, a company may have various help desk support requirements. For example, in the case of a Solution as a Service (SaaS) solution, the cloud-solution provider may provide software technical support. For Platform as a Service (Paas) or Infrastructure as a Service (IaaS) solutions, however, the company may provide software technical support. There may also be shared support responsibilities. In all cases, an IT manager should ensure that the support specifics are defined within the SLA.

Determine Training Procedures

To be successful, large-scale cloud applications often require user training before, during, and after the integration. For SaaS solutions, the cloud-service provider normally provides user training. Depending on the application’s processing, the company may need to augment the training with in-house instruction. The IT manager should stipulate the training responsibilities within the SLA.

225

CASE 12-5 NETUITIVE PREDICTIVE ANALYTICS AND CLOUD MANAGEMENT

Predictive analytics tools perform statistical analysis to predict future behavior. Netuitive integrates predictive analytics to provide IT managers with insights into how a solution will work under different conditions. Netuitive software can monitor a group of integrated or stand-alone cloud-based solutions. The software’s self-learning capabilities allow the software to identify demand trends and more. As shown in FIGURE 12-5, Netuitive provides a dashboard and drill-down reporting.

Exercise Discuss factors a company might want to consider before using predictive analytics of a cloud-based solution.

Web Resources For more information on Netuitive predictive analytics, visit www.CloudBookContent.com/Chapter12/index.html.

FIGURE 12-5 Netuitive provides predictive analytics that an IT manager can use to model a site’s future behavior.

Know the Provider’s Security Policies and Procedures

226

As discussed throughout this book, many clients are apprehensive about storing their data in the cloud. To reduce these concerns, IT managers should thoroughly understand the provider’s security plans, policies, and procedures. Specifically, a manager should be aware of the provider’s multitenant use, e-commerce processing, employee screening, and encryption policy. He or she should examine the provider’s use of firewalls, intrusion detection, and security mechanisms. These security factors should be defined in the SLA.

Define the Data Privacy Requirements

If a company has specific data-privacy requirements, such as the Health Insurance Portability and Accountability Act (HIPAA) for health care or the Family Educational Rights and Privacy Act (FERPA) for student data, it should ensure that the SLA details the specific requirements.

CASE 12-6 NEW RELIC CLOUD-PERFORMANCE MONITORING

When it comes to cloud-performance monitoring, most managers spend 80 percent of their time monitoring 20 percent of a solution’s code (see Chapter 19 and the Pareto Principle). New Relic, shown in FIGURE 12-6, provides monitoring software that will examine system performance to identify potential bottlenecks. New Relic software supports most common programming languages and can be easily integrated into a site.

Exercise Discuss common bottleneck locations within cloud-based solutions.

Web Resources For more information on New Relic cloud-performance monitoring, visit www.CloudBookContent.com/Chapter12/index.html.

227

FIGURE 12-6 New Relic provides cloud-performance monitoring and bottleneck identification.

Know Specifics About the Economics of the Cloud and Return on Investment

Chapter 16, Evaluating the Cloud’s Business Impact and Economics, examines the financial considerations for moving a solution to the cloud. An IT manager must evaluate the cloud’s impact on capital as well as operational expenses. Managers should prepare a budget that compares the on-site costs to the cloud-based solution costs. Chapter 16 presents several online tools that can help managers produce such budgets.

CASE 12-7 STRANGELOOP SITE OPTIMIZATION

Across the cloud, developers strive for web pages that load in two or three seconds or less. There are a variety of site performance monitoring tools you can use to measure a site’s responsiveness. That’s the easy part. The hard part is making slow pages load faster. Often, that requires a company to take steps such as eliminating or compressing graphics, compressing text, and improving cache utilization. In the age of increasing bandwidth, many web managers may ask,

228

“What’s the big deal about a one- to two-second delay?” Research shows, however, that such delays are why customers log off of websites! Strangeloop, shown in FIGURE 12-7, provides a site-optimizing solution that companies can easily deploy to improve their site’s performance.

FIGURE 12-7 Strangeloop provides site-optimizing solutions that are easily integrated by cloud-based solutions.

From the Strangeloop website, you can evaluate a specific site. For example, FIGURE 12-8 shows a performance report created by Strangeloop.

Exercise Use the Strangeloop site to evaluate a site of your choice. Discuss the insights you gained from the report.

Web Resources For more information on Strangeloop reporting, visit www.CloudBookContent.com/Chapter12/index.html.

229

FIGURE 12-8 A site performance report created by Strangeloop.

Monitor Capacity Planning and Scaling Capabilities

Chapter 19, Application Scalability, examines capacity planning and scalability issues in detail. For SaaS solutions, the cloud-solution provider will scale the site to match user demand. An IT manager, however, must define in advance key response-time metrics the solution must provide and then include those measures within the SLA.

For PaaS and IaaS solutions, the IT manager must initially estimate the solution’s capacity plan, which defines the resources the solution will need to operate satisfactorily. The IT manager should also estimate the site’s potential growth

230

and define, with the help of the solution provider, the plan for scaling the site resources as well as the related costs.

Several sites within the cloud provide system-performance reports that managers can use to measure current performance and the potential system benefit from scaling specific resources.

Monitor Audit-Log Use

To identify potential system bottlenecks, detect errors within the system, and identify system-resource use, the IT manager may examine various system log files. In a PaaS or IaaS solution, the manager can likely turn on the log file reporting that meets his or her needs. For a SaaS solution, the manager should discuss in advance with the cloud service provider the various logs that will be available and the costs of running them, both in terms of dollars and system performance.

CASE 12-8 UPTIME SOFTWARE

Too often, cloud-solution managers do not know that a system error has occurred until a user reports one. With Uptime, IT managers can easily monitor a wide range of servers and produce resource utilization reports similar to that shown in FIGURE 12-9. Companies can download, install, and use a trial version of the Uptime software from the company website.

Exercise Discuss how you would determine a return on investment for system-event notification, such as a system failure.

Web Resources For more information on Uptime, visit www.CloudBookContent.com/Chapter12/index.html.

231

FIGURE 12-9 The Uptime site provides system monitoring and utilization reporting capabilities a site manager can easily implement.

Solution Testing and Validation

Just because a company provides a solution does not mean that the solution is error free. An IT staff using a cloud-based solution must test the solution and periodically audit key processing to confirm that the application is providing correct results. In particular, a cloud-service provider will often perform patch management and version updates. The IT staff should be aware of all system modifications and test accordingly.

CHAPTER SUMMARY

IT managers, by moving a solution to the cloud, shift considerable day-to-day management issues from their IT department to the cloud-solution provider. However, an IT manager must not relinquish the oversight and responsibility for performance and management. Instead, the manager must provide essential oversight of the key system operations. The manager’s key tool for managing the cloud-service provider is the SLA, which should contain specifics about key performance issues, policies and procedures, and clear definitions of all levels of responsibility.

232

KEY TERMS

Load testing

Predictive analytics

CHAPTER REVIEW

1. Discuss key items that should be included in an SLA.

2. Define predictive analytics and discuss how an IT manager might use such analytics.

3. Discuss how an IT manager might use load testing on a site.

4. Define and discuss vendor lock-in and identify steps a company should take to mitigate this risk.

5. With respect to cloud-based solutions, list and discuss 5 to 10 operations or tasks an IT manager should oversee.

233

chapter 13

Migrating to the Cloud FROM A TECHNICAL PERSPECTIVE, an application can be moved to the cloud quickly. There are a myriad of cloud-solution providers who will eagerly assist by giving you instant access to cloud-based servers, data storage, and support. That said, like all IT projects, the process of moving an application to the cloud, or the process of creating and deploying a new cloud application, should be well planned. This chapter examines issues that should be considered before you move an application to the cloud.

Learning Objectives

This chapter examines the process of moving applications to the cloud. By the time you finish this chapter, you will be able to do the following:

• Define requirements for migrating an application to the cloud.

• Describe the importance of backing up data before and after moving an application to the cloud.

• Appreciate the benefit of using experienced consultants to assist with a cloud migration.

• Describe an application in terms of its resource use.

• Define and describe vendor lock-in and discuss ways to avoid it.

• Describe the importance of training employees before, during, and after a cloud migration.

• Describe the importance of establishing a realistic cloud-deployment schedule.

• Discuss key budget factors impacted by the cloud.

• Discuss potential IT governance issues related to the cloud.

• Define and describe cloud bursting.

Define the System Goals and Requirements

234

All IT projects should begin with specific requirements. The process of taking an application to the cloud, known as cloud migration, is no exception. As you begin to define your solution’s requirements, consider the following common issues:

• Data security and privacy requirements

• Site capacity plan—the resources that the application initially needs to operate

• Scalability requirements—the measurable factors that should drive scaling events

• System uptime requirements

• Business continuity and disaster requirements

• Budget requirements

• Operating system and programming language requirements

• Type of cloud—public, private, or hybrid

• Single tenant or multitenant solution requirements

• Data backup requirements

• Client device requirements, such as computer, tablet, or smartphone support

• Training requirements

• Help desk and support requirements

• Governance and auditing requirements

• Open source software requirements (some people believe that open source-based cloud solutions reduce the risk of vendor lock-in)

• Programming API requirements

• Dashboard and reporting requirements

• Client access requirements

• Data export requirements

235

After you define your application requirements, discuss each in detail with potential cloud-solution providers. Make sure you define all of your system requirements clearly within the Service-level agreement (SLA).

CASE 13-1 CLOUDSWITCH CLOUD MIGRATION

Many companies have enterprise-based applications that are widely used by their employees. These applications, therefore, are mission critical. CloudSwitch provides a downloadable application that companies can install within their data center that securely maps the company’s on-site applications to a cloud-based solution in a matter of minutes. In other words, CloudSwitch, shown in FIGURE 13-1, provides a way for companies running Windows or Linux solutions to migrate quickly to the cloud. The CloudSwitch migration program requires no programming or development. Additionally, CloudSwitch provides a suite of cloud-management tools that the IT staff can use to manage the solution after it moves to the cloud.

Exercise Most IT projects fail or come in over budget. Discuss steps you would take to reduce the risk of failure of a cloud-migration project.

Web Resources For more information on CloudSwitch, visit www.CloudBookContent.com/Chapter13/index.html.

FIGURE 13-1 CloudSwitch provides tools to migrate applications to the cloud and then to manage the application within the cloud.

236

Protect Your Existing Data

Before you begin your application migration to a cloud provider, make sure that you back up your data so that you can revert, if necessary, to a known restore point. Then, be sure that you and the provider agree to the backup procedures that will be employed after they take control of your data. As discussed, it is easy to move a solution to a cloud provider. You need to ensure that it is equally easy to move out of the cloud if necessary

Furthermore, if your company has specific privacy requirements, such as those of the Health Insurance Privacy and Portability Act (HIPAA) for health care, or of the Family Educational Rights and Privacy Act (FERPA) for education, have your provider state explicitly, in writing, its data privacy policies and procedures.

Use an Experienced Cloud Consultant

Moving a solution to the cloud is a learning experience. The process has many options and a wide range of potential pitfalls. Many companies provide consultants who are experienced in the cloud migration process. Before you begin your application’s migration to the cloud, you should consider hiring a consultant. In most cases, you will find that this saves you money in the end by helping you avoid costly mistakes.

CASE 13-2 3TERA CLOUD SOLUTIONS

Formerly know as Computer Associates, CA Technologies provides a wide range of services and solutions to companies migrating to the cloud. To drive its cloud offerings, CA Technologies acquired 3Tera, a company that helps businesses move solutions to public and private clouds using a graphical user interface (GUI) tool. As shown in FIGURE 13-2, the 3Tera website offers a turnkey cloud-computing platform, driven by the company’s AppLogic software, which allows large (enterprise) or small companies to migrate to the cloud through the use of the 3Tera virtual appliance, a device that behaves very much like a virtual machine. As user demand for an application grows, 3Tera can easily scale solutions.

Exercise Visit the 3Tera site and research the company’s virtual appliance. Discuss how the appliance differs from a server.

Web Resources For more information on 3Tera, visit www.CloudBookContent.com/Chapter13/index.html.

237

FIGURE 13-2 3Tera supports cloud migration through the use of its AppLogic software.

Know Your Application’s Current Characteristics

Before you move your application to the cloud where you might face scaling issues, be sure that you monitor your application to identify its key performance indicators:

• Demand periods: Does the application have periods of high or low demand, such as 8 A.M. to 5 P.M.?

• Average users: How many users typically use the system simultaneously?

• Disk-storage requirements: What are the application’s typical disk-storage needs? Are the files permanent or temporary? Are most operations read or write operations?

• Database-storage requirements: What are the application’s database requirements? Is the database replicated in real time? What is the application’s database read/write ratio?

• RAM use: What is the application’s range of physical and virtual memory use?

• Bandwidth consumption: What is the application’s bandwidth requirement?

• Caching: How does the application currently cache data?

Remember Vendor Lock-In

238

Vendor lock-in occurs when a vendor makes it difficult for a company to switch to another provider, even if the vendor has failed to fulfill the SLA. This lock-in may occur because the vendor is unable to export data completely or because the vendor provides services its competitors do not. A cloud-service provider should make it easy for clients to move to another provider in the event that the provider fails to meet one or more of the SLA requirements.

In the case of a Platform as a Service (PaaS) or Infrastructure as a Service (IaaS) provider, moving a company’s applications and data should be relatively straightforward. Moving from a Software as a Service (SaaS) provider, however, may prove to be more difficult because of the specific capabilities of the vendor, upon which the company relies. To reduce the risk of vendor lock-in, many companies seek providers who support “open” solutions, which use open source software such as Linux, PHP, and MySQL.

CASE 13-3 KAYAKO HELP DESK SOLUTIONS

Change-management consultants often cite the integration of a trained help desk staff as key to an application’s successful integration. Kayako, shown in FIGURE 13-3, provides a variety of key help desk tools that a company should consider before migrating a solution to the cloud. The following are features of the Kayako software:

• Support ticket management

• Ticket escalation support

• Live support desk chat software

• Voice over Internet protocol (VoIP) phone integration

• Remote computer access

Exercise Discuss a company’s help desk requirements for SaaS, PaaS, and IaaS cloud integrations.

Web Resources For more information on Kayako help solutions, visit www.CloudBookContent.com/Chapter13/index.html.

239

FIGURE 13-3 Kayako provides cost-effective help desk tools to support software deployments.

Define Your Training Requirements

To reduce employee stress during an application’s migration to the cloud and to increase employee productivity with the cloud-based tools, you should consider training before, during, and after the cloud migration. As you define your training requirements, consider the following:

• Employee preparedness for the SaaS solution

• Developer training on the solution application program interfaces (APIs)

• Administrator training for cloud-based operations

• IT-audit group training for corporate governance issues and internal controls

• Help desk support preparedness training

• Business continuity and disaster preparedness training

Given the cloud’s cost-effective ability to deploy solutions, training may prove to be one of the most expensive aspects of the company’s cloud migration.

CASE 13-4 RIGHTSCALE CLOUD APPLICATION MANAGEMENT

240

RightScale, shown in FIGURE 13-4, provides a fully automated cloud-management platform that lets companies deploy cloud-based solutions across one or more clouds. RightScale provides its cloud-management software as a SaaS solution that lets customers deploy and manage their solutions quickly. The RightScale website also features valuable videos, white papers, and forums that focus on cloud computing.

Exercise Discuss a scenario within which a company might have to manage multiple cloud solutions.

Web Resources For more information on RightScale, visit www.CloudBookContent.com/Chapter13/index.html.

FIGURE 13-4 RightScale provides support for application deployment to one or more clouds.

Establish a Realistic Deployment Schedule

Cloud-solution providers can quickly deploy solutions. Despite that, you should set a deployment schedule that provides sufficient time for training, testing, and benchmarking. Many organizations, when moving a new application to the cloud for the first time, will establish a beta-like release schedule that offers employees a prerelease opportunity to interact with the software and provide feedback. Furthermore, the testing period may provide time for the company to establish early system-performance benchmarks.

241

Review the Budget Factors

Chapter 16, Evaluating the Cloud’s Business Impact and Economics, examines the steps you should perform to determine the return on investment (ROI) and total cost of ownership for a cloud-based solution. In Chapter 16, you will learn that the cloud’s pay-for-use model significantly reduces a company’s capital expenditures compared with what would normally be required to fund a data center. Furthermore, you will learn that because of a cloud provider’s economies of scale, the providers can normally offer solutions at lower cost than a company would normally pay for the same on-site solution.

Before you move to the cloud, you should consider key budget factors, which may include the following:

• Current data center costs breakdown, including the following:

• Rent

• Power and air conditioning

• Colocation costs

• Server costs

• Data storage costs

• Network costs

• Current payroll costs for existing site administrators and projections for possible staff reduction opportunities

• Current costs for software licenses that may shift to the cloud, and the (lower) projected cloud-based costs for the software

• Current payroll costs for patch management and software version updates

• Current hardware maintenance costs

In Chapter 16, you will find many cloud-based tools to help you analyze the cloud’s potential economic impact on your company.

CASE 13-5 GOGRID CLOUD HOSTING

GoGrid is a very large IaaS solution provider that provides scalable solutions to thousands of customers. At GoGrid customers can acquire on-demand solutions

242

for physical, virtual, or hybrid servers at cost-effective pricing levels. Additionally, GoGrid offers solutions for load balancing, colocation, and cloud-based data storage.

Exercise Discuss the pros and cons of using a large cloud provider instead of a smaller provider.

Web Resources For more information on GoGrid, visit www.CloudBookContent.com/Chapter13/index.html.

Identify IT Governance Issues

Chapter 15, Governing the Cloud, examines the IT governance process and how the cloud extends the governance requirements for your IT staff. Before you migrate an application to the cloud, consider the following governance requirements:

• Identify how the cloud solution aligns with the company’s business strategy.

• Identify and define the internal and external controls the company will need within the application, and at what control points, in order to validate that the application is performing correctly and is free from possible external modification.

• Describe risks the IT staff is trying to mitigate and ways the cloud can help.

• Describe who within the company will have access to data within the cloud and how they will get it.

• Determine who within the cloud provider’s organization will have access to data within the cloud and how they will get it.

• Discover how the cloud provider logs errors and system events and how you can access them.

• Determine how and when the cloud provider performs system updates and patches.

• Discover which performance-monitoring tools are available for your use.

Understanding Cloud Bursting

One of the cloud’s biggest advantages is its ability to scale on the fly to meet user demand. Some companies that run on-site applications have started to use the

243

cloud as a way to scale their applications on demand. When the on-site application encounters increased user demand, the application expands into the cloud through a process called cloud bursting, as shown in FIGURE 13-5. When the user demand declines, the application leaves the cloud. Cloud bursting is most common for seasonal demand, or event-driven demand, such as the load on Google Maps when an earthquake or other natural disaster occurs.

FIGURE 13-5 Cloud bursting lets a company extend an on-site application into the cloud to scale temporarily to meet user demand.

CHAPTER SUMMARY

An application can be moved to the cloud quickly—cloud-solution providers are eager to assist with cloud-based servers, data storage, and support. In other words, the technical aspects of moving a solution to the cloud are not difficult. The challenge, for most businesses, is to ensure that the company is properly trained, has established policies and procedures for cloud operations, and has put in place necessary governance requirements. As with all IT projects, proper planning and defining the requirements is essential before a company begins moving an application to the cloud or creating and deploying a new cloud application.

KEY TERMS

Cloud bursting

Cloud migration

Vendor lock-in

CHAPTER REVIEW

244

1. List and describe common system requirements one should consider before moving an application to the cloud.

2. Discuss why a company should consider using a consultant to oversee a cloud migration and list specific skills you would expect the consultant to have.

3. List and discuss resource utilization characteristics one should monitor for an application prior to moving the application to the cloud.

4. List possible training requirements for an SaaS solution integration, a PaaS application migration, and an IaaS application migration.

5. List and describe budget considerations one should evaluate before moving an application to the cloud.

6. List and describe IT governance considerations one should evaluate before moving an application to the cloud.

7. Define and describe cloud bursting.

245

chapter 14

Mobile Cloud Computing IF YOU ASK A roomful of cloud computing experts whether the cloud is driving the growth of mobile computing or mobile computing is driving the growth of the cloud, the results will be mixed. In any case, within a few years, mobile computing will be a trillion-dollar-a-year business. This chapter examines various aspects of mobile computing and the underlying use of the cloud.

Learning Objectives

This chapter examines mobile computing in the cloud. By the time you finish this chapter, you will be able to do the following:

• Describe the evolution of mobile computing.

• Discuss the different generations of cell phones.

• Discuss the ecosystem that comprises the mobile web.

• Describe the roles of phone network operators, transcoders, and proxies.

• Compare and contrast web pages, applications, and widgets.

• Discuss the importance of HTML5 with respect to mobile development.

• Describe mobile development considerations.

The Evolution of Mobile Computing

If you list inventions that have had the biggest impact on society, from the automobile to airplanes to television and the telephone, the cell phone may (or likely eventually will) top the list. It is important to note that in less than 30 years the cell phone has evolved from a heavy cumbersome device, as shown in FIGURE 14-1, to a small handheld device with more than 1 billion users. Today, the liveliest sector of the mobile phone market is “smartphones,” which integrate computing capabilities, and often a web browser, which allows the phones to provide a wide range of solutions. Beyond traditional phone calls, users use smartphones to do the following:

246

FIGURE 14-1 In less than 30 years, the cell phone has gone from a cumbersome device used by early adopters to a handheld device used worldwide.

• Browse websites, including Google, Facebook, eBay, and more

• Place face-to-face video calls to phones and computers

• Perform GPS-based navigational operations

• Exchange text messages

• Perform e-commerce operations

• Run a myriad of applications (apps)

Understanding the G in 3G and 4G

When you discuss phone capabilities, you will hear terms such as 3G and 4G. In the simplest sense, the G stands for generation. A 4G phone, therefore, is a fourth-generation phone. Although there are standards with respect to the potential speeds associated with each generation, the speed of most devices today depends upon the location (some cities support faster speeds), the provider network, and the phone technology, as well as whether the user is moving or stationary. TABLE 14-1 describes the key generational attributes.

TABLE 14-1 THE COMMON GENERATIONS OF CELL PHONES

247

Generation Capability

1G First-generation phones supported analog communication.

2G Second-generation phones introduced digital communication.

3G Third-generation phones supported faster speeds, which, in turn, made web

browsing and e-mail readily available.

4G Fourth-generation phones support near Wi-Fi speed, which enables rich media

and video streaming.

The Mobile Cloud Ecosystem

An ecosystem is an environment that consists of living and nonliving things with which one interacts. Many cloud-based companies use the term ecosystem to describe the user’s environment. To that end, you might describe the mobile-cloud ecosystem as consisting of the following:

• Phone class, which may be voice or face-to-face

• Web browsing

• Apps and widgets

248

• Voice commands and voice recognition

• Display screens

• Transmission speeds for upload and download operations

• Keyboard interface

• Touchscreens

The mobile cloud consists of apps and web pages that originate from sites within the cloud from which users download, or with which they interact via a mobile device. If you are creating a mobile solution, you should consider how your solution interacts with or supports the various mobile-device ecosystem components.

Introducing the Mobile Players

To understand mobile data communication, you should understand the players. To start, the operator, or network, is the company that makes the mobile network available. Within the United States, mobile operators include Verizon and AT&T. In the simplest sense, the operator owns the cell tower through which the data communication occurs. Most operators will provide internal groups that support developers in bringing mobile solutions to the market.

Within most mobile networks, operators will place special servers, called transcoders, which examine the content a mobile device is downloading from a website. The transcoder, in turn, may change the document content, such as changing a PNG graphic to a GIF graphic to improve the download performance or device display. If you are developing mobile content, you must be aware of how the transcoder may change the content. FIGURE 14-2, for example, shows how a transcoder (in this case a Google transcoder) might modify the content of a website.

Unfortunately, standards for transcoders are still being developed. As a result, you may see differences, in some cases considerable ones, among the content produced by different transcoders.

Many operators may include proxy servers (proxies) which perform operations on behalf of a device. By serving as an intermediary, a proxy provides a level of security that separates the device from the web server with which the device is interacting.

249

FIGURE 14-2 Within a mobile network, a transcoder may modify web content to a form and layout more suitable for a mobile device.

Pages, Apps, and Widgets

250

When developers build mobile solutions, they can approach their solution in one of three ways. First, they can build a web page, ideally targeted for a mobile display. As users browse the Web using mobile browsers built into their phones, the contents of the web page appear.

Second, developers can build an app, which typically is a device-specific program that users download and install (either free or for a price) onto a device. The app, in turn, displays an icon on the device, which users click to start the app. FIGURE 14-3 illustrates a page from which users can access hundreds of thousands of apps that have been created for the iPhone.

Third, developers can create a widget, which is much like an app that the user downloads and installs to his or her mobile device. A widget differs from an app in that the widget is always active. A clock widget’s icon, for example, might constantly display the current time, a weather widget’s icon, in turn, might display changing weather conditions, and a map widget may constantly update its icon to show the user’s location. In other words, a widget is always running and may possibly be communicating. Having many active widgets at one time might affect a device’s performance.

FIGURE 14-3 From business apps, to games, to education, there are hundreds of thousands of apps available for the iPhone.

CASE 14-1 W3C MOBILE PAGE CHECKER

251

Web developers should be familiar with the W3C website and its outstanding development tutorials and tools. When it comes to malformed HTML tags, mobile web browsers, because of their compact size (code size), tend not to be as forgiving as desktop browsers. Before you launch your mobile pages, you should validate your code using the S3C Mobile Checker at www.w3c.org/mobile, as shown in FIGURE 14-4.

Within the W3C Mobile Checker site, you simply enter the URL (web address) of the page you want to examine. The W3C Mobile Checker, in turn, analyzes the page’s HTML and displays a summary similar to the one shown in FIGURE 14-5.

Exercise Select several traditional web or mobile web pages you commonly visit and use the W3C Mobile Checker to evaluate the pages. Report your findings.

Web Resources For more information on the W3C Mobile Checker, visit www.CloudBookContent.com/Chapter14/index.html.

FIGURE 14-4 The W3C Mobile Checker provides warnings and error messages that developers can use to improve the quality of their mobile web pages.

252

FIGURE 14-5 A page summary created by the W3C Mobile Checker.

Revisiting the Role of HTML5

HTML is the markup language that developers use to build pages for display on the Web and mobile web. When a user browses the Web, either with a computer or mobile device, a web browser downloads and interprets the HTML tags to build the display page the user sees. FIGURE 14-6, for example, shows a simple HTML page and its resultant display within a web page and mobile device.

HTML5 is the fifth major release of HTML. HTML5 is important because developers can use it to create multimedia pages similar to what they previously created using Flash. Unlike Flash-based pages, which handheld browsers could not display, HTML5 multimedia pages display on all devices. In this way, HTML5 opens a vast new area of development for mobile devices.

253

FIGURE 14-6 An HTML markup file and its display within a web browser and mobile device.

CASE 14-2 CISCO IBSG PRESENTATION: “WHEN MOBILE AND CLOUD COLLIDE”

Cisco is one of the key network solution companies driving the infrastructure upon which the cloud resides. Within Cisco, the Internet Business Solutions Group (IBSG) studied mobile solutions and their use of the cloud. The group created five key predictions, which they titled “When Mobile and Cloud Collide.” You can view the presentation from the Web Resources link below.

Exercise Discuss whether you believe the cloud is driving mobile or mobile is driving the cloud.

Web Resources For more information on the IBSG mobile cloud predictions, visit www.CloudBookContent.com/Chapter14/index.html.

Mobile Development Considerations

Chapter 18, Coding Cloud-Based Applications, looks at the details of creating a cloud application—it is the chapter for coders and developers. Many people play different roles in the development of a mobile solution (project manager, sales and marketing, technical support, coder, tester, and more). If you work on a mobile solution, remember the following development considerations:

• The mobile web is not the traditional web: You should not expect to use your traditional web pages as mobile solutions. You should optimize your web solutions and then optimize your mobile solutions.

254

• Fast is good: Mobile data communication is still slower than most computer-based data communication solutions. As such, you should optimize your mobile web layout and design to maximize download performance.

• Remember your goals and requirements: As you design your mobile solutions, keep your original goals and requirements in mind to ensure that your solution matches your business strategy.

• You cannot support everything: Pick your largest market segment (or device) and focus your initial efforts there.

• Do not treat mobile content as an afterthought; create, do not convert, mobile content: Do not simply convert your traditional web content for use on the mobile web. Instead, design your mobile content for optimal performance and market impact.

• Handle different display sizes differently: Mobile applications should query the browser or device to determine the supported display size and then provide matching display content dynamically.

CASE 14-3 WEBKIT OPEN SOURCE BROWSER

As you drill down through the specifics of mobile web browsers, you will find that many run the WebKit open source browser. You can learn more about this browser and download the source code at the WebKit website, www.webkit.org, shown in FIGURE 14-7.

Exercise Research several commonly used phones (based on market share). Indicate whether the phones use the WebKit open source browser.

Web Resources For more information on the WebKit open source browser, visit www.CloudBookContent.com/Chapter14/index.html.

255

FIGURE 14-7 The WebKit open source browser provides the engine for many handheld device browsers.

CASE 14-4 MOBIREADY PAGE CHECKER

Developers will often customize web pages for mobile delivery. As you develop your pages, you should test their content against the mobiReady page checker, shown in FIGURE 14-8. As you enter a URL on the mobiReady page, the site will evaluate your page content and display a detailed report, similar to that shown in FIGURE 14-9. Based on the report feedback, you can adjust your page components.

Exercise Select several traditional and mobile web pages that you use regularly. Use the mobiReady readiness test to examine the sites. Report your findings.

Web Resources For more information on the mobiReady site checker, visit www.CloudBookContent.com/Chapter14/index.html.

256

FIGURE 14-8 The mobiReady page checker examines key aspects of mobile page content.

FIGURE 14-9 This report by mobiReady indicates not only that the site will display nicely on a mobile phone, but also that there are areas that need improvement.

CASE 14-5 THE “.MOBI” TOP-LEVEL DOMAIN

257

Developers will often create separate web pages for mobile-device display. To direct users to those pages, developers have several options. First, they can have their web software detect the device type, such as a computer or phone, and then download the appropriate pages dynamically. Second, many developers will place the letter “m” before their site domain name (creating a subdomain), such as m.somesite.com or even mobile.somesite.com. Third, just as sites use the domain types.com, .org, and .edu, many mobile-based sites now use the “.mobi” domain type, such as www.somesite.mobi.

Developers can purchase a .mobi-based domain name at most domain name registry sites.

Exercise Assume you are launching a mobile web page. Discuss how you might make your HTML pages available to site users.

Web Resources For more information on the .mobi domain type, visit www.CloudBookContent.com/Chapter14/index.html.

CHAPTER SUMMARY

It is not clear whether mobile computing is driving the growth of the cloud, or vice versa. Either way, the use of the cloud and the use of mobile devices continues to grow exponentially. This chapter examined various mobile-computing factors and their underlying impact on cloud-based solutions. Today, most businesses understand the need to have a mobile-computing presence. Many of the early players, however, came to the cloud with a conversion of their traditional web-based content. To maximize the user experience, developers must design solutions specifically within the mobile ecosystem in mind. Whether a solution is a mobile web page, an app, or a widget, many of these solutions will utilize underlying cloud-based resources.

KEY TERMS

App

Ecosystem

Mobile cloud

Proxy

Transcoder

Widget

258

CHAPTER REVIEW

1. Define and describe the mobile web.

2. Describe the different generations of cell phones.

3. Describe how smartphones differ from ordinary cell phones.

4. Select a mobile or traditional website that interests you. Describe the site in terms of the ecosystem that makes up the site’s user experience.

5. Describe how web pages differ from apps and how apps differ from widgets.

6. Discuss why developers say that HTML5 will drive mobile solutions.

7. Describe some development best practices for designing solutions for the mobile cloud.

259

chapter 15

Governing the Cloud FOLLOWING THE DOT-COM CRASH and corporate scandals such as Enron, Tyco, and WorldCom, pressures emerged from the government, shareholders, and numerous other stakeholders for companies to increase their financial oversight to reduce opportunity for fraud and to restore confidence in corporate financial reporting. The need for better corporate governance became an issue for all public companies. Because most of the data that drive corporate financial reports originate within data centers, the new era of governance has brought greater visibility and a greater need for controls to IT departments.

Learning Objectives

This chapter examines corporate and IT governance and the new challenges introduced by cloud migrations. By the time you finish this chapter, you will be able to do the following:

• Define and describe corporate governance.

• Define business strategy and provide examples of strategic goals.

• Discuss how companies use the Capability Maturity Model to measure their current capabilities.

• Define and describe internal controls.

• Define and describe IT governance.

• Discuss the various types of governance a company must perform.

• Discuss the role of Sarbanes-Oxley in corporate IT governance.

• Discuss factors to consider when developing governance procedures for the cloud.

Understanding Corporate Governance

Corporate governance combines the processes, policies, laws, and controls that affect how a company operates. The governance guides the company’s decision-making and administrative processes. Corporate governance, as shown in FIGURE 15-1, is complex and involves people, processes, systems, and more.

260

FIGURE 15-1 Components of the corporate governance process.

CASE 15-1 ORGANIZATION FOR ECONOMIC COOPERATION AND DEVELOPMENT PRINCIPLES FOR CORPORATE DEVELOPMENT

In 1999, the Organization for Economic Cooperation and Development (OECD) published the “Principles for Corporate Development”. It has been revised to address corporate governance issues. You should take time to read this document.

Exercise Read the “Principles for Corporate Development” and discuss the key factors that guide the principles of corporate governance; that is, discuss groups that are affected by the principles.

Web Resources For more information on the “Principles for Corporate Development”, visit www.CloudBookContent.com/Chapter15/index.html.

Understanding Business Strategy

A strategy is a plan of action designed to achieve one or more particular goals. A business strategy comprises the plans a company executes to achieve business goals, which may include the following:

261

• Maximizing shareholder value

• Reducing or managing costs to maximize profits

• Providing a high-quality work environment to attract and retain employees

• Maintaining a high degree of customer satisfaction

• Supporting environmentally friendly operations

• Developing a sustainable, competitive advantage

• Providing accurate reporting of company operations

Measure What Is Important

After a business defines its strategic plans, it must determine ways to measure progress toward each goal. The initial measurement will establish a baseline for the company’s current level of operations, and future measurements will establish the company’s level of improvement.

CASE 15-2 CAPABILITY MATURITY MODEL

As companies begin to govern IT operations, they must identify their current level of capability. The company might apply measures with respect to software development, security, operations, user support, and more.

The Capability Maturity Model (CMM) was developed at Carnegie Mellon University to help businesses measure and improve their current capabilities. Over time, as a business matures and its skills improve, a company’s CMM scores should increase. As scores increase, so too should the predictability and reliability of the business.

To help businesses integrate the CMM process, Carnegie Mellon created the Capability Maturity Model Integration (CMMI) process. In fact, the CMMI group has defined processes for common industry activities, such as acquisitions, security, software design, and system design.

Within CMM, there are five levels of maturity, as shown in TABLE 15-1.

A company evaluates its processes using the levels to define its current capabilities and then sets goals for moving the processes to the next level.

262

Exercise Select an organization that you know or one where you can interview a manager. Identify the organization’s key operational tasks. Using the CMM, rate the company’s current capabilities.

Web Resources For more information on the CMM, visit www.CloudBookContent.com/Chapter15/index.html.

TABLE 15-1 MATURITY LEVELS WHITHIN THE CMM

Level Description Characteristics

1 Initial Processes are typically changing. Those that are static are likely

undocumented. Many operations are reactive.

2 Repeatable Some processes are repeatable, ideally with consistent results. Many

defined systems are still lacking.

3 Defined Many processes are now static and documented. Some processes are

under evaluation for improvement opportunities.

4 Managed Most processes are controlled and adjusted to improve quality.

5 Optimized Focus is on continuous improvement of existing processes.

Inspect What You Expect

Once a company defines its business goals and metrics, it must inspect the underlying factors that drive business results. In other words, rather than take its financials at face value, the company should examine the sources from which the values are derived to ensure that each is accurate and free from fraud. This inspection process is known as auditing.

The auditing process can be internal (done by the company) or external (done by a third party), as shown in FIGURE 15-2.

Understanding Internal Controls

263

The auditing process will identify key stages within processes that the auditor should inspect. To support the process, the company should put in place its own internal controls (policies and procedures) at each of these key stages, as shown in FIGURE 15-3.

FIGURE 15-2 Companies must audit the source of the values they measure and report using internal or external auditors.

FIGURE 15-3 Internal controls allow a company auditor to inspect data values at key stages.

264

CASE 15-3 COMMITTEE OF SPONSORING ORGANIZATIONS OF THE TREADWAY COMMISSION

A key aspect of corporate governance is internal controls. In general, an internal control is a process that provides assurance that the objectives of a company’s operational goals and legal compliance requirements are being met, as well as confidence in the accuracy of the reporting of operations. The Committee of Sponsoring Organizations of the Treadway Commission (COSO) has defined a model that companies can use to evaluate their internal controls.

The original COSO model’s framework consisted of five key components, defined in TABLE 15-2.

To meet the demand for companies to address risk management, the COSO framework has been expanded to support eight components, as listed in TABLE 15-3.

To download a variety of documents focused on internal controls and risk management, or to order publications available for purchase, visit www.coso.org, as shown in FIGURE 15-4.

Exercise Select a company with which you are familiar. List five potential internal controls you would expect to see in place within the company’s IT group.

Web Resources For more information on COSO and internal controls, visit www.CloudBookContent.com/Chapter15/index.html.

TABLE 15-2 THE ORIGINAL FIVE KEY COMPONENTS OF THE COSO MODEL

COSO Component Description

Control environment The organization creates an environment supportive of controls, which

includes ethical operations, managerial integrity, and compliant

operations.

Risk assessment Opportunities and existing processes are evaluated with respect to

potential risks and ways to mitigate the risks.

265

Control activities Business operations include control activities such as approvals,

authorizations, reviews, and audits.

Information and

communication

Reliable and truthful communication flows up, down, and across the

organization, as well as out from it.

Monitoring Existing processes and internal controls are monitored on a consistent

basis.

TABLE 15-3 THE COMPONENTS OF THE EXPANDED COSO MODEL

COSO Component Description

Internal environment The organization creates an environment supportive of controls, which

includes ethical operations, managerial integrity, and compliant

operations.

Objective setting The business establishes defined and measurable objectives for

operations.

Event identification The business watches for, recognizes, and responds to events that will

impact operations.

Risk assessment Opportunities and existing processes are evaluated with respect to

potential risks and ways to mitigate the risks.

Risk response Management accepts risks based upon a consistent approach to risk

tolerance.

Control activities Business operations include control activities such as approvals,

authorizations, reviews, and audits.

266

Information and

communication

Reliable and truthful communication flows up, down, and across the

organization as well as out from it.

Monitoring Existing processes and internal controls are monitored on a consistent

basis.

FIGURE 15-4 The COSO website provides documents on internal controls and risk management. You can also order publications through the website.

CASE 15-4 CONTROL OBJECTIVES FOR INFORMATION AND RELATED TECHNOLOGY

Control Objectives for Information and Related Technology (COBIT) is an IT governance framework defined by the Information Systems Audit Control Association (ISACA). COBIT defines dozens of processes an IT manager and staff can use to plan, acquire, implement, deliver, support, monitor, and evaluate IT solutions. COBIT, whose first version was released in 1996, has evolved to support current IT capabilities and governance needs. COBIT is used by small business owners to structure their IT processes and by larger companies and organizations (public and governmental) to align IT and business strategies to conform with regulations such as Sarbanes-Oxley and to implement IT best practices. You can purchase the COBIT guide from the ISACA website.

267

Exercise COBIT defines processes a company’s IT staff should consider when performing common operations. Assume you must write the COBIT processes for selection of a cloud provider. List the processes you would recommend.

Web Resources For more information on COBIT, visit www.CloudBookContent.com/Chapter15/index.html.

Extending Governance to Information Technology

Within most companies, the data from which the company creates its reports originates from data within the company’s IT department. As you might expect, much of corporate governance is based upon IT-related factors.

Furthermore, over the past decades, companies have invested heavily in IT solutions that drive a variety of company-wide (enterprise) applications. Unfortunately, many IT projects fail due to poor management, incorrect requirements, or misalignment of the IT solution with the company strategy. Put simply, companies make large investments in IT solutions; to succeed, the projects must be governed.

IT Governance is a subset of corporate governance that includes the policies, procedures, and controls that relate to IT use and deployment, performance, return on investment, and risk mitigation. As shown in FIGURE 15-5, IT governance is one of many key types of governance a company must consider.

FIGURE 15-5 IT governance is one of many key types of governance a company must consider.

268

CASE 15-5 SARBANES-OXLEY

In 2002, in the aftermath of the dot-com crash and corporate scandals that included Enron, Tyco, and WorldCom, Senator Paul Sarbanes of Maryland and Representative Michael Oxley of Ohio cosponsored a Senate bill entitled the Public Company Accounting Reform and Investor Protection Act and a House bill entitled the Corporate Auditing, Accountability, and Responsibility Act. Once passed, the law became known as Sarbanes-Oxley.

The law’s goal was to improve confidence in the truthfulness of company reporting by requiring greater transparency and controls of the data that companies report. The law put in place criminal penalties for corporate officers who violated or failed to comply with the law.

As you would expect, Sarbanes-Oxley had a large impact on financial groups within an organization who report a company’s financials. The law also had a large impact on corporate IT groups, who had to implement auditable controls on the processes, data, and applications that produced the information that drove the financial reports.

In general, Sarbanes-Oxley was a major catalyst in driving the origin of IT governance and the related processes. For more information on Sarbanes-Oxley, download a copy of the act shown in FIGURE 15-6.

269

FIGURE 15-6 Individuals responsible for IT governance of an organization should review the complete Sarbanes-Oxley Act of 2002, which is available on the Web.

Exercise Using the Web, research Sarbanes-Oxley. Provide a list of five reasons why Sarbanes-Oxley should remain in effect and five reasons why it should be abolished.

Web Resources For more information on Sarbanes-Oxley, visit www.CloudBookContent.com/Chapter15/index.html.

CASE 15-6 IT GOVERNANCE INSTITUTE

The IT Governance Institute (ITGI) was formed in 1998 to assist businesses in aligning IT solutions with business strategies. The institute conducts research on the global practices and perceptions of IT governance. The institute makes many of its best practices, case studies, and research papers available for sale or download from its website, as shown in FIGURE 15-7.

270

Exercise Assume you must make a presentation on IT governance to a company’s board of directors. Prepare a 10-slide PowerPoint presentation that introduces the key aspects of IT governance.

Web Resources For more information on the ITGI, visit www.CloudBookContent.com/Chapter15/index.html.

FIGURE 15-7 You can find a wide range of research articles on IT governance at the ITGI website.

Cloud Computing Governance

When a company moves to the cloud, the company must further extend its IT governance. First and foremost, the company must ensure that on-site and within-the-cloud solutions align with the company’s business strategies. If the IT resource development and deployment does not align with company strategies, the IT initiatives are destined to fail. Then, the company must govern the cloud deployment. That is, the company must create policies, procedures, and controls that not only ensure strategic alignment, but also provide confidence in the accuracy and security of the cloud-based solutions.

271

A key place to begin the cloud-governance process is with the service-level agreement (SLA). Specific questions to consider with respect to the agreement include the following:

• Who within the company can access the service?

• Who within the cloud provider can access the service?

• What can those who can access the service do?

• Is the solution multitenant?

• How is the service secured?

• How is the service replicated or colocated?

• How can the service be tested and validated?

• What is the service uptime?

• How and when is the service maintained?

• What controls can be implemented and at what stages of the service?

• How are errors and exceptions logged?

• How can performance be monitored?

• What is the upgrading and versioning process?

• What auditing support is provided?

CASE 15-7 CLOUDAUDIT AUTOMATED AUDIT ASSERTION, ASSESSMENT, AND ASSURANCE API (CODENAME A6)

In the future, many cloud service providers will offer automated auditing capabilities that companies can use as part of their cloud-governance procedures. The CloudAudit/A6 working group consists of cloud-compliance administrators, developers, security personnel, auditors, and others. The group’s goal is to develop an application program interface (API) that developers can use and cloud service providers will support, to allow the developers to monitor key cloud issues.

For more information on CloudAudit/A6, visit the cloudaudit.org website shown in FIGURE 15-8.

272

Exercise Discuss the importance of having audit capabilities for cloud-based solutions.

Web Resources For more information on CloudAudit/A6, visit www.CloudBookContent.com/Chapter15/index.html.

FIGURE 15-8 The CloudAudit/A6 working group is defining an API that developers will use to automate the auditing of key cloud operations.

CHAPTER SUMMARY

After the dot-com crash and corporate scandals such as Enron, Tyco, and WorldCom, businesses were pressured by the government, shareholders, and various other stakeholders to increase their financial oversight to reduce opportunity for fraud and to restore confidence in financial reporting. As a result, corporate governance became an issue for all public companies. Because IT departments create and store most of the data that drive corporate financial reports, the new era of governance has brought greater visibility and a greater need for controls to IT departments. IT governance consists of the policies and procedures the IT staff uses to control data and applications within a data center. With the advent of cloud-based solutions, IT governance now extends to the cloud.

KEY TERMS

273

Auditing

Business strategy

Corporate governance

Internal control

IT governance

CHAPTER REVIEW

1. Define corporate governance.

2. Discuss the events that led up to the need for increased corporate governance.

3. Define business strategy. List five possible business strategies.

4. Discuss the purpose of the Capability Maturity Model.

5. Define auditing.

6. Define internal control and provide an example of a control.

7. Discuss the role Sarbanes-Oxley has played with respect to corporate governance.

8. Define IT governance.

9. List factors one should consider with respect to governing the cloud.

274

chapter 16

Evaluating the Cloud’s Business Impact an

d Economics SO FAR, YOU HAVE learned that the cloud is bringing with it new business models and economics. Large companies are saving costs, reducing staff, and improving system scalability by moving from on-site data centers to the cloud. Small companies are leveraging pay-on-demand models to “right-size” their computing needs quickly and cost effectively. The cloud business model and its economic opportunities for all businesses, large and small, is the subject of this chapter.

Learning Objectives

This chapter examines the impact of the cloud business model on businesses and the resulting economic opportunities. By the time you finish this chapter, you will be able to do the following:

• Discuss the total cost of ownership for an IT solution.

• Compare and contrast the capital expenses and operational expenses of an IT solution.

• Describe supply-side savings made available through large-scale, cloud-based data centers.

• Describe and discuss the efficiencies gained to providers through multitenant applications.

• Describe and discuss the “right-sizing” process.

• Identify the primary costs of a data center.

• Describe how Moore’s law relates to the cloud.

CASE 16-1 CLOUD ECONOMICS

Economics is the study of the production, distribution, and consumption of goods and services. One of the best overviews of cloud economics, published in November 2010, was written by two employees at Microsoft, Rolf Harms and Michael Yamartino. The document provides an overview of the cloud, a historical

275

perspective, and an easy-to-follow discussion of its impact on business (see FIGURE 16-1).

Exercise Select an industry-changing event in history, such as the automobile assembly line, the first commercial airline flight, or the advent of radio or television, and compare the rate of adoption, societal impact, and economic impact with that of the cloud.

Web References For more information on the Microsoft “Economics of the Cloud” paper, visit www.CloudBookContent.com/Chapter16/index.html.

FIGURE 16-1 The authors of an influential white paper on the economics of the cloud compare the current state of cloud computing with the early days of “horseless carriages,” when no one could predict how the modern automobile industry would evolve.

Business Economics 101

To understand the business and economics impact of the cloud, first you should understand several key terms. The following sections examine key business concepts and their impact associated with the cloud.

276

Total Cost of Ownership

Computer hardware and software have associated direct and indirect costs. For example, when you purchase a network-attached disk drive, you incur the direct cost of the hardware device, plus, possibly, a warranty. Before you purchased the device, you likely spent time researching it, shopping, and finally placing your order, which then required tax and shipping expenses. After the device arrived, you spent time installing, configuring, and testing it. Finally, the device was ready for use and began to consume power and generate heat. Admittedly, for the one disk drive in this case, the indirect cost may be small. The point is that you can establish a series of costs before the acquisition, at the time of the acquisition, and following the acquisition.

These different costs combined constitute the total cost of ownership (TCO)—the total direct and indirect costs, including capital and operating expenses, of owning a particular piece of equipment or other capital good. When you examine the economics of the cloud, you need to consider the total cost of ownership of an on-site solution compared with that of the cloud.

When you calculate the total cost of ownership for various computers, hardware, network, and software solutions, you should consider the following items:

• Software (server, desktop, notebook, tablet, and mobile)

• Prepurchase research

• The actual software purchase or licensing

• Installation

• Training

• Version and patch management

• License management

• Security considerations

• Administration

• Hardware (server, desktop, notebook, tablet, and mobile)

• Prepurchase research

• The actual hardware purchase

277

• Installation

• Testing

• Footprint and space

• System downtime

• Electricity and air conditioning

• Insurance

• Replacement costs of failed components

• Decommission, removal, and disposal of previous equipment

• Cost of scaling solutions to new demands

• System maintenance

• Data storage

• Prepurchase research

• The actual device purchase

• Installation

• Testing

• Security considerations

• Backup operations

• Footprint and space

• Electricity and air conditioning

• Maintenance

• Replacement costs of failed components

• Network equipment

• Internet access (Internet service provider)

• Prepurchase research

• The actual component acquisition

278

• Installation

• Training

• Security considerations

• System downtime

• Maintenance

• Administration

CASE 16-2 AMAZON TOTAL COST OF OWNERSHIP SPREADSHEET

To help users calculate and then compare the total cost of ownership for a cloud-based solution, collocated solution, and on-site solution, Amazon provides the Excel spreadsheet shown in FIGURE 16-2. Using this spreadsheet, you can perform a detailed analysis of the costs related to each solution.

Exercise Assume you must deploy a 2,000-server solution for a new technology company. Using the Amazon spreadsheet, calculate and compare the total cost of ownership for using Amazon web services, a colocated data center, and an on-site solution.

Web Resources For more information on the Amazon total cost of ownership spreadsheet, visit www.CloudBookContent.com/Chapter16/index.html.

279

FIGURE 16-2 Amazon provides an Excel spreadsheet used to calculate the total cost of ownership for common IT installation solutions.

Economies of Scale

Economies of scale describes the cost savings that a company may experience (up to a point) by expanding. Assume, for example, that a data center has two system administrators who oversee 100 servers. Each administrator is paid $50,000. The cost per server for system administration becomes the following:

Assuming the servers are running similar operating systems, the two administrators may be able to oversee as many as 1000 servers. In that case, the cost per server for system administration becomes the following:

In this case, by scaling the number of servers, the company can reduce the perserver administrative costs. Furthermore, the company may reduce its per-server software licensing costs and other expenses due to the larger volume of servers.

Because of their size, cloud-based data centers experience significant economies of scale. As cloud-based data centers supply computing resources, providers can offer supply-side savings. Additionally, because many cloud-based providers use a multi-tenant approach, perhaps a software as a solution (SaaS) that uses virtual servers or an infrastructure as a solution (IaaS) data center that houses multiple clients, the providers gain efficiencies and cost reductions, some of which can be passed on to the customer.

As discussed, one of the largest costs within the data center is power. Because larger data centers can combine power across multiple customers, they can purchase power at better rates than smaller data centers can.

Capital Expenditures

Capital expenditures (CAPEX) are large expenditures, normally for a plant, property, or large equipment. Companies make large capital expenditures to meet current or future growth demands. Because capital expenditures have

280

value over a number of years, companies cannot expense the expenditures in full during the current year. Instead, using a process called expense capitalization, the company can deduct a portion of the expense over a specific number of years. Different asset types, such as buildings, vehicles, and computers, are capitalized over various lengths of time, based on rules of the U.S. Internal Revenue Service.

Traditionally, a company would have to make a large capital investment for a data center facility, its computers, power supplies, air conditioning, and so on.

For many companies, the cloud eliminates the need for a large data center and the corresponding capital expenditures. Instead, companies that use the cloud experience operational expenses.

Operational Expenses

Operational expenses (OPEX) are expenses that correspond to a company’s cost

of operations. Within a data center, for example, operating expenses include the

following:

• Power and air conditioning

• Rent and facilities

• Equipment maintenance and repair

• Internet accessibility

• Software maintenance and administration

• Insurance

When a company migrates its IT solutions to the cloud, it incurs a fee for the cloud-based services it consumes. However, because of the cloud-service provider’s economies of scale, the operational cost of using the cloud will likely be lower than what the company would pay for an on-site data center.

CASE 16-3 MICROSOFT OPERATIONAL EXPENSE CALCULATOR

To help companies compare their operational costs to those of the Windows Azure platform as a service (PaaS), Microsoft provides the Windows Azure pricing calculator, shown in FIGURE 16-3.

281

Exercise Assume you must deploy a system with the following attributes:

• 5,000 hours of medium computing capability

• 75 GB of relational database support

• 1 TB of disk storage

• 2 GB of data transfer

• Four 2048 MB caches

Use the Windows Azure pricing calculator to determine the corresponding monthly operating expenses.

Web Resources For more details on the Windows Azure pricing calculator, visit www.CloudBookContent.com/Chapter16/index.html.

FIGURE 16-3 The Windows Azure pricing calculator.

Return on Investment

282

Return on investment (ROI) is a measure of the financial gain (or return) on an investment, such as a new piece of equipment. For example, assume that a company can repeatedly save $10,000 based on a $50,000 investment. The company’s first-year ROI would become

Assume that company can repeatedly save $7,000 by making a $25,000 investment. The company’s first-year ROI would become

The higher the ROI, the better. Using an ROI in this way, a company can compare two or more investment opportunities.

Traditionally, before investing in a large data center, a company would determine the ROI. Because one typically does not have a large investment within cloud-based solutions (cloud solutions normally have monthly operational expenses), calculating the ROI for cloud-computing solutions can be difficult.

Company IT personnel will instead evaluate the benefits of the monthly cloud investment based on factors including the following:

• Rapid scalability: Customers can make and implement scaling decisions quickly.

• Reduced total cost of ownership: By leveraging the cloud-service provider’s economies of scale, the customer’s total cost of ownership will normally be less.

• Improved business continuity and disaster recovery: The cloud becomes an operational insurance policy for fail-safe operations.

• Increased cost controls: Customers normally pay only for the resources they consume and may be able to align that increased resource consumption with increased revenues.

• Enhanced ability to “right-size”: Companies can monitor system utilization and scale resource use up or down to align resources with demand.

CASE 16-4 CLOUD COMPUTING RETURN ON INVESTMENT CALCULATOR

283

To help IT personnel estimate the ROI for using cloud-based services, www.GetApp.com provides a cloud computing migration calculator, as shown in FIGURE 16-4. Using the calculator, you enter your current costs for various IT components, the facility, operating system licenses, servers, data storage, and more. Then, for each item, you specify the potential cost reduction realized by using the cloud. The calculator, in turn, determines your potential savings and ROI for the cloud migration.

Exercise Assume you must deploy a system with the following attributes:

• 7,200 hours of computing capability—24/7 monthly operations

• 100 GB of relational database support

• 1 TB of disk storage

• 5 GB of data transfer

FIGURE 16-4 The cloud computing ROI calculator.

Assume you have the current data center expenses:

• Facilities rent: $100,000 a year

284

• Power/AC: $5,000 a month

• System administration: $250,000 a year

• Operating system server site licenses: $25,000 a year

• Network costs: $80,000 a year

• Disk storage costs: $25,000 a year

• Disaster recovery: $50,000 a year

• Developer costs: $400,000 a year

• Operational IT costs: $150,000 a year

Use the www.GetApp.com ROI calculator to determine the corresponding monthly operating expenses and potential cloud savings.

Web Resources For specifics on calculating and analyzing the ROI for cloud computing, visit www.CloudBookContent.com/Chapter16/index.html.

Profit Margins

A company’s profit margin, often simply called the margin, is a ratio of the company’s income to revenue:

Profit Margin = (Income / Revenue) * 100

Assume, for example, a company has $500,000 of revenue and the following expenses:

To calculate the company’s income or profit, you simply subtract the expenses from the revenues:

Then, you can calculate the company’s profit margin as follows:

285

Assume that by migrating its IT data center to the cloud, the company can reduce its IT expenses to $75,000. The company’s margin, in turn, would improve as follows:

One way to determine the benefit of moving to the cloud is to evaluate a company’s on-site profit margins compared with the cloud-based profit margins.

Moore’s Law and the Cloud

Gordon Moore, one of the cofounders of Intel, identified a computing trend during the 1960s that remains true today:

The number of transistors that can be placed on an integrated circuit doubles every two years.

This observation is known as Moore’s law. We find that computing power and disk storage capacity also double at nearly this rate. The result is that a capital investment in computing devices has a very short effective life expectancy. The systems we buy today may be only half as fast as those we will purchase two to three years from now.

By shifting computer resources to the cloud, companies eliminate the need to update their own data center equipment, which may drive a considerable cost savings. Today, within the cloud environment, you can think of the services provided (SaaS, PaaS, and IaaS) as a commodity.

Understanding Right-Sizing

286

A goal of most computer systems is high CPU utilization. If CPUs have low activity, processing resources are wasted. However, if a CPU is running at 100 percent, performance will suffer due to increased process switching. Thus, the goal is a high level of utilization, but not maximum utilization.

As a company moves new products to the cloud, it has no way of knowing what the level of utilization will be. If a company launches solutions with too few servers, the solution’s performance will suffer. If a company provides more servers than necessary, it will pay for unused resources.

The virtual and easily scalable nature of the cloud makes it easy for companies to “right-size” their resource needs. Right-sizing is the process of aligning computing resources (processors, servers, disk capacity, and so on) with user demand and requirements. With the company’s optimal CPU utilization come optimal related costs within the cloud’s pay-as-you-go environment. Within the cloud environment, a customer may pay for one hour of processing by 50 servers—or the same for 50 hours of processing by one server. In other words, it is easy to “right-size.”

Defining a Large Data Center

Throughout this chapter, we have referred to “large data centers” and their economies of scale. A large data center may house from 500,000 to several million square feet of space, and may initially cost several billion dollars. FIGURE 16-5 shows the I/O Data Center website. Visit the site to gain a better understanding of the size and scope of a large data center.

287

FIGURE 16-5 The I/O Data Center website.

Other Economic Key Performance Indicators

Beyond the traditional total cost of ownership, the shift from capital to operational expenses, and ROI, TABLE 16-1 describes several key performance indicators that should be considered before initiating a cloud deployment.

TABLE 16-1 ADDITIONAL KEY PERFORMANCE INDICATORS TO CONSIDER

Metric/Indicator Measure

System availability Through system redundancy and colocation, cloud-based service

providers typically provide 99.9 percent uptime and system

availability. Because cloud service providers maintain the operating

system and support software, companies normally experience little

downtime for system patch or version upgrades. Most cloud service

288

providers guarantee system availability as part of their SLA.

Processor utilization Because cloud-based providers can scale processors on demand, a

company does not have to deploy a large number of processors to

meet potential demand. Instead, a company can estimate initial

demand and then scale up or down accordingly and dynamically to

drive a more efficient processor utilization.

Time-of-day utilization Many applications experience spikes during specific times of the

day. For example, a human resource (HR) solution will normally

experience traffic during business hours and then little traffic during

off times. Because cloud service providers can dynamically scale

resources to meet user demand, the solutions can scale processor

power up or down as necessary throughout the day.

Resource

demand/utilization

(RAM, disk and

database)

Many companies find that their resource demand models their

time-of-day utilization. A cloud service provider may be able to

scale resources to best align user demand with costs.

Time to market Most companies can turn on a cloud service solution immediately,

without the cost and time involved in establishing a data center

(small or large); acquiring, installing, and testing hardware and

software; and hiring system administrators.

289

Opportunity costs There are costs associated with an activity’s potential that a

company must forgo when selecting an alterative. For example, if a

company invests in an on-site data center, the company may have to

forgo an advertising and marketing initiative that could increase

revenues.

User experience Hiring, onboarding, and training skilled IT employees is usually an

expensive investment. Most cloud service providers have an

experienced team of administrators and security personnel.

Market disruption Being first to market can have disruptive benefits. By utilizing

cloud-based resources, a company may become more nimble and

faster to market than a company that integrates an on-site data

center.

Marketing the Cloud

As with all products and services, the rate at which users migrate to the cloud follows a common pattern. FIGURE 16-6 illustrates a typical adoption cycle. It is interesting to note that the innovators and early adopters comprise only 50 percent of the eventual market. Judged by that, the cloud still experiences significant growth from the late majority and laggards.

290

FIGURE 16-6 The cloud’s market adoption cycle is similar to that of most new product and service offerings.

CHAPTER SUMMARY

The cloud brings new business models and economics. By moving to infrastructure as a service, large companies can save costs, reduce staff, and improve system scalability. Through SaaS and PaaS, small companies are leveraging pay-on-demand models to “right-size” their computing needs quickly and cost-effectively. This chapter examined the cloud business model and related economic opportunities. Specifically, you learned how companies are converting large capital expenditures to monthly operational expenses and how the cloud service provider’s economies of scale result in savings to companies that pay for the cloud services.

KEY TERMS

Capital expenditures (CAPEX)

Economics

Economies of scale

Key performance indicators

Operational expenses (OPEX)

291

Profit margin

Return on investment (ROI)

Right-sizing

Total cost of ownership (TCO)

CHAPTER REVIEW

1. Define and describe total cost of ownership. List at least 10 items to consider when determining a data center’s total cost of ownership.

2. Define and describe a capital expense. How are capital expenses different from operational expenses?

3. Define and describe economies of scale and provide a cloud-based example.

4. Define and describe “right-sizing” as it pertains to cloud computing.

5. Define Moore’s law and discus how it might influence cloud migration.

6. Given company revenues of $2.5 million and expenses of $2.1 million, calculate the company’s profit and profit margin.

292

chapter 17

Designing Cloud-Based Solutions THROUGHOUT THIS BOOK, WE have looked at a variety of cloud-related issues, from scalability to security to economics and business models. In Chapter 18, Coding Cloud-Based Applications, we will build and deploy several simple cloud-based solutions. In this chapter, we look at many design considerations a developer should consider when designing a cloud-based solution.

Learning Objectives

This chapter examines cloud-based solution designs. By the time you finish this chapter, you will be able to do the following:

• Compare and contrast functional and nonfunctional system requirements.

• Understand why developers should delay selecting an implementation platform during the design phase.

• Discuss considerations designers should evaluate when they design a system to meet specific nonfunctional requirements.

Revisit the System Requirements

Before you begin the design process, you must ensure that you have a complete set of system requirements. If the system requirements were defined by another individual or group, you should review the requirements and then walk through your understanding of them with the group and ideally the stakeholder who served as the expert for the requirements specification. Identifying errors, omissions, and misunderstandings early in the design process will save considerable time and money later.

System requirements fall into one of two categories: functional requirements and nonfunctional requirements. The functional requirements specify what the system does—that is, the specific tasks the system will perform. Normally, the functional requirements are provided by the system or business analyst to the designer within the specification of the things that the system needs to do. In contrast, nonfunctional requirements specify how the system will work behind the scenes. Nonfunctional requirements are often called quality requirements and include common factors such as performance, reliability, and

293

maintainability. As a designer with a strong working knowledge of the cloud environment, you can exhibit considerable influence on the system’s design to meet the nonfunctional requirements. Much of this chapter examines specific design considerations for nonfunctional requirements.

When to Select a Development Environment

Many developers want to be quick to select the platform upon which they will develop and implement the solution. That is, they want to start thinking about .Net, Linux, C#, or Ruby. When designing solutions, however, you should hold off on the implementation details as long as you can. Your design goal is to understand the requirements (functional and nonfunctional) fully and then to evaluate alternative solutions and implementations. If you focus too soon on platform capabilities, the platform may begin to dictate your design, not only for a specific requirement, but also for the requirements that follow.

Knowing the capabilities of a platform is important; but it is wise to hold off deciding on one until you have your requirements and potential solutions on the table.

Design Is a Give-and-Take Process

Designing a system is challenging. Budgets and time constraints mean you cannot solve every problem. That said, you need to consider the common design issues and then help the stakeholders prioritize the solutions they desire. As you evaluate your system’s nonfunctional requirements, remember the 80/20 rule (Often 80 percent of a program’s processing takes place within 20 percent of the code). You will want to focus your system design on the issues that will produce the greatest impact for the stakeholders.

Designing for Accessibility

Depending on the processing a system performs, a designer may need to create an interface that maximizes user access or may have to lock down the system and control which users can access specific features. For a public solution, such as a consumer website, maximizing user access not only makes great marketing sense, but also may be required by law (see the Americans with Disabilities Act website at www.ada.gov). In contrast, for a secure site, controlling user access can range from ensuring the security of the login process to some type of biometric user authentication.

CASE 17-1 VOICEPAY CLOUD-BASED USER AUTHENTICATION

294

Authenticating a mobile device user can be challenging. Often, mobile users will preconfigure different pages to “remember” them in order to simplify login processes. If a user loses the device, another person may be able to access those pages. VoicePay, shown in FIGURE 17-1, has an interesting voice-based biometric authentication capability. When a user wants to make a purchase or log in to a specific site, the user calls VoicePay and speaks. The system, in turn, uses the user’s voice profile to authenticate him or her. The user does not have to provide a username, password, or other confidential information—all he or she has to do is speak. As mobile device use continues to grow exponentially, biometric solutions such as those offered by VoicePay will become mainstream.

Exercise List and describe other potential uses for voice-based user authentication.

Web Resources For more information on VoicePay, visit www.CloudBookContent.com/Chapter17/index.html.

FIGURE 17-1 Using biometric voice recognition to identify users at VoicePay.

CASE 17-2 WEB ACCESSIBILITY INITIATIVE

As discussed, designing for user access is not just good business—for most web-based companies, it is a matter of law. To help designers understand potential solutions and user needs, the World Wide Web Consortium (W3C) has developed guidelines within its Web Accessibility Initiative pages, as shown in

295

FIGURE 17-2. Before you begin a user interface design, you should review these accessibility issues and requirements.

Exercise Research and discuss lawsuits that companies have lost for failing to support web accessibility for all users.

Web Resources For more information on the W3C Web Accessibility Initiative, visit www.CloudBookContent.com/Chapter17/index.html.

FIGURE 17-2 Specifics on designing web-based solutions to increase accessibility across a spectrum of users.

Designing for Audit

Chapter 15, Governing the Cloud, examined the cloud’s impact upon the IT governance process. As you design a cloud-based solution, you must first identify critical processing points at which you will want to place an internal control to confirm that the solution’s processing is correct and free from outside manipulation. You may design such controls to be active, meaning the code may generate a processing exception should unexpected results occur; or, the control may be passive, possibly logging events to a file or saving snapshots of data.

In either case, it is important that you identify your audit processing needs early so that the appropriate controls can be integrated into the implementation process and you can discuss and confirm your processing needs with a potential cloud-solution provider.

296

Designing for Availability

As part of their service-level agreement (SLA), most cloud-based providers guarantee system availability, normally specifying a percentage of uptime, such as 99.9 percent. For most applications, 99.9 percent uptime is acceptable (this means that the system is down 0.1 percent of the time, or 525 minutes each year). It is important that you identify your system’s uptime requirement and then, likely through the use of redundant colocated servers, design a solution that meets your needs.

Designing for Backup

With the myriad of inexpensive high-capacity data-storage solutions available within the cloud, loss of user data should not occur. If you are designing your own solution, you must consider not only ways to back up your data (and databases), but also the impact of each method on your system availability should you need to bring down the system to restore a backup.

Designing redundant data-storage solutions will always involve a cost-versus-risk trade-off. The issue is not whether you back up data—data backups should be a given, always. The issue is aligning acceptable risk mitigation with cost.

If you are designing a solution for which a third party (such as a software as a solution (SaaS) provider) will manage your data, you need to understand the company’s backup policies and procedures, and even then you will probably still want to integrate your own.

Designing for Existing and Future Capacity

Chapter 19, Application Scalability, examines the capacity planning process. If you are moving an existing on-site solution to the cloud, you should monitor the application closely to fully understand its processing attributes, such as user demand, CPU utilization, RAM use, and data-storage consumption. Knowing your system’s current resource use, you can better guess (it is difficult to predict system demand accurately) your system’s cloud resource needs.

With this knowledge, you can design for scalability—the ease of integrating additional computing resources. As you will learn in Chapter 19, there are two primary ways you can scale an application. First, you can scale the application up (called vertical scaling) by moving the application to a faster, more powerful processor. Second, you can scale an application out (called horizontal scaling) by distributing different tasks across different servers. As you design a solution, you

297

should identify opportunities to leverage horizontal scaling. At a minimum, you should design your solution in such a way that you do not restrict future horizontal scaling potential.

Designing for Configuration Management

Ideally, cloud-based solutions may be used at any time, from any place, with any device. In practice, however, this means that developers must consider a variety of operating systems, browsers, and device-specific GUIs. Operating systems and browsers often require patches to address security issues, and, eventually, each will face new version releases. If you are designing your own solution, you will want to layer configuration solutions on top of your system. In this way, you will reduce the impact to a computer-based user when changes are made to a handheld device interface or vice versa.

If your system design includes the use of an SaaS provider, you need to know that company’s patch management and versioning policies and procedures.

Designing for Deployment

Chapter 8, Virtualization, examined ways that desktop virtualization is changing how solutions are delivered. From an operating system on demand, to thin client (browser-based) solutions, developers have a myriad of ways to deploy a system. As you design a solution, you should identify each potential user type and its environment attributes (such as operating system, device type, and browser). Then, you need to consider not only how you will deploy the initial solution to the user, but also how you will deploy system upgrades.

Designing for Disaster Recovery

Chapter 10, Disaster Recovery and Business Continuity and the Cloud, examined considerations for reducing the risk from a disaster and increasing the likelihood that a business is able to continue operating after such an event. When designing a solution with respect to disaster recovery and business continuity, you must balance risks and costs. It is likely impossible and unnecessary to protect a system from all potential events. Instead, you must determine each event’s likelihood and business impact and then seek to provide an affordable solution that mitigates risks. Fortunately, the cloud’s affordable and distributable resources provide developers with considerable flexibility.

Designing for the Environment (Green Computing)

298

Green computing describes environmentally friendly IT operations. For example, replacing an application that prints reams of paper reports with a browser-based performance dashboard is an example of a green-computing initiative. As you have learned, within a data center, the biggest environmental impact is the power consumption to drive devices and air conditioners. As more companies migrate to platform as a service (PaaS) and infrastructure as a service (IaaS) providers, many smaller (and possibly less efficient) data centers are being accumulated into larger, state-of-the-art facilities.

As the capabilities of cloud-based collaboration tools continue to increase, travel for face-to-face meetings will decrease, resulting in a lower business-related carbon footprint. That said, as solutions are made available any place, any time, and from any device, the net result is a huge number of handheld devices that are never powered off.

As green-computing practices continue to emerge, designers will be pressured to consider the environmental impact of their designs.

Designing for Interoperability

Cloud-based solutions are emerging for a wide range of applications. Whereas just a few years ago, a company might have used one cloud-based solution for a customer relationship management (CRM) requirement, or a solution for an HR application, today, many companies use a wide range of cloud-based solutions. To simplify the user interaction with such solutions, many companies strive to integrate the solutions and often even to share data across solutions. In the past, companies would buy and install middleware software to facilitate the exchange of data between solutions. Today, there are cloud-based middleware solutions that let companies tie together two cloud-based solutions, often without the need for programming development.

As you design cloud-based solutions, or when you work with an SaaS provider, consider ways you may need to integrate data between applications and then design accordingly.

Designing for Maintainability

Designing and building software solutions is an expensive process. Usually, the most costly phase of the software development life cycle is the system maintenance phase. To maximize code reuse and to increase code maintainability, software engineers are taught to create highly functional (cohesive) and independent (loosely coupled) software modules. Chapter 11,

299

Service-Oriented Architecture, discussed the role of cloud-based web services to make solutions readily available to a variety of applications. By decomposing an application into highly cohesive, loosely coupled modules and then deploying those solutions to applications such as web services, developers not only increase component reuse, but they also make the resulting systems easier to maintain by centralizing key processing as a distributed solution.

If you are using an SaaS solution, you need to keep the long-term nature of your relationship in mind. Many people argue that cloud solutions are initially inexpensive but may cost you more in the long run.

Designing for Performance

Speed matters. Across the cloud, you can find a myriad of companies that will monitor your system performance and will estimate a percentage of users who will leave your site if the pages do not load within 2 to 3 seconds. As you design the performance aspects of your solution, first you need to identify the 20 percent of your system that will be used 80 percent of the time. Then, you need to focus your initial performance optimizations there. Chapter 19, Application Scalability, looks at ways you can scale a solution to meet user demand. Designing for performance and designing for scalability are two different issues. Designing for performance means optimizing what you have. Designing for scalability means designing for the future integration of additional computing resources. The following are some ways that you can design for performance:

• Reduce the use of graphics on key pages.

• Optimize the graphics file format for all images.

• Compress large text blocks before downloading the text to a browser.

• Utilize data and application caching.

• Fine-tune disk and database I/O operations.

• Reduce, when possible, network operations.

• Fine-tune secure data communication transactions.

As you design solutions, evaluate them for potential bottlenecks as well as for optimization points. Understand that you may not, due to time or budget constraints, have the ability to optimize everything.

Designing for Price

300

Budgets are a fact of life. As you design, you must be aware that your design decisions have financial implications. A solution that was inexpensive to deploy may prove costly to maintain or vice versa. Just as you would consider the performance or security aspects of each component you design, you must also consider each component’s short-term and long-term budget impact.

Designing for Privacy

As discussed throughout this book, many users are not comfortable with the idea of putting their data in the cloud. Cloud-based solutions must protect a user’s data privacy. If you are developing a healthcare solution with HIPAA requirements, an education solution with FERPA requirements, or an e-commerce solution that stores credit card information, you will need to design your solution in a way that protects data not only from external access, but also from internal users such as developers and administrators.

Most designers understand the importance of backing up user data and replicating key databases. It is important to note, however, that each data backup creates a potential opportunity for a user, administrator, or hacker to gain access to the data.

Designing for Portability

Portability is a measure of the ease with which a solution can be moved, typically from one platform to another. Ideally, you should design your system so that you can easily move the solution from one cloud provider to another. Many developers argue that by using open source tools to create an application you increase the application’s portability. In reality, within the cloud, developers using .Net will find many hosting opportunities beyond Microsoft—it’s a big cloud and solution providers want to service all developers. If you are designing your own solutions, be aware that using a provider-specific application program interface (API), which may not be available through other providers, may create a form of vendor lock-in. Likewise, if you use an SaaS provider, be aware that each unique or custom capability integrated into your solution may bind you to that provider.

Designing for Recovery

We have discussed the need to design a solution to support disaster recovery and business continuity needs. Additionally, you should design your solution with consideration for how you will recover from more common events, such as

301

server failure, user error, power outages, and so on. Your recovery design should tie closely to your backup design and your system redundancy design.

Designing for Reliability

Computing devices (disks, servers, routers, and so on) will eventually fail. You have learned that many devices have an associated mean time between failures (MTBF) attribute that you can use to estimate the device’s potential life expectancy. As you design your solutions, you must identify potential signal points of failure and then design potential system redundancy or establish an acceptable system downtime.

Designing for Response Time

When you design a solution, you should keep the user experience in mind. As discussed, users are conditioned to expect fast system response. In fact, a large percentage of users will leave a site if they have to wait more than a few seconds for pages to download and display. As you design a solution, you need to consider not only the page download times, but also the system response time after a user performs an operation, such as submitting a form. Across the cloud, there are companies that specialize in testing the user experience. These companies will evaluate a system from different geographic locations, using different connection speeds, and with a variety of browsers. Your response time design efforts may be closely related to your site’s capacity plan design.

Designing for Robustness

Robustness is a measure of a site’s ability to continue operations in the event of an error or system failure, such as a server failure or database error. Again, as you design you should strive to identify and eliminate single points of failure. Furthermore, you should consider automating a system resource utilization monitor that alerts administrators before a system’s resources become critically low.

Designing for Security

Chapter 9, Securing the Cloud, looks at a variety of cloud-based security issues developers must consider, including the following:

• Software patch installations and software version management

• HR vetting of cloud-based personnel

• Early awareness of security incidents and appropriate responses

302

• Data privacy issues and considerations

• Jurisdictional issues for a remote cloud-service provider

• Multitenant solution issues

• Cloud-provider failure or collapse

• Defense mechanisms for common low-level network attacks

• Data wiping for shared-storage space

• Physical security considerations

For each component you design, you must evaluate the component’s potential security exposure. Again, in some cases you will need to balance risk and cost.

Designing for Testability

Cloud-based solutions will likely have a large number of functional and nonfunctional requirements. As you design a solution, you need to keep in mind how you will test various aspects of your design. As you might guess, the system’s nonfunctional requirements are often the most difficult to test. Depending on a system component’s purpose and functionality, some developers will use a methodology called test-driven design by which they first design and implement one or more test cases and then build a solution that can satisfy the test.

Designing for Usability

To be of use a system must be usable. Usability, in the world of IT, is understood as a measure of a system’s ease of use. As you design a solution, you must keep the user foremost in your mind. Because of the importance of meeting system usability requirements, many designers will model or create a prototype of the user experience so they can receive user feedback early in the design process.

CHAPTER SUMMARY

Cloud-based systems will have functional requirements, which specify the tasks the system must perform, and nonfunctional requirements, which define the behind-the-scenes operational requirements the system must satisfy. This chapter focused primarily on considerations a designer must evaluate when addressing a system’s nonfunctional requirements for a cloud-based solution. Designers must balance a large number of operational requirements with budget and time considerations. Initially, a designer should list the known requirements

303

and then work with the stakeholders to focus on the requirements that will have the biggest positive ROI.

KEY TERMS

Functional requirements

Green computing

Middleware

Nonfunctional requirements

Portability

System requirements

Usability

CHAPTER REVIEW

1. Compare and contrast functional and nonfunctional requirements and provide an example of each.

2. Discuss why a designer should avoid selecting an implementation platform for as long as possible during the design process.

3. Discuss various trade-offs a designer may need to make with respect to nonfunctional requirements.

4. Discuss why the system maintenance phase is often the most expensive phase of the software development life cycle.

304

chapter 18

Coding Cloud-Based Applications BEHIND THE SCENES, DEVELOPERS who create new cloud-based applications

or who move existing applications to the cloud are truly driving the cloud’s

explosive growth. Creating a cloud-based application is very similar to building a

traditional web-based application. Developers normally use a programing

language such as PHP, Ruby, Perl, Pty, or C#, along with HTML and CSS, and a

database. As discussed in Chapter 3, Platform as a Service (PaaS), many

cloud-solution providers offer tools that developers need to build and deploy a

solution. In this chapter, we will look at two of the most widely used developer

platforms: Google App Engine and Windows Azure. In addition, many companies

now offer tools that nonprogrammers can use to create and display a solution

without coding. We’ll look at one such tool, Yahoo! Pipes, and its ability to help

users create a mashup.

Learning Objectives

This chapter examines coding cloud-based applications. By the time you finish

this chapter, you will be able to do the following:

• Use Yahoo! Pipes to create a mashup.

• Create and deploy a cloud-based application using Google App Engine.

• Create and deploy a cloud-based application using Windows Azure.

Creating a Mashup Using Yahoo! Pipes

Across the cloud, different sites provide different content offerings. A mashup is a

page that combines several such independent pieces of content. As shown in

FIGURE 18-1, a mashup may be created and delivered by a server, or a browser

may use JavaScript to combine the content.

305

FIGURE 18-1 A mashup combines content from several sources onto the same page.

Yahoo! Pipes is a cloud-based application that provides a graphical user

interface (GUI) that programmers can use to combine content (create a mashup)

by dragging and dropping content sources onto a canvas. Later, when a user

views a pipe, the user will see the corresponding content. FIGURE 18-2, for

example, illustrates the user view of a pipe that combines news feeds from a

wide range of sources.

Pipes are so named because they let developers connect the data flowing from

one source into the data processed by another. FIGURE 18-3, for example,

illustrates the pipes to create the news feed previously shown.

306

FIGURE 18-2 Yahoo! Pipes allows developers to combine content from multiple sources into a single mashup.

FIGURE 18-3 Yahoo! Pipes flow the content from one source into the input of a second source.

Similarly, FIGURE 18-4 illustrates a pipe that combines movie reviews with

photos from Flickr and videos from YouTube.

307

FIGURE 18-4 Using Yahoo! Pipes to mash content from several sites to create a movie review.

FIGURE 18-5 Using Yahoo! Pipes to combine text, image, and video data into a user interface.

308

Again, the developer created this pipe by connecting data sources, as shown in

FIGURE 18-5.

Creating a Simple Yahoo! Pipe

To create your own Yahoo! Pipe, visit pipes.yahoo.com, as shown in FIGURE 18-6.

FIGURE 18-6 To create a pipe, start at pipes.yahoo.com.

FIGURE 18-7 To create a Yahoo! Pipe, users drag and connect data sources within the Yahoo! Pipe canvas.

309

Within the page, log in to Yahoo! and click the Create Pipe button. Your browser,

in turn, will display the pipe canvas and the data sources that you can use to

create your pipe, as shown in FIGURE 18-7.

In this example, you will create a pipe called FindIt, which prompts the user to

enter an item (store, restaurant, or other destination) and a geographic area

(city, state, or zip code) as shown in FIGURE 18-8.

FIGURE 18-8 The user interface of a Yahoo! Pipe, which prompts the user for an item and location.

310

FIGURE 18-9 Using a Yahoo! Pipe to display locations that offer pizza.

After the user types in the item and location, the page will display the location of

items that match. For example, FIGURE 18-9 lists locations within Prescott,

Arizona, that offer pizza.

To create your Yahoo! Pipe, perform the following steps:

1. From the left side of the screen, drag a Text Input object from the User Input

group onto the canvas.

2. Label the Name of the Text Input object as Item and set the prompt to Item.

3. From the Sources group, drag a Yahoo! local object onto the canvas. Within the

object, change the “Within” field to “20 miles.”

4. Using your mouse, drag the circle found at the bottom of the Text Input box

into the Find field of the Yahoo! Local box. The canvas will display a pipe, as

shown in FIGURE 18-10.

5. From the Location group, drag and drop a Location Build object onto the

canvas.

6. From the User Input group, drag another Text Input object onto the canvas.

Label the object’s Name as Location and set the prompt to Location.

311

7. Using your mouse, drag the circle from the new text box into the Location field

of the Location Builder object. The canvas will display a second pipe, as shown in

FIGURE 18-11.

Figure 18-10 Using a pipe to connect objects within a Yahoo! Pipe.

FIGURE 18-11 Creating a second pipe to connect objects.

312

8. Using your mouse, drag the circle from the Yahoo! Location box to the Pipe

Output object. The canvas will display the third and final pipe, as shown in FIGURE

18-12.

FIGURE 18-12 Using a pipe to specify the user output.

9. Click the Save button and specify a name under which to save your pipe.

10. Click the Properties button. Your browser will display a link that you can use

to run your pipe (display the pipe’s output).

Later, if you share the URL to your pipe with other users, they can use it to search

for a wide range of items. FIGURE 18-13, for example, shows the pipe’s input

screen and output results for pipe search.

Using Google App Engine

Using Google App Engine, developers can deploy applications that run on the

Google infrastructure. Google maintains the servers, scales the applications, and

performs the behind-the-scenes server administration. Developers can get

started with Google App Engine at no charge. As an application’s demand

increases, Google allows developers to pay only for the resources they consume.

Developers normally build Google App Engine solutions using Java, Python, or

PHP.

313

FIGURE 18-13 Displaying the results of a Yahoo! Pipe.

Creating a Hello, World! Application with Google App Engine

To start, create the following simple Python application, which displays the text

“Hello, world!” to the user:

print “Content-type: text/html\n\n”

print “<html>Hello, world!</html>”

After you have the application working locally, you can upload the application to

the Google App Engine. Visit appengine.google.com and log in to a Google

account. Then select the Create Application button. You may need to authenticate

yourself to Google further before you can continue.

Downloading the Google App Engine Software Development Kit

Depending on the programming language you are using to develop your

application, you will need to download and install the corresponding Google App

Engine software development kit (SDK). For this example, you would

download the Python SDK. The SDK, in turn, provides utility programs you can

use to upload your program into the Google App Engine.

Deploying a Simple Google App Engine Example

314

To begin, open a command line window as shown in FIGURE 18-14 and locate the

file folder that contains the appcfg.py script, which was created by the SDK

installation.

FIGURE 18-14 Using a command line window, locate the appcfg.py script that you will use to upload your Python script to the Google App Engine.

For this example, create a folder within the folder that contains appcfg.py named

Hello, within which you store the Hello.py script:

print “Content-type: text/html\n\n”

print “<html>Hello, world!</html>”

Next, within the same folder, create a file named app.yaml, which Google will use

to configure your application. Use the following script, replacing the value

2a2a2a2a2a2abbb with the application ID you received from Google:

315

Then, run the appcfg.py script, as shown in FIGURE 18-15, to upload your

application.

You can then test your application from Google’s appspot website, as shown in

FIGURE 18-16.

FIGURE 18-15 For a Python script, the appcfg.py script will upload the application into the Google App Engine.

FIGURE 18-16 Running a Python script deployed to the Google App Engine.

Creating a More Advanced Google App Engine Application

To assist developers in creating applications, Google provides a variety of

application program interfaces (APIs). The following code uses a Google API to

display specifics about the current user:

316

If you place this code into your previous Hello.py script, you can then rerun the

previous appcfg.py script to upload the application into the Google App Engine.

When you later run the script, Google will prompt you to log in. Then the page

will display your user specifics, as shown in FIGURE 18-17.

Creating a Windows Azure “Hello, World!” Application

For .Net developers, creating a Windows Azure application is a natural extension

of their previous ASP.NET development. The developers will use the Visual

Studio to create and deploy their applications. Eventually, support for Windows

317

Azure will be integrated into Visual Studio. At the time of this writing, however,

developers must download and install a Windows Azure software development

kit as well as tools for Visual Studio. In addition, developers must register at the

Windows Azure site—which they can do free of charge. At the Windows Azure

site, developers will find tutorials to guide them through the process of creating

and deploying a cloud-based application.

FIGURE 18-17 Displaying a user’s Google specifics.

FIGURE 18-18 Creating a cloud-based project hosted on Windows Azure.

After you install the Windows Azure SDK and Visual Studio support tools, start

Visual Studio and create a new project. Within Visual Studio’s list of installed

templates, select Cloud, as shown in FIGURE 18-18.

Within the New Windows Azure Project dialog box, select the ASP.NET Web Role

entry, as shown in FIGURE 18-19.

318

FIGURE 18-19 Using the ASP.NET Web Role to create your cloud application.

319

FIGURE 18-20 Modify the Default.aspx file’s contents and screen display.

Next, within Visual Studio, edit the Default.aspx file to change the text from

Welcome to ASP.NET! to Welcome to the Cloud, as shown in FIGURE 18-20.

Select the Project menu Package option. Visual Studio will display the Package

Windows Azure Application dialog box. Select OK. Your screen will display a

window that contains the package files, as shown in FIGURE 18-21. Note the name

of the folder within which the package files reside. You will need the files later to

upload your application to Windows Azure.

320

Log in to the Windows Azure site, as shown in FIGURE 18-22.

FIGURE 18-21 Displaying package files within Visual Studio.

FIGURE 18-22 To upload a program, you must first log in to the Windows Azure site.

321

FIGURE 18-23 Providing Windows Azure with specifics about your application.

Click the New Hosted Services button. Your screen will display a dialog box

similar to that shown in FIGURE 18-23, which you must complete.

Using the folders within which you stored the application’s package files,

complete the dialog box fields. Windows Azure, in turn, will begin the upload

process, eventually displaying specifics about the application, as shown in FIGURE

18-24.

Using the URL provided in the Windows Azure project specifics, deploy your

application. Your browser, in turn, should display the cloud-hello message, as

shown in FIGURE 18-25.

322

FIGURE 18-24 Loading an application into the Windows Azure platform.

FIGURE 18-25 Successfully deploying an application within Windows Azure.

CHAPTER SUMMARY

323

Cloud use is driven by new applications, which means that developers who

create new cloud-based applications or who move existing applications to the

cloud are the ones truly driving the cloud’s explosive growth. In general, creating

a cloud-based application is similar to building a traditional web-based

application. That is, developers will use a programing language such as PHP,

Ruby, Perl, Pty, or C#, along with HTML and CSS, and a database. In addition,

many cloud-solution providers offer tools that developers need to build and

deploy a solution without having to code. Such applications should accelerate the

rate at which applications enter the cloud. In this chapter, you learned how to

use Google App Engine and Windows Azure to deploy a cloud-based application.

In addition, you learned how Yahoo! Pipes allows users to create mashups

without the need for code.

KEY TERMS

Google App Engine

Software development kit (SDK)

Yahoo! Pipes

CHAPTER REVIEW

1. Using Yahoo! Pipes, create a pipe that displays the names of pizza restaurants

within a given zip code.

2. Using Google App Engine, create a page that displays the following Python

script:

print “Content-type: text/html\n\n”

print “<html>Cloud Computing, Chapter 18</html>”

324

chapter 19

Application Scalability SCALABILITY REFERS TO AN application’s ability to add or remove resources

dynamically based on user demand. Throughout this book, you have learned that

one of the greatest advantages of cloud-based applications is their ability to scale.

Anticipating user demand is often a “best guess” process. In the past, developers

had to release site resources (servers, CPUs, disk space) capable of meeting the

anticipated initial user demand, plus growth. Often developers could not

accurately project the demand, and frequently they released too few or too many

resources.

Learning Objectives

This chapter examines the resource-scaling process. By the time you finish this

chapter, you will be able to do the following:

• Define and describe scalability.

• Define and describe the Pareto principle.

• Compare and contrast scaling up and scaling out.

• Understand how the law of diminishing returns applies to the scalability

process.

• Describe the importance of understanding a site’s database read/write ratio.

• Compare and contrast scalability and capacity planning.

• Understand how complexity can reduce scalability.

CASE 19-1 THE PARETO PRINCIPLE (80/20 RULE)

Whether you are developing code, monitoring system utilization, or debugging an application, you need to consider the Pareto principle, also known as the

80/20 rule, or the rule of the vital few and the trivial many. The Pareto principle

accurately describes different scenarios such as the following:

• 80 percent of development time is spent on 20 percent of the code.

325

• 80 percent of errors reside in 20 percent of the code.

• 80 percent of CPU processing time is spent within 20 percent of the code.

• 80 percent of system use comes from 20 percent of the users.

If you consider the Pareto principle, you may find that you do not need to

optimize all of an application’s code. Instead, you can focus your effort on 20

percent of the code that users use most often.

Exercise Consider system performance monitoring. What other relationships,

such as disk space use or database space use, may relate to the Pareto principle?

Web Resources For more information on the Pareto principle, visit

www.CloudBookContent.com/Chapter19/index.html.

Reviewing the Load-Balancing Process

Cloud-based solutions should scale on demand. This means that if an

application’s user demand reaches a specific threshold, one or more servers

should be added dynamically to support the application. Likewise, when the

demand decreases, the application should scale down its resource use. When an

application uses multiple servers, one server, as shown in FIGURE 19-1, must

perform the task of load balancing.

The load-balancing server receives client requests and distributes each request

to one of the available servers. To determine which server gets the request, the

load balancer may use a round-robin technique, a random algorithm, or a more

complex technique based upon each server’s capacity and current workload. For

an application to exploit load balancing fully, the application developers must

design the application for scaling.

326

FIGURE 19-1 The load-balancing server distributes workload across an application’s server resources.

CASE 19-2 GANGLIA MONITORING SYSTEM

If you are using Linux-based servers, you should consider deploying the Ganglia Monitoring System to monitor your system use. Ganglia is an open-source project

created at the University of California, Berkeley. The software monitors and

graphically displays the system utilization, as shown in FIGURE 19-2.

327

FIGURE 19-2 Monitoring system utilization using the Ganglia Monitoring System.

Exercise Examine the Ganglia Monitoring System. Which of the system’s features

are most critical to cloud administrators? Why?

Web Resources For more information on the Ganglia Monitoring System, visit

www.CloudBookContent.com/Chapter19/index.html.

Designing for Scalability

Often developers take one of two extremes with respect to designing for

scalability—they do not support scaling or they try to support unlimited scaling.

In general, developers should focus their effort somewhere in the middle. In

other words, they should design and build the application with the expectation

that it will scale to a point, possibly beyond reasonable expectations. It is

important to note that most applications do not experience, and therefore do not

need to support, overnight success.

Scaling Up, Scaling Out, or Both

328

Before you discuss or plan for scaling, it is important to understand that there

are two ways to scale a solution. First, you can scale up an application (known as

vertical scaling) by moving the application to faster computer resources, such

as a faster server or disk drive. If you have a CPU-intensive application, moving

the application to a faster CPU should improve performance. Second, you can

scale out an application (known as horizontal scaling) by rewriting the

application to support multiple CPUs (servers) and possibly multiple databases.

As a rule, normally it costs less to run an application on multiple servers than on

a single server that is four times as fast.

Assume, for example, that your application makes extensive use of a web service

to perform complex processing. If the web service becomes a bottleneck, a place

where system traffic slows because of lack of resources, you could host the web

service on a faster server (by scaling up) or you could place the web service on

multiple servers, which the application may call in a round-robin fashion (by

scaling out). As shown in FIGURE 19-3, over time, a developer may use both

vertical and horizontal scaling.

FIGURE 19-3 Developers often use vertical and horizontal scaling to meet application demands.

329

CASE 19-3 WEBPAGETEST

Before you consider scaling, you should understand your system performance and potential system bottlenecks. www.webpagetest.org evaluates your site and

creates a detailed report, as shown in FIGURE 19-4. The report helps you identify

images you can further compress and the impact of your system caches, as well

as potential benefits of compressing text.

Exercise Use WebPagetest to evaluate two or more websites. Discuss how the

report’s findings align with your user experience.

Web Resources For more information on WebPagetest, visit

www.CloudBookContent.com/Chapter19/index.html.

FIGURE 19-4 Using WebPagetest to evaluate system performance.

Minimize Objects on Key Pages

Across the Web, developers strive for site pages that load in 2 to 3 seconds or

less. If a web page takes too long to load, visitors will simply leave the site. With

that in mind, you should evaluate your key site pages, particularly the home

330

page. If possible, reduce the number of objects on the page (graphics, audio, and

so on), so that the page loads within an acceptable time.

Selecting Measurement Points

As you analyze your site with respect to scalability, you will want your efforts to

have a maximum performance impact. To begin, identify the potential

bottlenecks within the system, both with respect to CPU utilization and database

use. If, for example, you scale part of the system that is not in high demand, your

scaling will not significantly affect system performance. As you consider your

measurement points, keep the 80/20 rule in mind and strive to identify the 20

percent of your code that performs 80 percent of the processing.

CASE 19-4 ALERTRA WEBSITE MONITORING

Often, system administrators do not know that a site has gone down until a user contacts them. Alertra, shown in FIGURE 19-5, provides a website monitoring

service. When it detects a problem, it sends an e-mail or text message to the site’s

administrative team. Companies can schedule Alertra to perform its system

checks minute-by-minute or hourly.

Exercise Discuss the benefits of having a real-time site monitor and describe

how you would justify the investment of using such a site.

Web Resources For more information on the Alertra Website Monitoring

service, visit www.CloudBookContent.com/Chapter19/index.html.

331

FIGURE 19-5 Alertra notifies system administrators about a cloud-based system error or failure.

Analyze Your Database Operations

As you know, load balancing an application that relies on database operations

can be challenging, due to the application’s need to synchronize database insert

and update operations. Within most sites, most of the database operations are

read operations, which access data, as opposed to write operations, which add or

update data. Write operations are more complex and require database

synchronization.

You may be able to modify your application so that it can distribute the database

read operations, especially for data that are not affected by write operations

(static data). By distributing your database read operations in this way, you

horizontally scale out your application, which may not only improve

performance, but also improve resource redundancy.

CASE 19-5 PINGDOM WEBSITE MONITORING

332

Pingdom provides real-time site monitoring with alert notification and performance monitoring. It notifies you in the event of system downtime and

provides performance reports based on your site’s responsiveness. As shown in

FIGURE 19-6, Pingdom provides tools you can use to identify potential

bottlenecks on your site.

Exercise Discuss the potential bottlenecks that are common to all cloud-based

sites.

Web Resources For more information on Pingdom Website Monitoring, visit

www.CloudBookContent.com/Chapter19/index.html.

FIGURE 19-6 Pingdom performance reports identify system bottlenecks.

Evaluate Your System’s Data Logging Requirements

When developers deploy new sites, often they enable various logging capabilities

so they can watch for system errors and monitor system traffic. Frequently, they

do not turn off the logs. As a result, the log files consume considerable disk space,

and the system utilizes CPU processing time updating the files. As you monitor

your system performance, log only those events you truly must measure.

333

CASE 19-6 GOMEZ WEB PERFOMANCE BENCHMARKS

Many times developers want to compare their site’s benchmarks with those of other sites. This is where Gomez comes into play. Gomez provides site

benchmarking for web and mobile applications. It provides cross-browser

testing as well as load testing. In addition, as shown in FIGURE 19-7, Gomez

performs real-user monitoring, which focuses on the user experience with

respect to the browser influence, geographic location, communication speed, and

more.

Exercise Discuss the importance of performing real-user monitoring.

Web Resources For more information on Gomez Web Performance

Benchmarks, www.CloudBookContent.com/Chapter19/index.html.

FIGURE 19-7 Using Gomez Web Performance Benchmarks to measure the user experience.

Revisit Your Service-Level Agreement

As you plan for your site’s scalability, take time to review your service-level

agreement (SLA) with the cloud-solution provider. The SLA may specify

performance measures that the provider must maintain, which, in turn, provides

the resources to which your application can scale. As you review your SLA, make

334

sure you understand the numbers or percentages it presents. For example, many

solution providers claim 99.9 percent uptime and availability. If you do the math,

you will see that if your site is down 0.1 percent of the time, it equals

(0.1%)(365 days/year)(24 hours/day)(60 minutes/hour) = 525 minutes per

year (nearly 10 hours)

Capacity Planning Versus Scalability

Scalability defines a system’s ability to use additional resources to meet user

demand. In contrast, capacity planning defines the resources your application

will need at a specific time. The two terms are related, yet different. When you

first design a system, for example, you might plan for 10,000 users accessing the

system between 6:00 a.m. and 6:00 p.m. Starting with your user count, you can

then determine the number of servers needed, the bandwidth requirements, the

necessary disk space, and so on. In other words, you can determine the capacity

your system needs to operate.

When your user demand exceeds your system capacity, you must scale the

system by adding resources.

Scalability and Diminishing Returns

If an application is designed to scale (vertical, or scaling up to faster resources is

easy), the question becomes “How many resources are enough?” Keep in mind

that you will start a scaling process to meet performance requirements based

upon user demand. To measure performance, you should select benchmarks that

are most meaningful, such as the following:

• Support for 5,000 simultaneous users

• CPU utilization that does not exceed 50 percent

• Loading of the home page in 3 seconds or less

• Loading of all pages in 5 seconds or less

• Completions of all user submitted operations in 10 seconds or less

With your selected benchmarks in place, you can begin to measure the

performance effects of scaling. At first, adding a faster processor, more servers,

or increased bandwidth should have measurable system performance

335

improvements. However, you will reach a point of diminishing returns, as

shown in FIGURE 19-8, when adding additional resources does not improve

performance. At that point, you should stop scaling.

FIGURE 19-8 You will reach a point of diminishing returns, at which point further scaling does not significantly improve application performance.

Performance Tuning

Your goal is to maximize system performance. By scaling resources, you will, to a

point, increase performance. In addition to managing an application’s resource

utilization, developers must examine the application itself, beginning with the

program code and including the objects used, such as graphics and the

application’s use of caching. Caching is the use of a faster disk drive or faster

random access memory to store items that are used repeatedly by the

application in order to improve system performance

This process is known as performance tuning. To start the process, look for

existing or potential system bottlenecks. After you correct those, you should

focus on the 20 percent of the code that performs 80 percent of the

processing—which will provide you the biggest return on your system tuning

investment.

336

Complication Is the Enemy of Scalability

As you design solutions, remember that as complexity within a system increases,

so too does the difficulty of maintaining the underlying code, as well as the

overhead associated with the complex code. Furthermore, as an application’s

complexity increases, its ability to scale usually decreases. When a solution

begins to get complex, it is worth stopping to evaluate the solution and the

current design. Often, complexity occurs because a solution is trying to handle all

possible conditions—some of which may never occur. If you design the solution

for the common conditions (the 80/20 rule) in a simple way, your code will be

easier to modify in the future, perhaps to support horizontal scaling.

CASE 19-7 KEYNOTE CLOUD MONITORING

Keynote, as shown in FIGURE 19-9, is one of the world’s largest third-party monitors of cloud and mobile applications. In fact, the company performs more

than 100 billion site measurements each year. Keynote uses thousands of

measurements that come from computers dispersed across the globe. In addition

to providing notification of site downtime, Keynote provides a real-time

performance dashboard.

Exercise Discuss the importance of testing a cloud solution’s performance from

computers dispersed across the globe.

Web Resources For more information on Keynote Cloud Monitoring, visit

www.CloudBookContent.com/Chapter19/index.html.

337

FIGURE 19-9 Keynote Cloud Monitoring provides site performance in real time.

CHAPTER SUMMARY

An application’s scalability corresponds to its ability to add or remove resources

dynamically based on user demand. One of the greatest advantages of

cloud-based applications is their ability to scale. Unfortunately, often it is difficult

for developers to identify what an application’s user demand will be. Often,

developers will release site resources (servers, CPUs, disk space) capable of

meeting the anticipated initial user demand, plus growth. When developers are

wrong, however, the project will have too few or too many resources. This

chapter examined ways applications can scale up to faster processors or scale

out to utilize more resources.

KEY TERMS

Bottleneck

Caching

338

Point of diminishing returns

Horizontal scaling

Pareto principle

Performance tuning

Vertical scaling

CHAPTER REVIEW

1. Define scalability.

2. List five to ten potential relationships that align with the Pareto principle, such

as how 80 percent of sales come from 20 percent of customers.

3. Compare and contrast vertical and horizontal scaling.

4. Explain the importance of the database read/write ratio.

5. Assume a site guarantees 99.99 percent uptime. How many minutes per year

can the site be down?

339

chapter 20

The Future of the Cloud THROUGHOUT THIS BOOK, YOU have examined the most recent cloud-based

solutions and applications. With many cloud solutions already seemingly quite

cutting edge, it is hard to imagine how the cloud will evolve in the near and far

term.

Learning Objectives

This chapter examines the future of the cloud and cloud-based applications. By

the time you finish this chapter, you will be able to do the following:

• Describe how the cloud will influence future operating systems.

• Describe how the cloud enables location-aware applications.

• Describe how the cloud will change the way people watch TV.

• Describe how the cloud may enable the use of intelligent fabrics.

• Describe how the cloud will enable communication among smart devices.

• Describe how the cloud will drive mobile solutions and mobile solutions will

drive the cloud.

• Discuss the role of HTML5 in enabling new mobile applications.

• Describe the role of home-based clouds.

CASE 20-1 FUTURE OF CLOUD COPMUTING

Janna Quitney of Elon University and Lee Rainie of the Pew Research Center’s Internet & American Life Project surveyed cloud experts and produced “The

Future of Cloud Computing,” shown in FIGURE 20-1. The report includes opinions

and insights as to how the cloud will evolve over the next 10 years.

Quitney also heads Elon University’s Imagining the Internet Center, shown in

FIGURE 20-2, where you will find surveys, articles, and videos that look at the

340

Internet’s past and future. Much of the discussion provides insights into the

cloud’s future as well.

Finally, the Pew Research Center’s Pew Internet & American Life Project

provides surveys and articles on the cloud—from where it has come to where it

is going.

Exercise Read the predictions on the cloud’s future. Argue for one prediction and

against another.

Web Reference For more information on the predictions of the cloud’s future,

visit www.CloudBookContent.com/Chapter20/index.html.

FIGURE 20-1 “The Future of Cloud Computing,” published by Quitney and Rainie, provides insights into the evolution of cloud computing.

341

FIGURE 20-2 The Imagining the Internet site is filled with evaluations of the Internet’s past and predictions of its future.

How the Cloud Will Change Operating Systems

Operating systems exist to allow users to run programs and store and retrieve

data from one user session to the next. As discussed in Chapter 8, Virtualization,

most server operating systems now support and will continue to support

hypervisors that allow multiple (and possibly different) operating systems to run

simultaneously. Virtualized servers will continue to play a large role in driving

the behind-the-scenes operation of the cloud.

As also discussed in Chapter 8, many organizations are going to an

operating-system-on-demand model for which servers download a user’s

operating system, applications, and environment settings to any computer the

user logs in to. With the advent of more programs that run within a browser,

there may be much less need for powerful desktop operating systems, such as

Windows and Mac OS. If you doubt that statement, note the rapid user adoption

of smartphones that feature scaled-down operating systems and applications.

CASE 20-2 HOW THE CLOUD WILL IMPACT PLAYERS SUCH AS MICROSOFT

342

Microsoft is heavily invested in all aspects of computing, including the cloud. Microsoft’s CEO, Steve Ballmer, has publicly stated that Microsoft, like other

companies, is “betting the exact quote is betting our company on the cloud

company on the cloud.” Windows (and SQL Azure) provide a platform as a server

(PaaS) solution for .NET developers, Office 360 provides a powerful software as a

service (SaaS) solution, Microsoft servers are integrating virtualization support,

and the huge revenue generator that is the Windows operating system faces risks

from a “thin” and possibly downloadable operating system. (A thin operating

system is one that performs only the minimal tasks needed for a user to run

programs and save and retrieve information.)

Accordingly, Microsoft has formed a group named Cloud Computing Futures,

which focuses on scalable computing, data center solutions, and cloud-based

software infrastructures. The cloud, therefore, is not just an industry changer; it

is making key players rethink their strategies.

Exercise Describe the cloud’s potential biggest benefit for Microsoft and the

cloud’s biggest threat to Microsoft.

Web Reference For more information on the cloud’s impact on Microsoft’s

future, visit www.CloudBookContent.com/Chapter20/index.html.

Location-Aware Applications

A location-aware application utilizes data from the GPS (global positioning

system) capabilities built into mobile devices to integrate an individual’s location

into the processing it performs. As GPS capabilities are built into more devices,

applications will begin to deliver more location-aware solutions. For example, a

stroll through a mall may result in coupons being pushed to your handheld

device. Grocery store aisles may become interactive zones with retailers able to

deliver “bid-based” coupons in real time to influence your purchases.

Using the cloud and location-aware solutions, you will be able to track not only

the packages you ship, but also stolen cars, lost luggage, misplaced cell phones,

missing pets, and more.

CASE 20-3 COUPIOUS MOBILE COUPONS

343

Users of computers and handheld devices are becoming on-demand consumers: They want what they want, when and where they want it. Coupious Mobile

Coupons provides insights into the future of coupon clipping. The site, shown in

FIGURE 20-3, currently delivers on-demand, location-aware coupons to states

along the east coast of the United States.

Exercise Discuss ways on-demand coupons may change how shoppers make

purchases.

Web Resources For more information on Coupious Mobile Coupons, visit

www.CloudBookContent.com/Chapter20/index.html.

FIGURE 20-3 Through sites such as Coupious Mobile Coupons, users receive coupons on their smart devices from the cloud based on their current location.

Intelligent Fabrics, Paints, and More

The ability to connect devices to the cloud from any place, at any time, will open

the door to a wide range of cutting-edge applications. At the obvious end, devices

that once had to be read by utility or city employees, such as electric meters and

344

parking meters, will connect to the Web and create a report. At the cutting edge,

intelligence will be built into the fabrics of our clothes, bedding, and furniture.

These intelligent fabrics will provide a wide range of services including the

following:

• Automatically adjust room temperature when body temperature becomes too

warm or too cold.

• Notify rooms when we enter or leave so that lights, music, and other devices

are automatically controlled.

• Monitor body functions such as blood pressure, blood sugar levels, stress, and

more, and notify the person and adjust the environment to affect those functions.

• Notify others when an elderly person has fallen.

• Provide deterrence against mosquitoes and other insects.

FIGURE 20-4 presents the Textronics website, which provides a wide range of

wearable electronics.

345

FIGURE 20-4 Through developments at companies such as Textronics, in the near future our clothing may interact with our environment through the cloud.

Similarly, new paints being developed change form based on environmental

conditions. Currently, paints can change color on roads to indicate the presence

of ice. In the future, intelligent paint may report driving conditions back to the

cloud.

CASE 20-4 ABOVE THE CLOUDS: A BERKELEY VIEW OF CLOUD COMPUTING

Reliable Adaptive Distributed Systems Laboratory from the University of California, Berkeley, has published a paper that not only provides a view of

where cloud computing is going, but also is an excellent summary and overview

of the key cloud-computing concepts. The paper, as shown in FIGURE 20-5, is

available on the Web and is a must-read. It addresses the following questions:

FIGURE 20-5 “Above the Clouds” is a must-read for those wanting to become cloud technology experts.

346

• What is cloud computing, and how is it different from previous paradigm shifts

such as SaaS?

• Why is cloud computing poised to take off now, whereas previous attempts

have foundered?

• What does it take to become a cloud provider, and why would a company

consider becoming one?

• What new opportunities does cloud computing drive or make possible?

• How might we classify current cloud computing offerings, and how do the

technical and business challenges differ depending on where in the spectrum a

particular offering lies?

• What, if any, are the new economic models enabled by cloud computing, and

how can a service operator decide whether to move to the cloud or stay in a

private data center?

• What are the top 10 obstacles to the success of cloud computing—and the

corresponding top 10 opportunities available for overcoming those obstacles?

• What changes should be made to the design of future application software,

infrastructure software, and hardware to match the needs and opportunities of

cloud computing?

Exercise Read the “Above the Clouds” paper and answer the questions listed

above.

Web Resources For more information on “Above the Clouds,” visit

www.CloudBookContent.com/Chapter20/index.html.

The Future of Cloud TV

As you have learned, companies such as Hulu are changing the way consumers

watch TV. With greater bandwidth available everywhere, DVDs will soon fall by

the wayside. Not only will TV viewers watch shows on demand in their homes, in

their cars (backseats only, let’s hope), and on airplanes, but also a new breed of

projection devices will make any flat surface a TV screen. Furthermore, users will

be able to interact with content, perhaps changing the outcome of a story in real

time.

347

CASE 20-5 PREDICTING CLOUD TV’S FUTURE

As shown in FIGURE 20-6, Cisco’s Internet Business Solutions Group (IBSG) has developed a presentation that predicts the future of TV based on cloud-based

delivery.

Exercise Discuss how TV companies need to change their business models to

adapt to cloud-based content delivery.

Web Resources For more information on the predictions of the cloud’s impact

on TV, visit www.CloudBookContent.com/Chapter20/index.html.

FIGURE 20-6 Cisco’s IBSG predicts how the cloud will change TV.

Courtesy of Cisco Systems, Inc. Unauthorized use not permitted.

www.slideshare.net/

CiscoSystems/future-of-tv-ott-con-ibsgfinal0228. (accessed 8/3/11).

348

CASE 20-6 FUTURE OF CLOUD COMPUTING

CloudTimes is a San Francisco-based web publisher that provides the latest news on all aspects of cloud computing. Bookmark and visit cloudtimes.org,

shown in FIGURE 20-7. Recently, CloudTimes published 10 predictions about the

future of cloud computing, which you should consider and evaluate.

Exercise Read the 10 predictions by CloudTimes about the future of cloud

computing. Argue for one prediction and argue against one prediction.

Web Resources For more information on the 10 predictions on cloud computing

by CloudTimes, visit www.CloudBookContent.com/Chapter20/index.html.

FIGURE 20-7 The 10 predictions about the future of cloud computing by CloudTimes.

Future of Cloud-Based Smart Devices

For years, futurists have forecast the day when a refrigerator would

automatically create your grocery list and send the list to the store so your

349

essentials could be delivered. The cloud’s ability to provide Internet access and at

any time makes such processing a reality. Some devices may initially be

“intelligent” with respect to their ability to control power consumption, possibly

avoiding power use during peak times and costs.

Using the cloud for communication, devices can coordinate activities. For

example, your car may notify your home automation system that you are down

the block and instruct it to light the house, turn on your favorite music, and

prompt the refrigerator for a list of ready-to-cook meals.

CASE 20-7 POWER-AWARE APPLIANCES

Every household has appliances such as a refrigerators, water heaters, dishwashers, washers, dryers, and so on. If these devices are replaced with

smart appliances—ones that are “energy aware”—they can control their power

demand during peak times and in the process, save the consumer money. The

Pacific Northwest National Laboratory has created a video that discusses such

appliances.

Exercise Discuss three appliances that may benefit from power-control

capabilities.

Web Resources For more information on power-aware appliances, visit

www.CloudBookContent.com/Chapter20/index.html.

Cloud and Mobile

The cloud is going to drive mobile applications. No, wait. Mobile applications will

drive the growth of the cloud. Cloud-based mobile applications are going to

experience explosive growth!

CASE 20-8 MOBILE CLOUD: TOP FIVE PREDICTIONS

Cisco is a key player in the hardware and network technology that drives the cloud. Cisco’s IBSG is a strategic consulting group that examines new and

emerging technologies that utilize the Web. The group has developed five

predictions about the future of mobile cloud computing, “When Mobile and

Clouds Collide.” You read about these predictions in Chapter 14, but here they

are again, shown in FIGURE 20-8.

350

Exercise Discuss whether you think the cloud will drive the growth of mobile

computing more than mobile computing will drive the growth of the cloud, or

vice versa.

Web Resources For more information on the predictions of the cloud’s impact

on mobile computing, visit www.CloudBookContent.com/Chapter20/index.html.

FIGURE 20-8 Five predictions about how mobile and the cloud will drive each other, from Cisco’s IBSG.

Courtesy of Cisco Systems, Inc. Unauthorized use not permitted.

www.thecloudinfographic.com/mobile-cloud-top-5-predictions.html. (accessed

8/3/11).

How HTML5 Will Drive Mobile Applications

Mobile applications are one of the fastest growing IT market segments. Today,

mobile developers have several choices. First, they can implement a simple

HTML-based site that both a computer and a mobile device can display. Second,

they can build separate pages for computers and mobile devices. Or, third, they

351

may need to implement a computer page, an iPhone-specific page, and pages for

other devices such as the Android.

The primary problem facing developers is that many computer-based websites

use Flash-based applications, and Flash does not work on mobile devices. As

such, developers cannot simply build a single website that works on all devices.

Or rather, they could not until the advent of HTML5.

Across the Web, the content that users view within a browser must eventually

become HTML, the hypertext markup language. HTML5 is the 20th anniversary

update release of HTML, which supports capabilities previously available only

through Flash-based development. Using HTML5, developers can create

multimedia content suitable for all devices. As a result, HTML5 will further drive

the success of mobile applications.

Faster Time to Market for Software Applications

The cloud streamlines many expensive and time-consuming development steps.

Companies no longer have to raise the capital required to fund a large data

center. Instead, they can leverage a PaaS solution. Furthermore, companies no

longer have to pay expensive upfront licensing fees for various software tools

such as database management systems. Instead, they can leverage

pay-on-demand solutions. Finally, companies no longer have to guess their site’s

adoption rate so that they can provide the underlying computing resources.

Instead, they can let their cloud-based applications scale to meet demand. The

net result: Developers will release software solutions at a faster pace, bringing

the solutions to a market that expects high functionality and demands lower cost.

Home-Based Cloud Computing

Today, most households have wireless network capabilities that allow family

members to connect to the Web and access sites and content they desire. With

the advent of smart devices, intelligent fabrics, and greater use of radio

frequency identification (RFID) devices, family members will expect on-demand

personalized technology solutions. When a teenager enters his or her room, for

example, the music will play louder, lights may dim, and the computer might

initiate specific Skype connections. If a parent enters the room, the volume will

lower, lights will turn on, and the Skype page might change to an SAT prep

application. In other words, families will use cloud-based devices to customize

352

their environments and experiences. Within such an environment, families will

want to restrict processing to within the home—meaning that they will not want

neighbors to receive signals generated by their devices and clothing. That implies

the ability to encrypt a wide range of signals within the home. To that end, you

should expect to see cloud-based, in-home devices that store family files,

maintain appliance settings, download and store movies and TV shows, and

more.

CHAPTER SUMMARY

This book examines many recent cloud-based solutions and applications. For

those who are new to the cloud, many existing cloud solutions will seem quite

cutting edge. As you have learned in this chapter, we have just begun to scratch

the surface with respect to ways new technologies can use the cloud to

communicate, coordinate, and develop applications that take into account our

location, body feedback, and more. From mobile-device applications to new

operating systems to an integration of smart appliances and devices, the cloud is

really just beginning to form.

KEY TERMS

HTML5

Intelligent fabrics

Location-aware application

Smart appliance

Thin operating system

CHAPTER REVIEW

1. List and describe five ways you think the cloud will change the future of TV.

2. List and describe five potential uses for intelligent fabric.

3. List and describe five ways the cloud will influence the mobile application

market, or vice versa.

4. Discuss the importance of HTML5.

5. Discuss how the cloud will impact future operating systems.

353

6. List and describe three potential location-aware applications.

7. List and describe five ways intelligent devices may work together.

354

Table of Contents for

Cloud Computing

GLOSSARY OF KEY TERMS

Amazon Web Services (AWS) Amazon.com’s cloud solution, which provides

scalable hosting solutions to developers and enterprises for moving applications

to the cloud.

App Software application that users download and install to their phone to

perform specific tasks.

Application program interface (API) Group or library of related programming

solutions that developers can use within the programs they create. For example,

one API might provide developers with prepackaged code they can use to

perform common Internet tasks. Another might provide developers with code

they can use to encrypt or decrypt a document.

Architecture Components that comprise a system, their relationships, and their

interactions.

Auditing Process of examining and verifying a financial record or control.

Black box Software component for which developers can ignore how the

component performs its processing, knowing instead that the component will

produce correct results for required inputs.

Blog Web log; users with little or no web development experience can publish

content in a blog.

Bottleneck Place within a solution or system that due to insufficient resources,

slows the flow of system performance.

Business continuity Steps taken by a business to ensure its continued

operations in the event of a system failure, disaster, or other disruptive event.

Business strategy Plans executed by a company to achieve its business goals.

355

Caching Items that are used repeatedly by an application to improve system

performance are stored by using a faster disk drive or faster RAM.

Capital expenditures (CAPEX) Large expenditures, often for a plant, property,

or large equipment (PPE), which have value over a number of years. As such,

companies cannot write off the expenditures in full during the current year and

must instead use a process called expense capitalization, which allows the

company to deduct a portion of the expense over a number of years.

Cloud-based block storage device Device that stores data in raw (unformatted)

blocks of bits, up to a terabyte. Usually it does not provide a file system to

manage the data stored within a block or blocks.

Cloud-based database Web-based database system that scales to meet system

demands, integrates automatic backups, and allows developers access from

within their programs through an API.

Cloud bursting Scaling of an on-site solution temporarily into the cloud to meet

user demand, typically in response to seasonal or event-driven demand.

Cloud computing Abstraction of virtualized web-based computers, resources,

and services that support scalable IT solutions.

Cloud Data Management Interface (CDMI) Developing standard by the Storage

Networking Industry Association that defines how applications will interface

with cloud-based storage devices behind the scenes.

Cloud file system (CFS) System that allows users and applications to directly

manipulate files that reside on the cloud.

Cloud migration Process of moving one or more applications to the cloud.

CloudNAS Trade name of a particular cloud-based NAS (network-attached

storage) solution.

Collaboration Two or more people working together to achieve a goal.

Colocation Positioning of additional computers and/or communications

equipment at a remote (offsite) location for load balancing, redundancy, or

improved business continuity.

356

Common Internet File System (CIFS) A protocol that defines a standard for

remote file access using a large scale of computers at a time.

Community cloud Cloud solution shared by two or more organizations,

normally with shared concerns, such as schools within a university.

Corporate governance Processes, policies, laws, and controls that affect the way

a company operates.

Coupling Degree of dependence between a calling program and the web service.

Customer-relationship management (CRM) Term used to describe the various

aspects of locating, recruiting, managing, and growing a company’s customer

base.

Data integration Process of combining data from two or more solutions.

Data wiping Process performed by cloud-based storage devices that overwrites

(wipes) a file’s contents when a file is deleted. Then, another application that

allocates the deleted file’s storage locations cannot access the deleted file’s

contents.

Denial-of-service attack Hacker attack that attempts to consume resources on a

system in such a way that slows the system or makes its resources unavailable to

users.

Disaster recovery plan (DRP) Plan that details the steps taken by an

organization to resume business operations following an event such as a natural

disaster or terrorist attack.

Economics Study of the production, distribution, and consumption of goods and

services.

Economies of scale Cost savings gained through expansion. Because of its

buying power and ability to use resources across multiple customers, a

cloud-based service provider normally has greater economies of scale than an

on-site data center.

Ecosystem Environment that consists of living and nonliving things with which

one interacts.

357

Federated identity management (FIDM) Technologies and protocols that

combine to allow the exchange of identity attributes across autonomous systems.

File system Part of the operating system that oversees file and folder (directory)

access.

Functional requirements Requirements that specify tasks a system must

perform.

Google App Engine Development tools that assist with the deployment of

cloud-based applications that run within the Google infrastructure.

Green computing Environmentally friendly IT operations, such as reducing a

device’s power demands when it is inactive.

Grid computing Large-scale use of computers connected by a network (the grid)

to perform parallel processing on complex tasks.

Guest-hopping attack Hacker attack that attempts to gain access to (hop onto)

another guest operating system from within a peer-level guest operating system

running on the same server.

Guest operating system Operating system that resides within a virtualized

environment. For example, a virtual desktop might use Windows and Linux as

guest operating systems.

Halon Chemical used in data-center fire suppression systems, which stops a fire

by removing the level of oxygen in the room.

Horizontal scaling Process of scaling out; that is, distributing a system’s

processes across multiple resources.

Hybrid cloud Solution that comprises a combination of two or more public,

private, or community clouds.

Hyperjacking attack Hacker attack that targets the hypervisor within a

virtualized server or desktop.

Hypervisor Software within a virtual system that oversees and manages the

virtualization process.

358

HTML5 Fifth release of the hypertext markup language, which provides

device-independent support for multimedia capabilities previously available

through Flash-based applications.

iCloud Apple’s cloud-based solution, which facilitates the exchange of music,

photos, videos, and documents.

Identity (or identification) as a service (IDaaS) Cloud-based approach to

managing user identities, including usernames, passwords, and access.

Sometimes referred to as “identity management as a service.”

Infrastructure as a service (IaaS) Scalable, cloud-based collection of server,

data storage, and network hardware upon which a company can install and

manage its operating system and database management software in order to

host their applications within the cloud.

Instant messaging (IM) Originally a text-based method for users to

communicate; today, IM supports text, audio, and video interaction.

Integrated development environment (IDE) Software system for application

developers that provides a user interface that allows access to key

software-development activities, such as editing, compiling, and testing.

Intelligent fabrics Clothing that includes technology and computing devices

within the fabric that can be used to monitor body temperature, blood pressure,

and other vitals. The technology may be used to broadcast an individual’s

position to location-aware applications.

Internal control Policy put in place by a business to provide confidence and

assurance on the accuracy of the data reported by the company.

Interoperability Measure of a software component’s ability to support different

platforms and programming languages.

IT governance Processes, policies, and controls that affect the way an IT staff

operates to maximize a company’s ROI and to align its business strategy and IT

operations.

Key performance indicators Business ratios and results measured and

evaluated by a company to understand the state of the business and its

operations.

359

Load testing Simulation of user demand on a site.

Location-aware application Application that utilizes GPS-based data to

integrate an individual’s location into the processing performed by the

application, such as location-specific delivery of coupons and home environment

processing.

Loosely coupled Ideal relationship between programs and the web services

they call on, in which the program need only know the location of the web

service (its URL), the name of the functions (methods) the web service provides,

and parameters the program can pass to the functions.

Man-in-the-middle attack Hacker attack that attempts to intercept messages

between a user and a system, insert, and then send messages on behalf of the

user or the system.

Mashup Software solution built from a combination of two or more other

solutions.

Mean time between failures (MTBF) Measure of the estimated time a device

will operate without failing.

Method Function that performs a specific task.

Middleware Software that sits between two applications to facilitate the

exchange of data.

Mobile cloud Applications and web pages that originate from sites within the

cloud with which users download or interact via a mobile device.

Multitenant solution SaaS or PaaS solution for which two or more customers

may share computing resources simultaneously. Many SaaS solutions use a

multi-tenant architecture.

Network-attached Storage (NAS) Storage devices that can be accessed over a

computer network rather than being directly connected to the computer.

Network File System (NFS) A system that allows directories and files to be

shared with others over a network.

Nonfunctional requirements Requirements a system must meet to complete its

functions, such as performance, response time, and security.

360

Operational expenses (OPEX) Expenses that correspond to a company’s cost of

operations.

Packet sniffing Process of examining network packets that travel past a system

within a wired network or through the air within a wireless network.

Pareto principle Rule of 80/20 that describes relationships between two items,

such as 80 percent of a company’s sales are generated by 20 percent of its

customers.

Performance tuning Process of modifying different aspects of a system or the

supporting hardware to improve system performance.

Platform Combination of hardware and software resources that yields a

run-time environment, such as a Windows- or Linux-based environment.

Platform as a service (PaaS) Software and hardware that provides an operating

system (such as Windows or Linux) upon which developers can create and

deploy solutions, without the need to administer the underlying system software.

Examples include the Google App Engine and Microsoft Azure.

Point of diminishing returns Point at which adding resources fails to change a

system’s performance or output.

Portability Measure of a system’s ease of moving from one platform to another.

Predictive analytics Tools that perform statistical analysis in order to predict

future behavior.

Private cloud Solution in which the underlying hardware and software is owned

by a specific entity (company) for use by the entity and its customer.

Profit margin Measure of a company’s profitability and effectiveness, calculated

by dividing a company’s net income by its revenues.

Provisioning Process of creating a user account on a system; removing the

account is called deprovisioning.

Proxy Person or entity that performs a task on behalf of another. Within the

mobile web, proxies may perform a server-based interaction on behalf of a

mobile user to provide a layer of security between the server and device.

361

Public cloud Solution available to the general public, such as Google Docs.

Redundancy A system design that duplicates components to provide

alternatives in case one component fails.

Redundant array of independent (or inexpensive) disks (RAID) Collection of

disk drives across which a file system stores information about a file, as well as

recovery information the system can use to recover the file should one or more

of the disk drives fail.

Reliability Measure of a system’s ability to process without errors or failure.

Return on investment (ROI) Business analysis ratio that lets a company

compare the potential return of two or more investments, calculated by taking

the revenue (or savings) divided by the cost of the investment.

Right-sizing Process of aligning computing resources (e.g., processors, servers,

and disk capacity) with user demand. Because cloud-based providers can scale

up or down quickly, based on user demand, they make it easier for companies to

right-size resources.

Robust Ability to function in the event of errors, such as a server failure.

Scalability Ability to increase or decrease resource use (such as servers or data

storage) on demand, as processing needs require. Scalable applications can scale

up (increase) resources when there is high user demand and scale down

(decrease) resources when there is low demand.

Security Assertion Markup Language (SAML) Language that applications use

to package a user’s security credentials.

Service-level agreement (SLA) Clause within a service provider’s contract that

specifies the level of service (such as system uptime or MTBF).

Service-oriented architecture (SOA) System design upon which the solution is

described in terms of one or more services, usually distributed on the Web.

Single sign-on (SSO) Process that allows a user to log into a central authority

and then access other sites and services for which he or she has credentials.

362

Smart appliance Appliance such as a refrigerator or washing machine that

integrates technology to perform specific tasks such as reducing energy demands

during peak load times or performing inventory analysis of groceries.

Software as a service (SaaS) Web-based software solution that users access

through a web browser.

Software development kit (SDK) Collection of APIs that developers can

integrate into programs to use a specific device, platform, or operating system.

SQL-injection attack Hacker attack that attempts to insert SQL queries into one

or more fields of a web-based form. Depending upon how the server processes

the form’s data, the SQL commands may be inadvertently executed.

Storage area network (SAN) Network that combines hardware and software to

make storage devices, which may reside anywhere within a network, appear to

be local.

Streaming media Retrieval of media, such as audio or video, often within a web

browser, that does not require a complete download of the media file before the

playback can begin.

System requirements Functional tasks and nonfunctional operations that a

system must perform.

Thin operating system System that performs only the minimal tasks needed for

a user to run programs and save and retrieve information.

Total cost of ownership (TCO) Total direct and indirect costs, including both

capital and operating expenses, of owning a particular piece of equipment or

other capital good. It is an important metric for organizations trying to decide

whether to invest in their own data centers or move to the cloud.

Transcoder Server that analyzes and possibly changes content destined to user

devices.

Uninterruptible power supply (UPS) Battery backup system that typically

provides 10 to 15 minutes of power to devices in the event of a power failure, so

that users can save files and shut down the systems in an orderly way.

Usability Measure of a system’s ease of use.

363

User-experience testing Software test that attempts to simulate and evaluate

user experience with the site, possibly including slower Internet bandwidth, an

older browser, or a slower computer.

Vendor lock-in Situation when it is difficult or impossible for a company to

change a vendor because of the vendor’s inability to export data or a unique

service provided by the vendor, upon which the company relies.

Vertical scaling Process of scaling up; for example, moving a system to a faster

disk drive, adding faster RAM, or using a faster disk drive to improve a system’s

performance.

Virtual desktop Desktop computer that runs two or more operating systems

that users can quickly switch back and forth. A virtual desktop is well suited for

developers, testers, and help-desk support staff who must service multiple

operating systems.

Virtualization Hardware and/or software used to create a perception. For

example, with virtual desktop software, a user running an Intel-based computer

may be able to run multiple operating systems simultaneously. Similarly, using

server virtualization, a single server may appear to be running multiple

(different) server operating systems simultaneously, as if the server had multiple

processors.

Virtual meeting Online meeting between two or more users. Using streaming

video, users can achieve a face-to-face experience. Most virtual meeting

platforms allow document sharing, whiteboard content presentation, and

application sharing.

Virtual presentation Cloud-based presentation that users can retrieve and

watch asynchronously at a time and from a place that best suits the users’ needs.

Virtual presentations often combine a PowerPoint presentation with video or

audio.

Virtual private network (VPN) Hardware and/or software used to establish a

secure connection to a local-area network across the Internet from a remote

location. The remote user can, in turn, access network resources as if a physical

connection to the local-area network existed.

364

Virtual server Server that runs two or more operating systems simultaneously.

The operating systems may be the same, or they may be different, such as

Windows and Linux. Many companies use server virtualization to consolidate

servers and drive server CPU utilization.

Virus Program written by malicious programmers with the goal of damaging a

target computer or disrupting the computer’s normal operations.

Voice over Internet Protocol (VoIP) Technology that allows users to place

phone calls over the Internet.

Web 2.0 Tools and websites that allow users to publish content (videos, blogs,

tweets, and social media posts) without having to understand the web

development process.

Web Service Description Language (WSDL) Language used to describe a web

service, its methods, and their parameters.

Web services Web-based software modules that programs can call via the

Internet to perform specific tasks.

Widget Application that, once downloaded and installed on a device, remains

active (constantly runs), possibly updating its icon or display with context- or

location-sensitive content.

Wiki Tool for online collaborative document editing. The largest and most

popular Wiki is the Wikipedia online encyclopedia.

Windows Azure Microsoft platform that developers can use to move their

applications to the cloud.

Yahoo! Pipes Tool that lets developers create mashups by joining (piping) the

output of one data source into another data source, filter, or display tool without

having to write program code.

365

Math 2568 Autumn 2020

Homework 4

For each of the following sets of vectors S,

• Find a minimal spanning set T for the subspace W = Span(S) from the set of vectors in S (T ⊆ S).

• For each vector vi ∈ S omitted from T , write it explicitly as a linear combination of the vectors in T .

Problem 1 S = {v1, v2, v3, v4, v5, v6} where

v1 =

 

2 3 −1 4 6

  , v2 =

 

9 −4 −11

7 5

  , v3 =

  −30 25 −47 −16 −2

  , v4 =

 

0 −5 7 11 17

  , v5 =

 

2 0 6 11 −7

  , v6 =

 

35 −6 11 −50 −34

  ,

Problem 2 S = {v1, v2, v3, v4} where

v1 =

 10

1

  , v2 =

 −20

2

  , v3 =

 11

2

  , v4 =

 −23

1

  ,

Problem 3 S = {v1, v2, v3, v4, v5} where

v1 =

 

2 3 −1 9 5

  , v2 =

 

6 4 5 −3 7

  , v3 =

  −2 2 −7 21 3

  , v4 =

 

18 17 7 21 29

  , v5 =

 

9 6 3 −2 1

  ,

Problem 4 S = {v1, v2, v3, v4} where

v1 =

 

1 2 −1 3

  , v2 =

  −2 1 2 −1

  , v3 =

  −1 −1 1 −3

  , v4 =

  −2 2 2 0

  ,

For each of the following matrices, find a minimal spanning set for its

• Column space

• Row space

• Nullspace

Problem 5 A =

 

2 3 0 1 0 7 2 1 13 16 3 −5 −3 8 22 −1 8 −1 −11 −18

 

Problem 6 A =

 

1 2 1 0 2 5 3 −1 2 2 0 2 0 1 1 −1

 

Problem 7 A =

  4 6 10 7 211 4 15 6 1

3 −9 −6 5 10

 

Problem 8 A =

  −1 0 5 −14 0 −12 3 2 4 −11 16 12 7 0 −5 8 22 46 −5 −5 7 −26 −13 −32 0 7 11 −19 −11 −40

 

For the remaining two problems, you are to determine of if the given statement is true or false, and provide a short justification for your answer (for example, an argument showing it is true, or a counter-example if it is false).

Problem 9 If S and T are two sets of vectors in Rn and every vector in T can be expressed as a linear combination of vectors in S, then every vector in S can be expressed as a linear combination of vectors in T .

Problem 10 If A is a real n × n matrix satisfying the matrix equation A ∗ A = 0n×n, then the column space of A is a subspace of the nullspace of A.

MATH 2255, Fall 2020 Homework 4

Due Friday, September 25, 11:30am.

Please upload your homework on Carmen. Late homework is not accepted. I encourage you to work with others on homework problems, but you must write up your own solutions. Solutions must be presented clearly, or will be marked down.

(1) Consider the ODE given by

y′ = −y − 1, y(0) = 0. (a) Determine yn(t) for each n, where the yn are the functions obtained by successive

approximation. You should guess yn, then prove by mathematical induction that your guess is correct.

(b) Write down y∞(t) using elementary functions. (c) Solve the ODE to obtain the actual solution y(t). (d) Plot y1, . . . , y4, along with the actual solution y(t).

(2) Let f(t, y) be a function such that fy = ∂f/∂y is continuous in some rectangle D. Show that there is a positive constant K such that

|f(t, y1) −f(t, y2)| ≤ K|y1 −y2|, where (t, y1) and (t, y2) are any two points in D having the same t-coordinate. This exercise proves that if fy is continuous, then the Lipschitz condition is true. [Hint: Hold t fixed, and view f(t, y) as a function of y only. Then use the mean value theorem on f, and choose K to be the maximum value of |fy| on D.]

(3) Solve the given difference equations in terms of the initial value y0, and describe the behaviour of the solution as n →∞. (a) yn+1 = −0.9yn; (b) yn+1 =

√ n+3 n+1

yn;

(c) yn+1 = (−1)n+1yn.

(4) A college student borrows $8000 to buy a car. The lender charges the annual interest rate of 10%. What monthly payment is required to pay off the loan in 3 years?

(5) Solve the following differential equations.

(a) y′ = x−e −x

y+ey ;

(b) (1 + t2)y′ + 4ty = (1 + t2)−2; (c) (3x2 − 2xy + 2) + (6y2 −x2 + 3)y′ = 0.

Get help from top-rated tutors in any subject.

Efficiently complete your homework and academic assignments by getting help from the experts at homeworkarchive.com