Chapter 4

Cloud Computing

Chapter 3 discussed services and how Web services are used to connect services. When you place those services in a data center and connect to them over the Internet, you have the basis of cloud computing. The advent of relatively inexpensive hardware (servers and storage) along with the growing availability of high-speed Internet connections made it possible to develop large data centers that can be located most anywhere in the world. There is more, however, to cloud computing, and this chapter provides basic information about it.

This chapter also describes ways that organizations of any size can use a service-oriented architecture (SOA) that takes advantage of cloud computing and why most organizations likely will, as a result, experience a blurring of internal and external services. The chapter finishes with descriptions of the types of clouds and categories of cloud providers.

Continuing with the audio-video (AV) system analogy from the previous chapter, when I started using a digital camera, I loaded the digital photos onto a PC. At some point I decided to upload photos to a website that manages digital photo albums so that it was easier to share photos. More recently, I’ve had my older physical photos digitized and I uploaded them to the photo album service as well. My high-definition television (HDTV) is connected to the Internet. This means that I can use my HDTV to view photos managed by the photo album service in the cloud.

I actually have more in the cloud. For instance, I have my calendar, some of my music, and multiple email accounts in the cloud. In the cloud, I only pay for what I use. Moreover, some things are free up to a point (a certain storage amount or a certain level of usage). It is inexpensive to have my digital content in the cloud. It also means I can access that content using my smartphone or most any other device connected to the Internet. Figure 4.1 illustrates the use of the cloud with my AV system.

image

Figure 4.1 HDTV and smartphone connected to the cloud.

The AV components (receiver, DVD, etc.) are analogous to services internal to an organization. An organization may, for example, use similar email and calendaring services available in the cloud. An organization might also use the cloud for storage, which would be analogous to storing photos or music.

Blurring of Internal and External Services

In an SOA that takes advantage of cloud computing, the distinction between internal and external services will become less apparent. In our story, C. R.’s organization changed from an aging internal customer relationship management (CRM) product to an external CRM service because the external service was more economical and had more functionality. The change may or may not be dramatic, depending on how internal systems were connected to the aging internal CRM product.

Earlier, I described how I put my digital photos in the cloud and view the photos on my HDTV. Figure 4.1 shows that I kept the turntable and CD player for music that I have owned for a long time. Given my background in software development, I could have digitized my existing music, loaded it on a PC attached to my AV system, and programmed software to manage all that content on my PC. That, however, would be a lot of work and would take a lot of time. I would also need to make sure my infrastructure provides the appropriate backup capability, including off-site backup.

It turned out, however, that I rarely played a CD and never played my old vinyl records. So, I decided it was time to move on. I sold my records and disconnected the turntable and CD player. My HDTV allows for two HDMI inputs. That meant I could also disconnect my receiver. And, I am quite satisfied with using only the online music service. Figure 4.2 shows how much simpler my AV system is now that I am using the cloud for my music.

image

Figure 4.2 Simpler AV system.

Organizations might find that moving more to the cloud greatly simplifies their internal systems—not unlike the AV system analogy. In all likelihood, it is possible to find multiple service providers in the cloud for the same type of service. This creates a dynamic environment, where cloud computing providers compete on features or innovations that are independent of the connections. Competition could be on pricing, content, or other features that allow for highly customized interactions.

It may be obvious what will eventually happen with my AV system. I am using the DVD player less and less to watch movies since most movies I watch now are streamed. My main use of the DVD player is for playing music from the music service in the cloud (the DVD player has an Internet connection). The reason I do this is because to play the music on the HDTV requires the screen to be on, which I don’t like. So, once I have an HDTV that allows the screen to be turned off while the sound is left on, I can get rid of the DVD player. Also, my cable provider might provide an alternative to the digital video recorder (DVR) that stores recorded video using a service in the cloud. In fact, the storage capacity of the DVR is limited since I have started recording video in HD. So, I could use some type of elastic storage for my recorded video. With these changes, all I need is a cable box. If a future HDTV allows for cable features such as on demand—or has a place to insert a proprietary cable card—then all I will have in my AV systems is the HDTV. That is simplification.

