Download as pdf or txt
Download as pdf or txt
You are on page 1of 86

Moysis Symeonidis

symeonidis.m@unic.ac.cy
Cloud Computing

Course Timeline
● Basic Concepts and Models
○ Cloud Computing Introduction
○ Deployment & Service Models
○ Pricing, Threats, and Programming Models
● Virtualization and Elasticity
○ Virtualization Concepts, VMs & Containers
○ Monitoring & Elasticity
○ Docker tutorial

Moysis Symeonidis
symeonidis.m@unic.ac.cy 2
Cloud Computing

Course Timeline
● Basic Concepts and Models
○ Cloud Computing Introduction
○ Deployment & Service Models
○ Pricing, Threats, and Programming Models
● Virtualization and Elasticity
○ Virtualization Concepts, VMs & Containers
○ Monitoring & Elasticity
○ Docker tutorial

Moysis Symeonidis
symeonidis.m@unic.ac.cy 3
Cloud Computing

Traditional Physical Servers


● A machine / piece of metal

● Installed on a rack inside a server’s room

● Located at a certain geographical space

● Usually, all of its resources (CPUs, memory,


disk, network) are reserved for a single
application e.g. Web Server or Mail Server

Moysis Symeonidis
symeonidis.m@unic.ac.cy 4
Cloud Computing

Traditional Physical Servers


● A machine / piece of metal

● Installed on a rack inside a server’s room

● Located at a certain geographical space

● Usually, all of its resources (CPUs, memory,


disk, network) are reserved for a single
application e.g. Web Server or Mail Server

● Average of 20% of its resources are being used…


Moysis Symeonidis
symeonidis.m@unic.ac.cy 5
Cloud Computing

Traditional Physical Servers


How does a Cloud provider share its
infrastructure???

Moysis Symeonidis
symeonidis.m@unic.ac.cy 6
Cloud Computing

Traditional Physical Servers


How does a Cloud provider share its
infrastructure???

Virtualization!!!

Moysis Symeonidis
symeonidis.m@unic.ac.cy 7
Cloud Computing

Virtualization
Refers to the act of creating a virtual (rather than actual) version of some
computing resource…

Virtualization:
● abstracts the underlying resources;
● simplifies their use;
● isolates users from one another; and
● supports replication which increases the elasticity of a system

https://en.wikipedia.org/wiki/Virtualization
Moysis Symeonidis
symeonidis.m@unic.ac.cy 8
Cloud Computing

Virtualization

Virtualization is the process of running a virtual instance of a


computer system in a layer abstracted from the actual hardware. In
other words, virtualization is a technology that transforms hardware
into software upon which other software runs.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 9
Cloud Computing

What is Virtualization according to AWS?


● Virtualization is technology that you can use to create virtual
representations of servers, storage, networks, and other physical
machines.

● Virtual software mimics the functions of physical hardware to run multiple


virtual machines simultaneously on a single physical machine.

● It also powers cloud computing services that help organizations manage


infrastructure more efficiently.

https://aws.amazon.com/what-is/virtualization/
Moysis Symeonidis
symeonidis.m@unic.ac.cy 10
Cloud Computing

Virtualization Requirements
● VM should behave identically to the real machine
○ Programs cannot distinguish between execution on real or virtual hardware with only
difference to be the fewer resources available (potentially different between executions)

● Isolated: Several VMs execute without interfering with each other

● Efficient: VM should execute at a speed close to that of real hardware

A virtual machine (VM) is an efficient, isolated duplicate of a real machine!!!


Moysis Symeonidis
symeonidis.m@unic.ac.cy 11
Cloud Computing

Virtualization & Cloud Computing


● Virtualization is the basic enabler of Cloud Computing

● Cloud resource virtualization is important for:


○ Performance isolation: we can dynamically assign and account for resources
across different applications
○ System security: allows isolation of services running on the same hardware
○ Performance and reliability: allows applications to migrate from one
platform to another
○ Development and management of services offered by a provider
○ Server consolidation: we can use same physical server for multiple
applications
Moysis Symeonidis
symeonidis.m@unic.ac.cy 12
Cloud Computing

