Cloud Computing Components

So far, we’ve covered the definition of cloud computing, the essential characteristics to create a cloud environment, and the three common types of cloud services. Cloud services provide an automated way of renting the computing resources of the underlying physical and virtualized infrastructure, which is the data center. To create the cloud environments, cloud providers need to build multiple data centers, geographically separated, to secure the needed reliability and availability of the resources.

To understand what changes in the data center and why, it is important to understand the relationship between the cloud and the consumer and how it develops.

The providers want to utilize the resources of their data centers better and increase their profits. For that purpose, they need to make the resources available, and they have to be able to manage these resources in a flexible way. They must adopt the needed levels of virtualization and abstraction, organize the resources into pools, and allow for flexible and quick provisioning of resources and their release. This can happen when orchestration is used to dynamically manage resources and automate usage. For this to happen, different tools and approaches are employed. Programs called orchestrators can coordinate the different components of the data center, such as storage, compute, and network, by supporting the required abstraction to bring up the virtualized environment. Additional automation through application programming interfaces (APIs) can be used for deploying containers, microservices, runtime environments, and the needed applications. Automation, orchestration, and APIs in the data center were discussed in Chapter 19, “Using APIs,” and Chapter 20, “Automating the Data Center.”

Once the data center has achieved the needed levels of automation and orchestration, the resources need to be made available to the consumers. The providers create service offerings. These offerings define what resources can be used, the cost model, the licensing, and additional dependencies on other resources. These offerings not only have technical aspects but also financial. This means that to create the offerings, providers need tools that can simulate both the technical and business logic. Special applications called catalogs are used for this. The catalogs can communicate through APIs with the orchestrators and the other management and automation frameworks of the data center to gain access to the resources, which are exposed and grouped into different services. In the catalog is information for the technical services supported by the orchestrators; then service offerings can be created with the rest of the attributes—cost model, budgets, time restrictions, regional restrictions, reporting, chain of approval, and so on.

Once the service offerings are ready in the catalogs, they need to be presented to the customers. For this, applications called portals are used. The portals are intended to provide the needed interface for the consumers to access and work with the cloud resources.

This whole relationship can be seen in Figure 21-11, which presents the cloud solution framework. These are the separate components that build the cloud environment.

  

Figure 21-11 The Cloud Solution Framework

The virtualized multitenant environment includes the underlying infrastructure. Resource management is responsible for the pooling of resources, their usage, and their release. The business services provide the business and financial logic for the catalog application to create the service offerings. The front portals work together with the catalogs, orchestration, and automation to make the service offerings available to the customers. Operational management covers the monitoring, reporting, and access control services.

The data centers, being a major part of a cloud environment, have certain architecture and components that form the “cloud operating system” or the “cloud stack.”

To map the cloud solution framework to the data center in a more technical way, Figure 21-12 shows the cloud solution architecture.

  

Figure 21-12 The Cloud System Architecture

At the bottom of Figure 21-12 is the physical infrastructure, which provides the resources for the needed abstraction and virtualization. The virtualization is created on the top of the physical servers, network communication, storage infrastructure, and systems. The virtualization extends even outside single data centers for the purposes of redundancy and high availability.

The next step is the system abstraction. This is when, with the help of automation and orchestration, the virtualized resources are abstracted to be separated from the dependencies on the specific systems and then organized into pools.

This creates the foundation on which the catalogs will be created and the services, such as IaaS, PaaS, and SaaS, will be offered and published to the portals.

The terms catalog, portal, and orchestrator are used in this discussion for clarity. They describe certain major functions that are fundamental for the cloud computing. These functions can be implemented in separate applications, or they can be combined within a few applications, even on a single one. It all depends on the size of the cloud that needs to be created and the services to be offered. These principles are used by the big three cloud providers—AWS, Azure, and GCP—with their own implementations and automation. On their portals you can find further documentation on the specific approach used to build their cloud environments.