Organizations will be affected by additional services becoming available in the cloud. It can be difficult for an internal development group in some organizations to compete with a cloud computing provider that can recoup development costs by having many more customers than any internal development organization could imagine. The external provider can achieve better product at a lower cost because of specialization. Internal development organizations may therefore shift to doing less development. The emphasis internally may shift to making all the connections work properly and integrating new services that might give an organization a competitive edge.

Organizations of Any Size Can Use a Service-Oriented Architecture with Cloud Computing

The use of an SOA with cloud computing is not limited to large organizations. In fact, this architecture represents an opportunity for small- and medium-size organizations. Many services are provided on some type of fee-for-use basis, which will make them economical for organizations of most any size. Other services are provided at no cost. In the story of C. R.’s business trip, the travel service might charge for each use, whereas the external CRM service might charge a monthly fee for a certain number of users and the car rental and hotel services might be free.

The external expense report service used by C. R. in his trip is an example of a service that can be used by organizations of any size. A one-person organization could either use only the expense reporting portion of the service or download the expense report data into accounting software on a personal computer. A larger organization that uses a payroll service could further automate expense report processing by having the expense report service send reimbursement information to the payroll service.

The Cloud

The cloud provides software and hardware resources via the Internet. The connections into the cloud are often referred to as application programming interfaces (APIs). These APIs use Web services, such as SOAP, REST, and JSON described in Chapter 3. (The cloud component of the virtuaal private assistant (VPA) in the story of C. R. makes extensive use of APIs.) The content sent over these APIs is usually XML or some form of name/value pairs.

Figure 4.3 uses a Venn diagram to illustrate the relationship between Web services, SOA, and cloud computing. Cloud computing is shown within Web services to indicate that cloud computing uses Web services. You can, however, use Web services without cloud computing. As discussed in Chapter 3 with Figure 3.14, you can have an SOA without Web services as well as with Web services. Similarly, you can use cloud computing without having an SOA. This book emphasizes SOA with cloud computing and using Web services for connections—this is the shaded area of the Venn diagram (SOA with cloud computing).

image

Figure 4.3 Relationship of Web services, SOA, and cloud computing.

In Chapter 3, Figure 3.2 illustrated the basics of a service-oriented architecture. That same architecture can be used with cloud computing. Figure 4.4 illustrates a similar SOA, this time with various combinations of cloud computing. A service provider can be in any type of cloud or be an internal service. Similarly, a service consumer can be a service within any type cloud or be an internal service.

image

Figure 4.4 SOA basics with various combinations of cloud computing.

The services provided in the cloud come from multiple organizations. These organizations are referred to as cloud providers. As a result, the cloud has multiple services provided by multiple cloud providers. A cloud provider usually strives to ensure high-availability of its infrastructure. Some cloud providers have the building blocks to create services: software tools, database management systems, hardware, backup-services, and so on. Other cloud providers have suites of services such as a counting, CRM, document management, and many more. Furthermore, some cloud providers that have suites of services, also provide tools to customize the suites to meet particular business needs.

Cloud providers often price their infrastructure and services on a demand basis. For example, you could pay by transaction or by the amount of storage on-you are using. Some cloud providers have the capability to scale up dynamically for such things as peak transaction loads or unexpected higher storage requirements. The cloud usually allows organizations to avoid significant upfront costs since you only pay for what you use as you use it.

Whether you intend to build your own services in the cloud or use a cloud provider’s services, you need to consider issues of security, software tools, and software infrastructure, along with the hardware infrastructure. Security is often a major concern if using a public cloud because it is a shared environment.

Types of Clouds

