11
Orchestration of docker containers at scale Yeshwanth Kumar Platform Engineer Megam Systems

Orchestration of docker containers at scale

Embed Size (px)

Citation preview

Page 1: Orchestration of docker containers at scale

Orchestration of docker containers at scale

Yeshwanth KumarPlatform EngineerMegam Systems

Page 2: Orchestration of docker containers at scale

Agenda

1. what is docker?2. Docker clustering with

swarm3. Deployment methods4. Some code5. Demo

Page 3: Orchestration of docker containers at scale

What is docker?!?

Docker is an open platform for building, shipping and running distributed applications. It gives programmers, development teams and operations engineers the common toolbox they need to take advantage of the distributed and networked nature of modern applications.

Note:

● build, ship and run distributed applications

● common toolbox for all - dev, test, prod

Page 4: Orchestration of docker containers at scale

Container vs VM

VM Containers

Page 5: Orchestration of docker containers at scale

Why use docker?!?

- Development environment is same as prod environment

- Develop with docker - No dependency hell

- Deployment is a breeze

- Lightweight

- High portability

- Microservices

Page 6: Orchestration of docker containers at scale

Swarm - Introduction

● Native clustering service

● container scheduling made easy

● scales well

● Works with all existing Docker Tools

Page 7: Orchestration of docker containers at scale

Clustering with swarm

1. Swarm Master● Create cluster● Start swarm master● Join nodes

2. Swarm Node(s)● Run docker engine

in daemon mode● Make sure all nodes

are joined

$swarm create$swarm manage $swarm join

$docker -H <nodeIP>:2375 -d $docker -H <nodeIP>:2375 -d

SwarmMaster

Node Node

Page 8: Orchestration of docker containers at scale

Clustering with swarm

megam cloud

platform

Host 1

Host 2

Host 3

service discovery

docker API

Op

en

VS

witch

logs & monitoring

Registries(docker hub or quay)

Page 9: Orchestration of docker containers at scale

megam PaaS engine

Docker Provisioner Baremetal

DockerBox (containers inside a VM)

//docker remote API works with swarm

client, _ := docker.NewClient(endpoint)

container, conerr := client.CreateContainer(copts)if conerr != nil {

log.Error("Container creation failed : %s", conerr)return &global.Container{}, conerr

}

Docker Remote API

Page 10: Orchestration of docker containers at scale

Demo time

Page 11: Orchestration of docker containers at scale

Questions?Yeshwanth Kumar

Platform EngineerMegam Systems(www.megam.io)

Twitter: @morpheyeshEmail: [email protected]

Docs: docs.megam.ioDevcenter: devcenter.megam.io