Virtualization of Different Resources…


● Server Virtualization
● Operating System Virtualization (containers)
● Network Functions Virtualization
● Desktop Virtualization
● Data Virtualization
● …

Moysis Symeonidis
symeonidis.m@unic.ac.cy 13
Cloud Computing

Virtualization Preliminaries

Moysis Symeonidis
symeonidis.m@unic.ac.cy 14
Cloud Computing

Interfaces & Layering


● Well-defined Interfaces:
○ facilitate independent subsystem development of both hardware and software
○ permit development of interacting computer subsystems in different
organizations and at different times

● Abstraction levels correspond to implementation layers, whether in hardware or


software, each associated with its own interface or architecture.

● Layering: A common approach to manage system complexity


○ Minimizes interactions among subsystems of a complex system
○ With layering, we are able to design, implement, and modify individual
subsystems independently.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 15
Cloud Computing

Abstraction and Layering Example


● Operating system abstracts hard-disk
addressing details (sectors, tracks) so that
the disk appears to application software as a
set of variable-sized files.

● Application programmers can then create,


write, and read files without knowing the
hard disk's construction and physical
organization.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 16
Cloud Computing

Abstraction and Layering Example


● On top of these abstractions, other programs
may introduce other layers as well… Web Service
○ E.g. A database on top of file abstractions
Database

● Similarly, other layers may also be built in


order to abstract further the underlying
infrastructure

● The implementation of these layers are


agnostic with the only precondition to be their
well-defined Interfaces

Moysis Symeonidis
symeonidis.m@unic.ac.cy 17
Cloud Computing

Virtualization based on Abstractions


● In the example of disk, virtualization
transforms a single large disk into multiple
smaller virtual disks

● Virtualizing software uses the file abstraction


as an intermediate step to provide a mapping
between the virtual and real disks.

○ For instance, a write to a virtual disk is


converted to a file write, which is
converted to a real disk write.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 18
Cloud Computing

Virtualization based on Abstractions


● Virtualizing a system or component (processor,
memory, or I/O device) at a given abstraction level:

○ maps its interface and visible resources onto


the interface and resources of an underlying,
possibly different, real system.

○ makes the real system to appear as a different


virtual system or even as multiple virtual
systems.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 19
Cloud Computing

Execution Layering

● Application Programming Interface (API)

● Application Binary Interface (ABI)

● Instruction Set Architecture (ISA)

An application uses library functions (A1), makes system calls (A2), and executes
machine instructions (A3)

Moysis Symeonidis
symeonidis.m@unic.ac.cy 20
Cloud Computing

OS Kernel
● Operating System Kernel: lowest level of software running on system, with full
access to all hardware
○ fully trusted code, runs in kernel mode
○ implements OS protection, i.e., reliability, security, privacy, resource
sharing, etc.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 21
Cloud Computing

OS Kernel
● Operating System Kernel: lowest level of software running on system, with full
access to all hardware
○ fully trusted code, runs in kernel mode
○ implements OS protection, i.e., reliability, security, privacy, resource
sharing, etc.
● User process: execute privileged instructions via well-defined interfaces
supported by kernel (system calls)

Moysis Symeonidis
symeonidis.m@unic.ac.cy 22
Cloud Computing

Hardware Virtualization

Moysis Symeonidis
symeonidis.m@unic.ac.cy 23
Cloud Computing

Hardware Virtualization
The process of multiple virtual machines creation in the
same machine.

• Each virtual machine is isolated from each other


• Each virtual machine has its own kernel (aka
operating system)
• Maximum Resource’s Isolation

Systems that manage the virtual machines are called Hypervisors.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 24
Cloud Computing

Hypervisors
● Hypervisors (also known as virtual machine monitor (VMM)) allocate
hardware-resources to allow you to have several virtual machines all working
optimally on a single piece of the computer hardware.