ent Public cloud: The email, calendar, photo, and music services used in the AV system analogy are all in the public cloud. Nearly all of the services used by the VPA in the story about C. R.’s trip are also in the public cloud. The VPA itself is in the public cloud as well. Typically, a public cloud provider allows multiple organizations to provide multiple types of services (often referred to as multi-tenancy). The location for the underlying data center could be most anywhere in the world (often referred to as location independence). The underlying hardware is usually chosen by the cloud provider and not the users of the service (here you will likely find virtualization and device independence). The public cloud can also be described as an external cloud when viewed from within a given organization.

ent Community cloud: A community cloud is more restricted than a public cloud. The restriction is to a “community.” The restriction could be based on an industry segment, by general interest, or by whatever way a group might be defined. These clouds could be multi-tenanted. The underlying data center might be provided by a third party or by one member of the community.

ent Private cloud: A private cloud is restricted to one organization. Most often that organization is the single tenant—that is, unless the organization might want to host a private, multi-tenanted cloud for various internal segments or units of the organization. The data center for private clouds is managed by the organization. This can also be called an internal cloud.

ent Virtual private cloud: C. R.’s organization wanted to get out of the business of maintaining an enterprise data warehouse in its data center and decided to use a virtual private cloud. A virtual private cloud involves some type of partitioning to ensure that the private cloud remains private. Typically, a virtual private cloud provider allows the definition of a network similar to a traditional network. Within such a network, it is possible to have systems such as database managements systems, business information (BI)/analytics systems, application servers, and so on.

ent Hybrid cloud: This is the combination of any of the above. In reality, this is a somewhat ambiguous term since an organization might have a private cloud and use the public cloud. That could be seen as a hybrid cloud or it could be simply using two types of clouds.

Categories of Cloud Providers

ent Infrastructure as a service (IaaS): This contains the physical and virtual resources used to build the cloud. These cloud providers provision and manage the physical processing, storage, networking, and hosting environment. This is the data center or, in some cases, the data centers. Pricing is often based on resources used.

ent Platform as a service (PaaS): This provides a complete computing platform. These cloud providers provision and manage cloud infrastructure as well as provide development, deployment, and administration tools. Here you will find the features that make a platform: operating systems, web servers, programming language, database management systems, and so on. This is where the provider might provide elasticity: the ability to scale up or scale down as needed. You will also find some level of reliability provided by the software platform. For example, some type of fault tolerance might be provided for the database management system. In the story of C. R., when his organization wanted to move to a virtual private cloud, it most likely looked for a PaaS cloud provider that provides the software and tools to support existing systems. Pricing can be on many dimensions. For example, pricing could take into account the type of database management system, the level of activity, the amount of storage, and computational time/resources used.

ent Software as a service (SaaS): This provides complete software systems. SaaS is a common way to provide applications such as email, calendars, CRM, social networks, content management, documentation management, and other office productivity applications. SaaS is also known as “on-demand software.” (The AV example earlier in the chapter uses multiple SaaS cloud providers—as does the story about C. R.) Pricing is often on per user basis, either monthly or yearly.

Figure 4.5 illustrates the relationship of IaaS, PaaS, and SaaS in the cloud computing stack.

image

Figure 4.5 Cloud computing stack: IaaS, PaaS, and SaaS.

SaaS cloud providers are what most people mean when they refer to “the cloud.” They provide the services and related data that can be used directly or combined in some way with other SaaS providers or with your own unique data and services.

Summary

The cloud computing model affords the opportunity to deliver applications via the Internet, preclude the costs of owning and operating data centers, and leverage the work of other software developers. This chapter described the categories of cloud providers and, the functions of cloud service management. It also described the relationship among Web services, SOAs, and cloud computing.

The use of any technology, of course, must exist in the context of our organizations. Organizations have many forces that affect the adoption of new technology. The next part of the book will delve into the forces affecting the adoption Web services, service-oriented architectures, and cloud computing.