KEMBAR78
Orchestration of docker containers at scale | PDF
Orchestration of docker containers
at scale
Yeshwanth Kumar
Platform Engineer
Megam Systems
Agenda
1. what is docker?
2. Docker clustering with
swarm
3. Deployment methods
4. Some code
5. Demo
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
Container vs VM
VM Containers
Why use docker?!?
- Development environment is same as prod
environment
- Develop with docker - No dependency hell
- Deployment is a breeze
- Lightweight
- High portability
- Microservices
Swarm - Introduction
● Native clustering service
● container scheduling made easy
● scales well
● Works with all existing Docker Tools
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
Clustering with swarm
megam cloud
platform
Host 1
Host 2
Host 3
service
discovery
docker
API
OpenVSwitch
logs &
monitoring
Registries
(docker hub
or quay)
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
Demo time
Questions?
Yeshwanth Kumar
Platform Engineer
Megam Systems
(www.megam.io)
Twitter: @morpheyesh
Email: getyesh@megam.io
Docs: docs.megam.io
Devcenter: devcenter.megam.io

Orchestration of docker containers at scale

  • 1.
    Orchestration of dockercontainers at scale Yeshwanth Kumar Platform Engineer Megam Systems
  • 2.
    Agenda 1. what isdocker? 2. Docker clustering with swarm 3. Deployment methods 4. Some code 5. Demo
  • 3.
    What is docker?!? Dockeris 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
  • 4.
  • 5.
    Why use docker?!? -Development environment is same as prod environment - Develop with docker - No dependency hell - Deployment is a breeze - Lightweight - High portability - Microservices
  • 6.
    Swarm - Introduction ●Native clustering service ● container scheduling made easy ● scales well ● Works with all existing Docker Tools
  • 7.
    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
  • 8.
    Clustering with swarm megamcloud platform Host 1 Host 2 Host 3 service discovery docker API OpenVSwitch logs & monitoring Registries (docker hub or quay)
  • 9.
    megam PaaS engine DockerProvisioner 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
  • 10.
  • 11.
    Questions? Yeshwanth Kumar Platform Engineer MegamSystems (www.megam.io) Twitter: @morpheyesh Email: getyesh@megam.io Docs: docs.megam.io Devcenter: devcenter.megam.io