● The hypervisor translates all operating system instructions on the fly and
caches the results for future use, while user level instructions run
unmodified at native speed.

● Well-known hypervisors: VirtualBox by Oracle, Vmware Workstation

Moysis Symeonidis
symeonidis.m@unic.ac.cy 25
Cloud Computing

Hypervisors
● A Hypervisor:
○ Interacts and monitors directly with the physical server's resources.
○ Keeps each virtual server completely independent and unaware of the
other virtual servers running on the physical machine.

● Hypervisors have their own processing needs, which means that the physical
server must reserve some processing power and resources to run the
hypervisor application.
○ This can impact overall server performance and slow down applications.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 26
Cloud Computing

Binary Translation
● Binary translation is a form of binary recompilation where sequences of
instructions are translated from a source instruction set to the target instruction
set [wikipedia]
● In binary translation: User Apps
○ The VMM monitors the execution of guest OS
Guest OS
○ Non-virtualizable instructions executed by a
guest OS are replaced with (translated to) other Hypervisor
Binary
instructions. Host Computer
Translation

System Hardware
○ The OS runs unchanged, and this ensures that
this direct execution mode is efficient.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 27
Cloud Computing

Types of Hypervisors Type 2

Type 1

Moysis Symeonidis
symeonidis.m@unic.ac.cy 28
Cloud Computing

Types of Hypervisors Type 2

Type 1

Type 1 (bare metal, native): run directly on the hardware (as a lightweight OS) and
support multiple virtual machines and OS.

● Most popular in production environments due to the low overhead.


● Citrix/Xen Server, Denali, VMware ESXi and Microsoft Hyper-V
Moysis Symeonidis
symeonidis.m@unic.ac.cy 29
Cloud Computing

Types of Hypervisors Type 2

Type 1

Type 2 (hosted VM): runs the virtualization layer as an application on top of a host
operating system (e.g., user-mode Linux)

● Microsoft Virtual PC, Oracle Virtual Box, VMware Workstation, Oracle Solaris Zones,
VMware Fusion, Oracle VM Server for x86.
● Ideal option for personal use due to low cost and ease of installation.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 30
Cloud Computing

Virtual Machines
A Virtual Machine (VM):

● can be an execution environment that runs an OS

● can be an isolated environment that appears to be a whole computer,


but actually only has access to a portion of the computer resources

● models a machine exactly and efficiently

https://aws.amazon.com/what-is/virtualization/
Moysis Symeonidis
symeonidis.m@unic.ac.cy 31
Cloud Computing

Virtual Disk Image


● A virtual disk image (VDI) is the image of a virtual hard disk or the logical
disk associated with a virtual machine.

● A VDI can be characterized as a snapshot of a storage device's structure and


data typically stored in one or more computer files on another storage
device.

● A hard disk drive in a virtual machine is implemented as a disk image (i.e.


either the VHD, VDI, VMDK, QCOW formats).

[wikipedia]
Moysis Symeonidis
symeonidis.m@unic.ac.cy 32
Cloud Computing

Example: Amazon Machine Image (AMI)


● An Amazon Machine Image (AMI) provides information that is required to
launch an EC2 instance.
○ Is a template that is used to create an EC2 instance (which is a virtual
machine, or VM, that runs in the AWS Cloud)
○ Contains a Windows or Linux operating system
○ Often also has some software pre-installed

Moysis Symeonidis
symeonidis.m@unic.ac.cy 33
Cloud Computing

Para-virtualization
● The guest operating system is modified to work
closely with the hypervisor or host system.

● Instead of emulation hardware devices, the


guest OS communicates directly with the
hypervisor through specialized interfaces.

● The guest OS is aware of the virtualization environment and make use of


optimizations and performance enhancements

Moysis Symeonidis
symeonidis.m@unic.ac.cy 34
Cloud Computing

High-level Virtualization Concepts

