CLOUD COMPUTING FOR DATA ANALYTICS
Dr. PRAMOD MATHEW JACOB
DIVISION OF ARTIFICIAL INTELLIGENCE & MACHINE LEARNING
VIRTUALIZATION
VIRTUALIZATION
• It provides the ability to run multiple operating systems on a single physical system by
sharing the underlying hardware resources.
• It is the process by which one computer hosts the appearance of many computers.
• Virtualization can be viewed as utility computing, in which computer processing power is
seen as a utility that clients can pay for only as needed.
• The usual goal of virtualization is to centralize administrative tasks while improving
scalability and workloads.
Virtualisation Example
Dividing your actual hard drive into different partitions.
A partition is the logical division of a hard disk drive to create, in effect, two or more separate
hard drives: C:, D:, E:, etc.
PREPARED BY PRAMOD MATHEW JACOB
VIRTUAL SERVER MODEL VS TRADITIONAL SYSTEMS
PREPARED BY PRAMOD MATHEW JACOB
NEED OF VIRTUALIZATION
The Reality:
Most servers only use 5-15% of their capabilities on average, while consuming
60-90% of their peak power.
The Solution - Virtualization:
Use one server to host multiple applications.
Reduce energy consumption.
Reduce CO₂ emissions.
Running fewer, highly utilized servers frees up space and power. Less space
and power is better for environment and saves money.
PREPARED BY PRAMOD MATHEW JACOB
VIRTUAL MACHINE ARCHITECTURE
•A Virtual machine (VM) is an isolated runtime environment (guest OS and
applications)
•Multiple virtual systems (VMs) can run on a single physical system
•Hypervisor: virtual machine manager/monitor (VMM),
PREPARED BY PRAMOD MATHEW JACOB
VIRTUAL MACHINE ARCHITECTURE
• A hypervisor or the virtual machine manager/monitor (VMM), or
virtualization manager, is a program that allows multiple guest operating
systems to share a single hardware host.
• Each guest operating system appears to have the host's processor, memory,
and other resources all to itself.
• Hypervisor controls the host processor and resources, by allocating what is
required to each operating system in turn and making sure that the guest
operating systems (called virtual machines) cannot disrupt each other.
• A VMM monitors or manages two or more guest VMs.
PREPARED BY PRAMOD MATHEW JACOB
ROLES OF HYPERVISOR
• Isolating/Emulating resources
• CPU: Scheduling virtual machines
• Memory: Managing memory
• I/O: Emulating I/O devices
• Emulate Networking
• Managing virtual machines
PREPARED BY PRAMOD MATHEW JACOB
BENEFITS OF VIRTUALIZATION
• Cost efficient: Sharing of resources helps cost reduction
• Isolation: Virtual machines are isolated from each other as if they are
physically separated
• Encapsulation: Virtual machines encapsulate a complete computing
environment
• Hardware Independence: Virtual machines run independently of
underlying hardware
• Portability: Virtual machines can be migrated between different hosts.
PREPARED BY PRAMOD MATHEW JACOB
VIRTUAL MACHINES
• A virtual machine is a virtual representation of a physical computer. It has
virtual processor, memory, storage like any physical computer.
• VMs are referred to as guest while physical servers on which they run
referred to as host.
• Virtualization makes it possible to create multiple virtual machines on
a single physical machine. With hypervisor, VM coordinates with
physical hardware.
• VMs host an operating system, and you can install and run software just
like a physical computer.
• Virtual Machines provides infrastructure as a service (IaaS) and
can be used in different ways, customize all the software
running on the VM.
PREPARED BY PRAMOD MATHEW JACOB
DOCKER
• Docker is an OS-level virtualization (or containerization) platform, which
allows applications to share the host OS kernel instead of running a
separate guest OS like in traditional virtualization.
• This design makes Docker containers lightweight, fast, and portable, while
keeping them isolated from one another.
• Written in the Go programming language.
• Supports Windows, macOS, and Linux installations (Docker Engine runs
natively on Linux).
• Solves the “works on my machine” problem by ensuring code runs
identically across environments.
• Unlike VMware (hardware-level virtualization), Docker operates at the OS
level.
PREPARED BY PRAMOD MATHEW JACOB
DOCKER
• Standardizes the runtime environment by bundling everything (app +
dependencies) into containers.
Features
• Portability: Runs anywhere in local machine, cloud, on-prem servers.
• Consistency: Same behavior in development, testing, and production.
• Lightweight: No full OS per app; containers share the host kernel.
• Scalability: Ideal for microservices and orchestrators like Kubernetes and
Docker Swarm.
• Efficiency: Starts in seconds, uses fewer system resources.
PREPARED BY PRAMOD MATHEW JACOB
COMPONENTS OF DOCKER
• Docker Engine: Docker Engine has a core part docker daemon , that
handles the creation and management of containers.
• Docker Image: Docker Image is a read-only template that is used for
creating containers, containing the application code and dependencies.
• Docker Hub: It is a cloud-based repository that is used for finding and
sharing the container images.
• Dockerfile: It is a file that describes the steps to create an image quickly.
• Docker Registry: It is a storage distribution system for docker images,
where you can store the images in both public and private modes.
PREPARED BY PRAMOD MATHEW JACOB
ARCHITECTURE OF DOCKER
• Docker follows a client-server architecture.
• The Docker client communicates with a background process, the Docker
Daemon, which does the heavy lifting of building, running, and managing
your containers.
• This communication happens over a REST API, typically via UNIX sockets on
Linux (e.g., /var/run/[Link]) or a network interface for remote
management
PREPARED BY PRAMOD MATHEW JACOB
ARCHITECTURE OF DOCKER
• Docker Client: This is your command center. When you type commands like
docker run or docker build, you're using the Docker Client.
• Docker Host: It runs the Docker Daemon (dockerd) and provides the
environment to execute and run containers.
• Docker Registry: This is a remote repository for storing and distributing your
Docker images.
• This interaction forms a simple yet powerful loop: you use the Client to issue
commands to the Daemon on the Host, which can pull images from a
Registry to run as containers.
PREPARED BY PRAMOD MATHEW JACOB
DOCKER DAEMON
• The Docker Daemon is the persistent background process that acts as the
brain of your Docker installation.
• It runs on the Docker Host.
• It listens for API requests from the Docker Client.
• It manages all Docker objects: images, containers, networks, and volumes.
PREPARED BY PRAMOD MATHEW JACOB
DOCKER CLIENT
• The Docker Client is the primary interface through which users interact with
Docker. This is most commonly the Command Line Interface (CLI).
• It translates user commands like docker ps into REST API requests.
• These requests are sent to the Docker Daemon for processing.
• A single client can communicate with multiple daemons.
Common Commands:
• docker build: Builds an image from a Dockerfile.
• docker pull: Pulls an image from a registry.
• docker run: Creates and starts a container from an image.
PREPARED BY PRAMOD MATHEW JACOB
DOCKER HOST
• The Docker Host is the physical or virtual machine that provides the
complete environment for executing and running containers.
• It comprises:
• The Operating System (and its kernel).
• The Docker Daemon.
• Images that have been pulled or built.
• Running Containers.
• Networks and Storage components.
PREPARED BY PRAMOD MATHEW JACOB
DOCKER OBJECTS
IMAGES
• An image is a read-only, inert template that
contains the instructions for creating a
Docker container. Think of it as a blueprint
or a class in object-oriented programming.
• It's built from a Dockerfile, a simple text file
defining the steps to assemble the image.
• Images are built in layers, where each
instruction in the Dockerfile corresponds to
a layer. This layered architecture makes
builds and distribution incredibly efficient.
PREPARED BY PRAMOD MATHEW JACOB
DOCKER OBJECTS
CONTAINER
• A container is a runnable, live instance of an
image. If an image is the blueprint, a
container is the house built from that
blueprint.
• You can create, start, stop, move, or delete
containers using the Docker API or CLI.
• Each container is isolated from other
containers and the host machine, having its
own filesystem, networking, and process
space. You can run multiple containers from
the same image.
PREPARED BY PRAMOD MATHEW JACOB
DOCKER OBJECTS
STORAGE
• Since a container's writable layer is
ephemeral (data is lost when the container
is deleted), Docker provides robust solutions
for data persistence.
• Storage driver controls and manages the
images and containers on our docker host.
NETWORKING
Docker networking provides complete isolation
for docker containers. It means a user can link
a docker container to many networks. It
requires very less OS instances to run the
workload.
PREPARED BY PRAMOD MATHEW JACOB
KUBERNETES
• It is an open-source orchestration system for containers developed by
Google and open-sourced in 2014. Kubernetes is a useful tool for working
with containerized applications.
• Kubernetes is used for scaling containerized apps at Google.
• It works for automating deployment, scaling, and the management of
containerized applications.
• Kubernetes is the standard for container orchestration. All major cloud
providers support Kubernetes.
• Amazon through Amazon EKS, Google through Google Kubernetes Engine
GKE and Microsoft through Azure Kubernetes Service (AKS).
• Kubernetes is also a framework for running distributed systems at “planet-
scale”. Google uses it to run billions of containers a week.
PREPARED BY PRAMOD MATHEW JACOB
CAPABILITIES OF KUBERNETES
• High availability architecture
• Auto-scaling
• Rich Ecosystem
• Service discovery
• Container health management
Kubernetes supports manual scaling of workloads. Horizontal scaling can be
done using the kubectl CLI. For vertical scaling, you need to patch the
resource definition of your workload.
•Horizontal scaling: Running multiple instances of your app
•Vertical scaling: Resizing CPU and memory resources assigned to containers
The downside of these features is the high complexity
PREPARED BY PRAMOD MATHEW JACOB
BASICS OF KUBERNETES
• The core operations involved in Kubernetes include creating a Kubernetes
Cluster, deploying an application into the cluster, exposing application ports,
scaling an application, and updating an application.
PREPARED BY PRAMOD MATHEW JACOB
BASICS OF KUBERNETES
• The core of Kubernetes is the cluster. Inside of this, the Containers run in
the collection. The core components of the cluster include a cluster master
and nodes. Inside the nodes, there is yet another hierarchy.
• A Kubernetes node can contain multiple pods, containing multiple
containers and volumes.
PREPARED BY PRAMOD MATHEW JACOB
MULTI & HYBRID CLOUD
• A public cloud is a cloud service that multiple customers use, although they don't
interact with each other, just as many customers can use one bank without drawing on
each other's funds.
• A private cloud is a cloud service for only one customer. An organization can either build
and maintain a private cloud themselves, or they can pay an external vendor to host a
private cloud for them.
• Both "multi-cloud" and "hybrid cloud" refer to cloud deployments that integrate more
than one cloud. They differ in the kinds of cloud infrastructure they include.
• A hybrid cloud infrastructure blends two or more different types of clouds, while multi-
cloud blends different clouds of the same type.
• "Multi-cloud" refers to the combination and integration of multiple public clouds. A
business may use one public cloud as a database, one as PaaS, one for user
authentication, and so on.
• If the multi-cloud deployment includes a private cloud or an on-premise data center as
well, then
PREPARED the cloudMATHEW
BY PRAMOD deployment can actually be considered a hybrid cloud.
JACOB