BCB601: CLOUD COMPUTING
Module 2
Chapter2: Understanding
Containerization
Cloud Computing
MODULE 2 Syllabus
• Cloud-Enabling Technology: Cloud Data Center Technology, Modern
Virtualization, Multitenant Technology, Service Technology and Service APIs.
• Understanding Containerization: Fundamental Virtualization and
Containerization, Understanding Containers, Understanding Container Images.
• TextBook: Chapter 5 (5.2-5.5) Chapter 6 (6.2- 6.4)
Textbook:
Thomas Erl, Eric Barcelo Monroy Cloud Computing: Concepts, Technology,
Security, and Architecture 2nd edition, 2023.
2
Fundamental virtualization and containerization
Operating System Basics
• An operating system is software installed on a computer that provides a range of
programs, tools, libraries, and other resources used to manage a computer, as well
as programs used to host and support the ongoing operations of applications
installed on the operating system.
• The installation of an operating system can also include various consumer
applications.
• The operating system programs used to support the execution and
active operation of applications are collectively referred to as the
runtime (Figure 6.1).
• Applications themselves may introduce their own runtime software that operates
on top of an operating system runtime environment.
3
Virtualization basics
• Virtualization is the technology that enables a physical
IT resource to provide multiple virtual images of itself so
that its underlying processing capabilities can be shared
by multiple solutions.
Physical Servers
• The physical IT resource most commonly virtualized is
the physical server (Figure 6.2).
• A physical server provides an operating system
environment that can host applications, services, and
other software programs.
4
Virtual Servers
• When utilizing virtualization technology, the
operating system hosting environment provided
by the physical server can be abstracted into one
or more virtual servers (Figure 6.3).
• Each virtual server can then provide a fresh and
dedicated copy (or image) of the operating system
hosting environment, which can be further
referred to as a guest operating system.
• Each virtual server can provide its virtualized
operating system environment to a different set of
consumer applications or services that do not
require any knowledge of how the underlying
physical server exists or operates (Figure 6.4).
• As consumer usage demands fluctuate, the
physical server can be scaled accordingly.
5
• The administrator responsible for the physical server can retain administrative
control of the physical server hardware and its operating system.
• The administrators responsible for the individual virtual servers are not given (nor
require) access to the underlying physical server, but they can independently control
their respective virtual operating system environments.
6
hypervisor
• The component responsible for creating and running multiple virtual servers
from a physical server is the hypervisor (Figures 6.5 and 6.6).
• Virtual servers perceive the emulated hardware presented to them by the
hypervisor as real hardware.
• Each virtual server has its own operating system (also known as a guest
operating system) that needs to be deployed inside the virtual server and
managed and maintained as if it were deployed on a physical server.
7
8
Virtualization types
• There are two types of virtualization environments that are
primarily distinguished by whether the physical server has an
operating system installed.
• In a Type 1 virtualization environment, the physical server
does not have an operating system installed. Instead, only the
hypervisor is installed on the physical server, and it is
responsible for creating the virtual servers and providing them
with virtualized operating system environments (Figure 6.7).
• In a Type 2 virtualization environment, the physical server
has an operating system installed and may also have a
hypervisor installed.
• In this case, the physical server is accessible via its operating
system, and the hypervisor remains responsible for creating the
virtual servers and providing them with their virtualized
operating system environments (Figure 6.8).
9
TYPE 1 VIRTUALIZATION
10
TYPE 2 VIRTUALIZATION
11
Containerization Basics
Containers
• A container (Figure 6.9) is a virtualized hosting
environment that can be optimized to provide only the
resources required for the software programs it hosts.
12
Container images
• A container image (Figure 6.10) is similar to a predefined template that is used to create deployed containers.
• The definition and usage of container images is integral to how containerization platforms operate.
13
Container Engines
• The container engine (Figure 6.11), also referred to as the
containerization engine, is responsible for creating
containers based on predefined container images.
• The container engine is deployed in a physical or virtual
server’s operating system from where it can abstract the
resources required for a given container.
• The container engine is a core part of a containerization
• Management Plane – the GUI and command-line tools made available to
platform and is responsible
enable human administrators for the
to configure and maintain many
containerof its primary
processing tasks. Its implementation is organized into two
engine environment.
• Control Plane – all remaining container engine functions and features that
the“planes,” ascarries
container engine follows:
out automatically and in response to settings and
commands issued via the management plane
14
A given container engine can create
multiple containers (Figure 6.12).
15
pods
• A pod, also known as a logical pod container, is a special
type of system container that can be used to host a single
container or a group of containers (Figure 6.13) that have
shared storage and/ or network resources, and also share
the same configuration
and also share the same configuration
that determines how the containers are to be run...
16
Hosts
• A host is the environment in which a container is deployed.
• A host can be referred to as a server or a node.
• The host provides the operating system from which the container
abstracts the resources it needs to support the programs it is hosting.
• Multiple containers can be deployed and run on a single host (Figure
6.14).
17
18
19
• Containers also operate on a host
without a pod when the container
engine deployed does not support
pods (Figure 6.16).
• Hosts commonly exist as physical
servers, but a host can also be a
virtual server.
• When a container is deployed on a
virtual server, it is considered a
form of nested virtualization
because one virtualized system is
deployed on another.
20
Host clusters
• Host servers can be combined
into “clusters” that can
collectively establish a pool of
readily available processing
resources with increased
computing capacity.
• Both virtual and physical hosts
can be clustered (Figures 6.17
and 6.18). Within clustering
environments, host servers are
commonly referred to as
nodes.
21
• Common types of host clusters include:
• Load-Balanced Cluster – This type of host cluster specializes in
distributing workloads among hosts to increase resource capacity
while preserving the centralization of resource management. It
usually implements a load balancer that is embedded within a
cluster management platform or set up as a separate resource.
• High Availability (HA) Cluster – This type of cluster maintains
system availability in the event of multiple host failures. It typically
provides redundant implementations of most or all of the clustered
resources and implements a failover system that monitors failure
conditions and automatically redirects workloads away from failed
host environments.
• Scaling Cluster – This type of cluster is used to support both
vertical and horizontal scaling.
22
Cluster Type Main Purpose Key Feature
Load-Balanced Distribute workload Uses load balancer
High Availability Prevent downtime Automatic failover
Vertical & Horizontal
Scaling Increase capacity
scaling
23
HOST Networks and overlays networks
• Each host has its own container engine that is responsible
for generating container images and deploying and
running containers on that host.
• Related containers within a host can communicate
with each other using a local host network.
• Related containers and container engines on different
hosts can communicate with each other via an overlay
network.
• Both of these types of networks are considered container
networks (Figure 6.19).
• Container networks can be configured by administrators
to support various scalability and resiliency capabilities
and to control which hosted programs can access
resources outside of the container network.
24
25