Moysis Symeonidis
symeonidis.m@unic.ac.cy 35
Cloud Computing

Server consolidation
● Virtualizing servers involves converting one physical server
into multiple virtual machines (VMs).

● A virtual server is configured so that multiple users can share


its resources.

● When comparing a physical server versus a virtual server, the


virtual server is shown to be an effective way to save on
physical hardware costs.

https://cloud.google.com/learn/what-is-a-virtual-server
Moysis Symeonidis
symeonidis.m@unic.ac.cy 36
Cloud Computing

Server consolidation – Terminology


Server consolidation: converts one physical server into multiple virtual machines. Each
virtual server acts like a unique physical device, capable of running its own operating
system (OS).
● The physical server is called the host.

● The virtual servers are called guests and behave like physical machines.

● Each virtualization system uses a different approach to allocate physical server


resources to virtual server needs.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 37
Cloud Computing

Server consolidation – Benefits


Under-utilized
Server consolidation can decrease IT cost by
multiplexing physical resources over a
number of virtualized environments:

● reduce hardware required


● indirectly reduce power consumption
● reduce data-center CO2 emission footprint

less resources are


needed..
Moysis Symeonidis
symeonidis.m@unic.ac.cy 38
Cloud Computing

Overcommitting
Via virtualization, Cloud providers can split
and share physical resources that far
exceed their capacity.

● Why?

Moysis Symeonidis
symeonidis.m@unic.ac.cy 39
Cloud Computing

Overcommitting
Via virtualization, Cloud providers can split
and share physical resources that far
exceed their capacity.

● Why? Not all applications use at full


their allocated resources.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 40
Cloud Computing

Overcommitting Example
Suppose a host has 12 GB or RAM

We could split the memory to 4 VMs with


3 GB each or over-provision and put more
VMs on the host.

With an over-provisioning factor of 3…

With 12 GB we could have 12 VMs of 3 GB each!!!

Moysis Symeonidis
symeonidis.m@unic.ac.cy 41
Cloud Computing

Overcommitting Example
If all VMs want at the same time ALL of
their memory then delays will be
experienced… or in other words… an SLA
violation…

Slow service… unhappy customers…

Moysis Symeonidis
symeonidis.m@unic.ac.cy 42
Cloud Computing

Overcommitting Example
If all VMs want at the same time ALL of
their memory then delays will be
experienced… or in other words… an SLA
violation…

Slow service… unhappy customers…

Cloud providers always monitor the utilization of


their machines to find opportunities to “squeeze”
more VMs on hosts without delays.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 43
Cloud Computing

VM Snapshots
● A snapshot is a state of a virtual machine, and generally its storage
devices, at an exact point in time.

● A snapshot enables the virtual machine's state at the time of the


snapshot to be restored later, effectively undoing any changes that
occurred afterwards.

● This capability is useful as a backup technique, for example, prior to


performing a risky operation.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 44
Cloud Computing

High Availability in VM deployments

● Cloud providers continuously monitor all


hosts in a cluster and restarts virtual
machines affected by a host failure on
other hosts

● can also monitor guest OS's for a failure


via a heartbeat and restart them on the
same host in case of a failure

Moysis Symeonidis
symeonidis.m@unic.ac.cy 45
Cloud Computing

VM Migration
● Cloud provider chooses the optimal physical
servers within a resource pool

● They can migrate an existing VM to a new


physical server

● VM migration is the process by which a


running virtual machine is moved from one
physical host to another, with little or no
disruption in service.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 46
Cloud Computing

Containerization… a different type of


Virtualization

Moysis Symeonidis
symeonidis.m@unic.ac.cy 47
Cloud Computing

Types of Virtualization

Hardware Virtualization Software Virtualization

● Hardware virtualization or platform virtualization refers to the creation of a virtual


machine that acts like a real computer with an operating system.

● Software virtualization or Operating-system-level virtualization, also known as


