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