What is cloud computing?

Cloud computing is a computational model for the distribution of services based on a set of resources, such as virtual processing, mass memory, and networking, which can be dynamically aggregated and activated as platforms to run applications, satisfying appropriate levels of service and optimizing the efficiency of resource use.

This can be acquired and released quickly with minimum management effort or interaction with the service provider. This cloud model is composed of five essential characteristics, three service models, and four deployment models.

In particular, the five essential characteristics are as follows:

  • Free and on-demand access: This allows users to access—through user friendly interfaces—the services offered by the provider without human interaction.
  • Ubiquitous access to the network: Resources are available throughout the network and can be accessed—via standard devices—such as smartphones, tablets, and personal computers.
  • Quick elasticity: This is the ability of the cloud to increase or reduce the resources assigned in a rapid and automatic way, such as making it seem that they are infinite to the user. This provides great scalability to the system.
  • Measured service: Cloud systems constantly monitor the resources offered and optimize them automatically based on the estimated use. In this way, the customer only pays for the resources that are actually used in that particular session.
  • Resource sharing: The provider provides its resources through a multi-tenant model so that they can be assigned and reassigned dynamically, based on the customer's request, and used by multiple consumers:

Cloud computing main features

However, there are many definitions of cloud computing, each of which has different interpretations and meanings. The National Institute of Standards and Technology (NIST) has tried to provide a detailed and official explanation (https://csrc.nist.gov/publications/detail/sp/800-145/final).

Another feature (not listed in the definition of NIST, but which is the basis of cloud computing) is the concept of virtualization. This is the possibility of executing multiple OSes on the same physical resources, guaranteeing numerous advantages, such as scalability, cost reduction, and greater speed in providing new resources to customers.

The most common approaches to virtualization are as follows:

  • Containers
  • Virtual machines

Both solutions have almost the same advantages as far as the isolation of applications is concerned, but they work at different levels of virtualization because the containers virtualize the OS and the virtual machines virtualize the hardware. This means that the containers are more portable and efficient.

The most common application for virtualizing through containers is Docker. We will go through a brief introduction to this framework and we will see how to containerize (or dockerize) a Python application.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.117.196.184