Cloud Computing Definition
The NIST defines cloud computing as follows (see Figure 21-1):
Figure 21-1 Cloud Computing Overview
“Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (for example, networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model is composed of five essential characteristics, three service models, and four deployment models.”
This definition specifies a flexible, highly automated approach to how the computing resources of a data center, or multiple data centers, can be consumed and rented to external or internal users. The five essential characteristics describe in detail the requirements for such an environment. Based on that, the consumer of the resources does not need to bother with where exactly the resources are and how they are managed. This is done by the cloud service provider, the owner of the data centers. Also, the cloud service provider is responsible to build the infrastructures with the needed redundancy, reliability, and scalability. The required automation and orchestration need to be in place to allow the computing resources to be provisioned and made available transparently for the end user.
Nowadays, users are highly mobile. That is why these resources, which are called “cloud services,” must be accessible, which happens through network connectivity. Access through the Internet or through protected lines is essential, as the user has to be capable to connect from anywhere and on any device. The computer resources offered cover the whole variety in the application stack—from providing compute in the form of virtual machines, even dedicated physical servers, going through platforms, up to the application resources that run in the cloud.
The cloud approach offers advantages for both the cloud users and the cloud service providers.
For the end user, some of the benefits include the following:
- The end user does not need to build and maintain a data center.
- The computing resources are available when needed.
- Scalability is not an issue. The resources scale based on the needs of the consumer.
- Redundancy and reliability. Usually, the consumer needs to design and deploy solutions to achieve the needed service uptime and to prevent loss of data. With the cloud, there are solutions integrated with the infrastructure at different levels and are optional.
- Optimizing expenses. The cloud services are offered and consumed based on the pay-as-you-go model, which means that the end user pays only for the resources used and only for the amount of time they are used.
The cloud offers a way for the user to plan for and to manage costs. The expenses shift from capital expenses (CAPEX), which are needed if the infrastructure needs to be purchased and deployed, to operational expenses (OPEX) due to the way in which the cloud services are offered, measured, and paid for.
The CAPEX for building a data center includes not only the budget to buy the needed equipment, but also the real estate (the premises can be rented or bought), expenses for the redundant power supplies and cooling (which is a huge expense), and the budget for the needed services to design, deploy, operate, and maintain the entire infrastructure. In the process, it is common to have unexpected expenses, which are exceedingly difficult to plan for. Also, it is hard to plan for future releases of the applications, additional services needed, and additional resources that need to be added to the data center. Also, experts are needed to operate and maintain the data center, including all its components, up to the level of the applications. And these teams need to go through continuous education, as the technologies evolve and change. In such a situation, a small- to medium-sized company that needs to run its applications, but does not want to invest in building the needed infrastructure, can benefit from the cloud services, as it will be able to plan in advance, to upsize or downsize resources, and to rely on the mechanisms deployed by the cloud service providers for redundancy and reliability based on service level agreements (SLAs). And it is not only small- to medium-sized companies that can benefit from using cloud services. Take Netflix for example—a huge content streaming company. Netflix started out using its own resources, but the need to support massive scale and optimize costs cause, Netflix to move to the Amazon Web Services (AWS) cloud. This allows Netflix to support more than 200 million members in more than 190 countries worldwide, resulting in more than 125 million hours of TV shows and movies watched every day!
The cloud service providers benefit from this approach in a variety of ways:
- The cloud computing approach allows the owners of data centers to achieve huge and efficient utilization of the resources. When the resources can be managed in such a way, the costs for maintaining the data center and expanding its resources are optimized as well.
- This approach allows for increased profits and at the same time an expansion in the services offered.
- The aggregation of customer demand brings another way of better utilizing resources.
- Through the adoption of orchestration and automation, which are mandatory when building a cloud, the processes of operating and maintaining the data centers are highly optimized, the results are repeatable, and the outcomes are predictable. This leads to better usage of the computing and human resources.
The three biggest cloud service providers are
- Amazon Web Services (AWS)
- Microsoft Azure
- Google Cloud Platform (GCP)
They offer a huge variety of cloud services, covering all the levels of the data center, including infrastructure services such as VMs and storage as well as platform services such as containers, microservices, and databases, and application services.