containerization, refers to an operating system feature in which the kernel allows the
existence of multiple isolated user-space instances.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 48
Cloud Computing

History of Virtualization…

Moysis Symeonidis
symeonidis.m@unic.ac.cy 49
Cloud Computing

History of Virtualization…
Hardware
Virtualization era

Moysis Symeonidis
symeonidis.m@unic.ac.cy 50
Cloud Computing

History of Virtualization…
Hardware Software
Virtualization era Virtualization era

Moysis Symeonidis
symeonidis.m@unic.ac.cy 51
Cloud Computing

Software Virtualization (containerization)


● The process of running multiple containers in the
same operating system.

● A container encapsulates a process (or a group of


processes) that is isolated from other containers or
processes in the system.

● OS kernel itself performs all the functionalities by allowing existence of


multiple user space instances called as (software) containers

Well-known container management systems: Linux Containers, Docker


Moysis Symeonidis
symeonidis.m@unic.ac.cy 52
Cloud Computing

History of Software Virtualization…

Moysis Symeonidis
symeonidis.m@unic.ac.cy 53
Cloud Computing

History of Software Virtualization…

Process-level Resource Limitation

Moysis Symeonidis
symeonidis.m@unic.ac.cy 54
Cloud Computing

History of Software Virtualization…

Process-level Resource Limitation + Access Isolation

Moysis Symeonidis
symeonidis.m@unic.ac.cy 55
Cloud Computing

History of Software Virtualization…

Process-level Resource Limitation + Access Isolation = Containerization

Moysis Symeonidis
symeonidis.m@unic.ac.cy 56
Cloud Computing

Containers Execution
● Each container (in general) has shared resources

● The resource allocation is responsibility of the


Operating System, while a container is itself a
process in the Operating System, and this makes
the containers much more lightweight than VMs

● It provides the illusion of running multiple operating systems on a single machine


by sharing the same host Kernel

Moysis Symeonidis
symeonidis.m@unic.ac.cy 57
Cloud Computing

The Benefits of Containerization


● Containers occupy much less memory compared to VM’s

● Due to kernel sharing, containers have much smaller computational footprint


on the host machine

● Hardware Resources such as CPU and memory are shared between host
machine and containers, consequently, the resource utilization is increasing.

● While the resources are shared between them, one can install many more
containers on a host machine compared to VMs.

● Much faster startup and shutdown since the kernel and hardware resources
are shared.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 58
Cloud Computing

What is Docker?
The most popular Software Containerization Platform
● Initially, it was based on LXC’s capabilities but then replaced LXC with libcontainer
● Docker platform is utilized for packaging and running applications inside software
containers

In a nutshell:
● Docker is a command-line program, a background daemon, and a set of remote
services that take a logistical approach to solving common software problems and
simplifying your experience installing, running, publishing, and removing software.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 59
Cloud Computing

Docker Basics
Image
The basis of a Docker container. Represents a full application.

Container
The image when it is “running”. The standard unit for app service.

Docker Engine
Creates, ships and runs Docker containers deployable on a physical or
virtual host locally, in a datacenter or cloud service provider

Registry
Stores, distributes and manages Docker Images

Moysis Symeonidis
symeonidis.m@unic.ac.cy 60
Cloud Computing

High level Docker Architecture

Docker daemon
● Lives on the host
● Responds to docker
commands
● Instantiates images
and creates containers

Moysis Symeonidis
symeonidis.m@unic.ac.cy 61
Cloud Computing

Writing a Dockerfile
Define the base image
FROM node
RUN git clone -q https://github.com/docker-in-practice/todo.git
Clone the todoapp code
WORKDIR todo
Move to the new cloned directory
RUN npm install > /dev/null
EXPOSE 8000 Run the node package manager’s install
CMD ["npm","start"] command
Specify that containers from the built image
should listen on this port

Specify which command will be run on startup

Moysis Symeonidis
symeonidis.m@unic.ac.cy 62
Cloud Computing

Docker Image Layering


