containerization the future...

45
Containerization The Future Virtualization bdNOG9 2 – 10 August, 2018 Dhaka, Bangladesh SANOG32

Upload: others

Post on 25-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

ContainerizationThe Future Virtualization

bdNOG92 – 10 August, 2018Dhaka, Bangladesh

SANOG32

Page 2: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

What is ?

What is Virtualization ?

Page 3: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

What is ?

Virtualization is the process of creating a virtual version ofsomething, such as a server or computer system, using softwareinstead of hardware.

The evolution of virtualization greatly revolves around one pieceof very important software.

The hypervisor.

The hypervisor is a piece of software which allows physicalhardware like ram, cpu, hard disk, network card etc, to sharetheir resource amongst virtual machines running as guests on topof that physical hardware.

Page 4: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

What is ?

Virtual Machine ?

Page 5: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

What is ?

A Virtual Machine (VM) is an emulation of realcomputer that executes programs like a realcomputer with the help of “Hypervisor”

Type I and Type II hypervisor

Virtual machine can run on top of both hypervisor

Page 6: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

What is ?

Type I hypervisor: Sometimes called a bare-metalhypervisor. This type of hypervisor installed directly ontop of the bare-metal physical server. Type I hypervisorhas direct access to the hardware.

Type II hypervisor: Also known as hosted hypervisor,which operates as an application on top of an existingoperating system. This type of hypervisor is installedas a software application on an existing operatingsystem.

Page 7: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

What is ?

PhysicalHardware

Memory Processors

NetworkcardsDisks

Hypervisor

VM

OS

APP

VM

OS

APP

Type1hypervisor

PhysicalHardware

Memory Processors

NetworkcardsDisks

Hypervisor

VM

OS

APP

VM

OS

APP

HostOS

Type2hypervisor

Page 8: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

What is ?

Containerization ?

Page 9: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

What is ?

Containerization also called container-basedvirtualization is an OS-level virtualization method fordeploying and running distributed applications withoutlaunching an entire VM

Containers do not require a hypervisor and thereforeprovide better performance than applications running invirtual machines.

Page 10: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

What is ?

They share the host system’s kernel with othercontainers.

That’s the reason you cannot run Linux on windows andwindows on Linux in containers like VMs do.

Image based which is lighter than full operating system.

Images has online repository and you can make your owncustomize image.

Page 11: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

What is ?

Hardware

Operatingsystemkernel

Container1 Container2

Operatingsystem

Libraries

Application

Operatingsystem

Libraries

Application

Page 12: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

What is ?

HardwareHypervisor

VM1 VM2

VirtualHW

Kernel

OperatingSystem

Libraries

Application

VirtualHW

Kernel

OperatingSystem

Libraries

Application

Hardware

Operatingsystemkernel

Container1 Container2

Operatingsystem

Libraries

Application

Operatingsystem

Libraries

Application

Virtualization Containeraization

Page 13: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

What is ?

VM’s are like houseContainers are like

hotel rooms

Page 14: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Who are they ?

Page 15: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Who are they

VMWareVirtualBox

OpenVZ

LXD

Page 16: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types

Page 17: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types

VMWare

Hypervisor (Type I and II)

Container

VirtualBox

KVM

Microsoft Hyper-V

LXC

OpenVZ

Docker, LXD (use container technology)

Rocket

And many more..

Page 18: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types: Container

LXC: The Linux Container

Docker: Is not a container, it’s an application which uses container technology.

LXD: A tool that utilizes LXC featuresAnd many more..

Page 19: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types: Container

Page 20: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types: Container

Docker: Is not a container, it’s an application which uses container technology.

Developed by dotCloud, Inc (todays Docker, Inc) to help their PaaS product

An easy tools for containers

Community Edition (ce) and Enterprise Edition (ee)

Page 21: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types: Container

source: http://nordicapis.com/api-driven-devops-spotlight-on-docker/

Page 22: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types: Container

Docker Client: End user of Docker

Docker Daemon: is what actually executes commands sent to the Docker Client

Docker Engine: is the layer on which Docker run

Page 23: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types: Container

Docker File: Is the place (file) where instructions aregiven to build the Docker image.

EXAMPLE

FROM ubuntu:16.04

RUN apt update -yRUN apt upgrade –y

RUN apt install –y apache2

Page 24: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types: Container

Docker images: Read-only templates that was builtfrom a set of instructions from Dockerfile

Registry: A registry is a storage and contentdelivery system, holding named Docker images,available in different tagged versions.

Docker Hub: Cloud-based registry service

Page 25: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types: Container

LXD

Page 26: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types: Container

A tool that utilizes LXC features

LXD

Developed by Canonical.

Page 27: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types: Container

Hardware

UbuntuOperatingSystem

Container1 Container2

Operatingsystem

Libraries

Application

Operatingsystem

Libraries

Application

LXD

Page 28: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types: Container

LXD: Storage

zfs, btrfs, dir

Page 29: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Types: Container

LXD: Networking

lxdbr0

Page 30: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Performance

Page 31: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Performance

Container shares the same kernel from its host machine. Hence itboots first, backup and restore is also fast, as a result, deployingapplications on the container is fast.

Virtual machine requires a full set of OS and act like a physicalmachine. it has its own kernel. For this reason, boot time is highon a virtual machine. Because of its isolated nature deploymenttime is relatively slow in the virtual machine.

Page 32: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Migration

Containers can run inside virtual machines, so both technologies can be used simultaneously

Do we really need migration ?

Page 33: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Financial facts

Page 34: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Financial facts

HardwareBoth technologies need hardware resources

so cost is involved in this area.

Page 35: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Financial facts

HypervisorIs a requirement for virtualization but

not for containerization.

Page 36: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Financial facts

Host and Guest OSDepends on licenses or open source

Page 37: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Financial facts

ApplicationDepends on paid or non paid.

Page 38: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Financial facts

Item Virtualization Containerization

Hardware Yes Yes

Hypervisor Yes No

Host OS Yes(Ifnot opensource)

No(Ifnot licensed)

GuestOS Yes(Ifnot opensource) No

Application Yes/No Yes/No

Page 39: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Security

Page 40: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Security: Container

Privileged containers: Any container where the container uid 0Is mapped to the host’s uid 0.

Unprivileged containers: The container uid 0 is mapped to anunprivileged user outside of the container

Page 41: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Security: Container

CGroups: Control resources to groups of process

Namespaces: Separate resources to make them visible only toprocess with the Namespace.

CPU, Memory, I/O, Bandwidth, network, device …..

Network, hostname, Mount, IPC, Process ID, User.

Page 42: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Security: Container

cgroups: limits how mauch you can use

namespaces: limits what you can see

Page 43: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Common Question ?Container or VMs ?

Page 44: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Container or VMs ?

Virtual machine: Multiple application on multiple server

Container: Same application multiple copy

Both can be run in the same infrastructure

Page 45: Containerization The Future Virtualizationwiki.bdnog.org/lib/exe/fetch.php/bdnog9/sanog32_con_basics.pdf · Containerization also called container-based virtualization is an OS-level

Thanks

Questions ??