Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

distributed system notes, Lecture notes of Distributed Programming and Computing

so this is the class notes for every week submitted in form of a weekly report

Typology: Lecture notes

2019/2020

Uploaded on 10/19/2020

saurabh-prasad
saurabh-prasad 🇺🇸

5

(3)

5 documents

1 / 1

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
COP 5615: Distributed Operating System Principles | Weekly Assignment Week 3: 02-06 August
Insights from research paper: Migrating from Virtualization to Dockerization in the Cloud: Simulation
and Evaluation of Distributed Systems
Why I choose this paper During the lecture Dr. Alin Dobra explained how Netflix extensively uses
Amazon EC2 for its platform and how it leverages containerization on top of virtualization (using Titus
platform). This incited me to dive deep into the underlying technology and I came across this paper on
containerization using Docker.
Overview - Virtualization has been the enabler of Cloud computing platforms like the Amazon EC2 but
the creation of virtualized environment demands time taking and tedious installation and configuration
as well as highly skilled technicians. These operational overheads have affected its adoption in
distributed systems. Container based virtualization like docker provides the ability to package entire
application and its dependencies and configurations into light weight containers that can be easily
distributed across multiple hosts and multiple clouds.
Theory Virtualization has 2 major components
Virtual Machine (VM) is a self-contained operating environment and generally has its own operation
system, binaries, applications and libraries.
Hypervisor is the control system and translator between hardware and VMs. It is of two types- Type 1
runs directly on the hardware of the host without the need of a host operating system. Whereas Type 2
runs on top of a host operating system and then spawns higher level Virtual Machines.
Docker is open tool designed to make it easier to create, deploy, and run applications by using
containers. Container technology allows multiple isolated user space instances to be run on a single host
based on a major Linux kernel feature known as cgroups and namespace.
Docker Swarm is a clustering and scheduling tool for docker containers. It assigns Containers to
underlying nodes and optimizes resources by automatically scheduling Container workloads to run on
the most appropriate host with adequate resources while maintaining necessary performance levels.
Observations to run docker on non-linux os we need an additional component called Docker Host (a
lightweight Virtual Machine, which requires very few resources). The paper describes a way to use
docker in a distributed system and setting up the docker swarm.
Swarm has features like scaling, scheduling, service discovery, load balancing and multi-host networking
This setup uses fewer resources and has much lesser operational overheads as compared to the
traditional Virtual Machine-based distributed system which we saw as a major blocker for adoption of
virtualization in distributed world.
Deploying application in form of docker containers on distributed EC2 virtual OS is much more easy and
safer for a production grade application deployment. Docker swarm is similar to Netflix Titus and makes
the process much easier.
References
N. Naik, "Migrating from Virtualization to Dockerization in the Cloud: Simulation and Evaluation of Distributed
Systems," 2016 IEEE 10th International Symposium on the Maintenance and Evolution of Service-Oriented and
Cloud-Based Environments (MESOCA), Raleigh, NC, 2016, pp. 1-8.
doi: 10.1109/MESOCA.2016.9

Partial preview of the text

Download distributed system notes and more Lecture notes Distributed Programming and Computing in PDF only on Docsity!

COP 5615: Distributed Operating System Principles | Weekly Assignment Week 3 : 02 - 06 August Insights from research paper: Migrating from Virtualization to Dockerization in the Cloud: Simulation and Evaluation of Distributed Systems Why I choose this paper – During the lecture Dr. Alin Dobra explained how Netflix extensively uses Amazon EC2 for its platform and how it leverages containerization on top of virtualization (using Titus platform). This incited me to dive deep into the underlying technology and I came across this paper on containerization using Docker. Overview - Virtualization has been the enabler of Cloud computing platforms like the Amazon EC2 but the creation of virtualized environment demands time taking and tedious installation and configuration as well as highly skilled technicians. These operational overheads have affected its adoption in distributed systems. Container based virtualization like docker provides the ability to package entire application and its dependencies and configurations into light weight containers that can be easily distributed across multiple hosts and multiple clouds. Theory – Virtualization has 2 major components – Virtual Machine (VM) is a self-contained operating environment and generally has its own operation system, binaries, applications and libraries. Hypervisor is the control system and translator between hardware and VMs. It is of two types- Type 1 runs directly on the hardware of the host without the need of a host operating system. Whereas Type 2 runs on top of a host operating system and then spawns higher level Virtual Machines. Docker is open tool designed to make it easier to create, deploy, and run applications by using containers. Container technology allows multiple isolated user space instances to be run on a single host based on a major Linux kernel feature known as cgroups and namespace. Docker Swarm is a clustering and scheduling tool for docker containers. It assigns Containers to underlying nodes and optimizes resources by automatically scheduling Container workloads to run on the most appropriate host with adequate resources while maintaining necessary performance levels. Observations – to run docker on non-linux os we need an additional component called Docker Host (a lightweight Virtual Machine, which requires very few resources). The paper describes a way to use docker in a distributed system and setting up the docker swarm. Swarm has features like scaling, scheduling, service discovery, load balancing and multi-host networking This setup uses fewer resources and has much lesser operational overheads as compared to the traditional Virtual Machine-based distributed system which we saw as a major blocker for adoption of virtualization in distributed world. Deploying application in form of docker containers on distributed EC2 virtual OS is much more easy and safer for a production grade application deployment. Docker swarm is similar to Netflix Titus and makes the process much easier. References – N. Naik, "Migrating from Virtualization to Dockerization in the Cloud: Simulation and Evaluation of Distributed Systems," 2016 IEEE 10th International Symposium on the Maintenance and Evolution of Service-Oriented and Cloud-Based Environments (MESOCA) , Raleigh, NC, 2016, pp. 1- 8. doi: 10.1109/MESOCA.2016. 9