Most of the time, an image is actually a
collection of image layers. A layer is an image
that’s related to at least one other image:

● Images are usually related to other images


in parent/child relationships.

Installing an image means installing:


● a target image and
● each image layer in its lineage.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 63
Cloud Computing

Docker Image Layering

COPY-ON-WRITE is a standard optimization strategy used in computing. When you


create a new object (of any type) from a template, rather than copying the entire
set of data required, you only copy data over when it’s changed. Depending on the
use case, this can save considerable resources.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 64
Cloud Computing

Docker Image Layering

Moysis Symeonidis
symeonidis.m@unic.ac.cy 65
Cloud Computing

Container resources: Isolation & Restriction


Containers may look like real computers from the point of view of programs
running in them.

However, programs running inside of a container can only see the container's
contents and devices assigned to the container.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 66
Cloud Computing

Container resources: Isolation & Restriction


Containers may look like real computers from the point of view of programs
running in them.

However, programs running inside of a container can only see the container's
contents and devices assigned to the container.

Containers achieve the isolation via the linux Kernel


Namespaces. These Namespaces are related to:
● Process trees (PID Namespace)
● Mounts (MNT namespace) [wc -l /proc/mounts]
● Network (Net namespace) [ip addr]
● Users / UIDs (User Namespace)
● Hostnames (UTS Namespace) …

Moysis Symeonidis
symeonidis.m@unic.ac.cy 67
Cloud Computing

Container resources: Isolation & Restriction


Containers may look like real computers from the point of view of programs
running in them.

However, programs running inside of a container can only see the container's
contents and devices assigned to the container.

Docker achieves the resource limitation via the linux


Kernel Cgroups
● allow you to do accounting on resources used by
processes, a little bit of access control on device nodes
and other things such as freezing groups of processes.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 68
Cloud Computing

Virtual Machines vs Containers

Moysis Symeonidis
symeonidis.m@unic.ac.cy 69
Cloud Computing

Virtual Machines vs Containers

Hardware Virtualization Software Virtualization

Each virtual machine (VM) includes the app, the necessary binaries and libraries and
an entire guest operating system. Containers are NOT VMs because:
● Use the host kernel
● Can not boot a different OS (only if the host OS has pre-installed external kernel eg windows)
● Do not have strict resource isolation (only on cgroups and namespace level)

Moysis Symeonidis
symeonidis.m@unic.ac.cy 70
Cloud Computing

Virtual Machines - Containers (Similarities)


Virtual Machines Containers

Process in one VM has not access to processes Process in one container has not access to
in other VMs processes in other containers

Each VM has own root filesystem Each container has its own root file system
(not Kernel)

Each VM gets its own virtual network adapter Each container has its own virtual network
adapter(s)

VMs run instances of physical files (.VMX and Containers run instances of Images.
.VMDK)

Host OS can be different from guest OS Host OS distribution can be different from
container OS distribution
Moysis Symeonidis
symeonidis.m@unic.ac.cy 71
Cloud Computing

Virtual Machines - Containers (Differences)


Virtual Machines Containers

Each VM runs its own OS All containers share the same Kernel of the
host

Boot up time is in minutes Containers instantiate in seconds

VMs snapshots are used sparingly Images are built incrementally on top of
another like layers. Lots of images/snapshots

Not version controlled Images can be diffed, version controlled and


stored into repositories (Dockerhub).

Cannot run more than couple of VMs on a PC Can run many containers on a PC

Moysis Symeonidis
symeonidis.m@unic.ac.cy 72
Cloud Computing

Virtualization of Other Resources

Moysis Symeonidis
symeonidis.m@unic.ac.cy 73
Cloud Computing

Desktop Virtualization
● Allows a central administrator (or automated
administration tool) to deploy simulated desktop
environments to hundreds of physical machines at once.

○ Desktop virtualization allows admins to perform mass configurations,


updates, and security checks on all virtual desktops.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 74
Cloud Computing

Network Function Virtualisation


● Network Function Virtualisation (NFV) separates a network's
functionalities ( like file sharing, firewalls and IP configuration) so
they can be distributed among environments.

● Virtualizing networks reduces the number of physical


components—like switches, routers, servers, cables, and hubs—that
are needed to create multiple, independent networks, and it’s
particularly popular in the telecommunications industry.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 75
Cloud Computing

Data Virtualization
● Data virtualization:
○ brings together data from multiple sources
○ easily accommodates new data sources
○ transforms data according to user needs

● Data virtualization tools sit in front of multiple data


sources and allows them to be treated as single source.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 76
Cloud Computing

Back to.. Physical Servers


How can you manage a virtualized
infrastructure???

Moysis Symeonidis
symeonidis.m@unic.ac.cy 77
Cloud Computing

Back to.. Physical Servers


How can you manage a virtualized
infrastructure???

Cloud Orchestrators!!!

Moysis Symeonidis
symeonidis.m@unic.ac.cy 78
Cloud Computing

Cloud Orchestrators
Different types of virtualization technologies have orchestration frameworks that
enable VMs, containers, and applications to be deployed and managed at data
center scale:

● Commercial offerings like vCenter

● Open source frameworks like OpenStack, CloudStack.

● Kubernetes and Docker Swarm are recent container management


frameworks.

Moysis Symeonidis
symeonidis.m@unic.ac.cy 79
Cloud Computing

VM Orchestrators
A cloud operating system controls large pools of
compute, storage, and networking resources
throughout a datacenter, all managed and
provisioned through APIs with common
authentication mechanisms.

Any example of such a system???

Moysis Symeonidis
symeonidis.m@unic.ac.cy 80
Cloud Computing

VM Orchestrators
A cloud operating system controls large pools of
compute, storage, and networking resources
throughout a datacenter, all managed and
provisioned through APIs with common
authentication mechanisms.

Private Clouds utilizes specialized (usually open source) softwares as Cloud


Operating Systems, such as OpenStack

Public Cloud providers have their closed source systems (e.g., EC2)
https://www.openstack.org
Moysis Symeonidis
symeonidis.m@unic.ac.cy 81
Cloud Computing

Container Orchestrators
● Orchestrators abstract away the hardware infrastructure and expose a whole
datacenter as a single enormous computational resource

● When deploying a multi-component application through a multi-host


orchestrator, it
○ selects a server for each component,
○ deploys the component, and
○ enables it to easily find and communicate with all the other components of your
application.

● The most well-known container orchestrators are Google’s Kubernetes and


Docker Swarm

Moysis Symeonidis
symeonidis.m@unic.ac.cy 82
Cloud Computing

Container-based Multi-host deployment

Moysis Symeonidis
symeonidis.m@unic.ac.cy 83
Cloud Computing

Key Takeaways
● What is Virtualization?
○ Virtualization Requirements and Benefits
○ Interfaces, Layering and Virtualization on Abstractions
● Hardware Virtualization
○ Virtual Machines & Virtual Disk Images
○ Hypervisors: Definition, Binary Translation, and Types
● Virtualization Concepts
○ Server consolidation
○ Overcommitting
○ VM Snapshots
○ High Availability & VM Migration

Moysis Symeonidis
symeonidis.m@unic.ac.cy 84
Cloud Computing

Key Takeaways
● Software Virtualization (Containerization)
○ Definition
○ Benefits of Containers
● What is Docker?
○ Concepts
○ Resources Isolation & Restriction
● VM - Containers – Differences & Similarities
● Virtualization of Other Resources
○ Desktop, Network , and Data Virtualization
● Cluster Orchestrators
○ Virtual Machines Orchestrators
○ Containers Orchestrators

Moysis Symeonidis
symeonidis.m@unic.ac.cy 85
Cloud Computing

Questions???

Thank you
Moysis Symeonidis
symeonidis.m@unic.ac.cy 86

You might also like