SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
THE STATE OF THE SWARM
HOW CLOSE TO PRODUCTION READY ARE WE ?
7 / 1 /2016
HI
▸ Mathieu Buffenoir
▸ twitter://@MBuffenoir
▸ mail://mat.buff@gmail.com
▸ founder bity.com (running on docker on exoscale)
▸ VP swiss bitcoin association
▸ https://github.com/skippbox/docker-on-cluster-howtos
WHAT’S NEW IN DOCKER ECOSYSTEM ?
▸ Docker 1.9
▸ Networking in the swarm
▸ Compose 1.5
▸ environnement variable
▸ Docker-machine
▸ Added cloud providers support
WHAT DO WE NEED IN PRODUCTION ?
▸ Provisioning / orchestration (Swarm)
▸ Service discovery (consul / etc / zookeeper …)
▸ Logging (ELK, Loggly , syslog …)
▸ Monitoring (Promotheus, sensu, sysdig …)
LET’S CREATE A LITTLE DEMO
INFRASTRUCTURE
DEMO INFRA
DOCKER MACHINE
▸ cloud provider drivers (12 as of today) or bare
metal
▸ some handy features
▸ ssh / scp
▸ One command to control your node or cluster
directly from your shell:
▸ eval $(docker-machine env --swarm swarm-
master)
▸ docker ps
ONE COMMAND TO CREATE A CLUSTER NODE
docker-machine create --driver exoscale 
--exoscale-api-key $CLOUDSTACK_KEY 
--exoscale-api-secret-key $CLOUDSTACK_SECRET_KEY 
--exoscale-instance-profile small 
--exoscale-disk-size 10 
--exoscale-image ubuntu-14.04 
--exoscale-security-group swarm 
--swarm 
--swarm-master 
--swarm-discovery="consul://$(docker-machine ip consul):8500" 
--engine-opt="cluster-store=consul://$(docker-machine ip consul):8500" 
--engine-opt="cluster-advertise=eth0:2376" 
--engine-label="apps" 
swarm-master
KV STORE (CONSUL)
▸ Consul
▸ services
▸ nodes
▸ key-value
▸ multi-datacenter
▸ health- check
▸ REST or DNS api
COMPOSE FEATURES
▸ control your cluster straight from your shell
▸ networking support
▸ environment variables
▸ support for docker log driver
▸ scaling
▸ filters
The node filters are:
constraint
health
The container configuration filters are:
affinity
dependency
port
OUR DEMO INFRA COMPOSE FILE
ghost:
image: ghost
restart: always
ports:
- 2368
volumes:
- /home/ubuntu/conf-files/
config.js:/var/lib/ghost/config.js
environment:
- DB_URI=swarm_db_1
- NODE_ENV=production
log_driver: "syslog"
log_opt:
syslog-address: "udp://
185.19.29.213:5000"
syslog-tag: "ghost"
db:
image: postgres:9.3
restart: always
environment:
DB_PASSWORD: postgres
DB_USER: postgres
DB_NAME: ghost
ports:
- 5432
lb:
image: lalu/haproxy-consul
restart: always
volumes:
- /home/ubuntu/conf-files/
haproxy.ctmpl:/tmp/haproxy.ctmpl
- /home/ubuntu/conf-files/consule-
template.conf:/tmp/consule-
template.conf
ports:
- "80:80"
- "8001:8001"
command: -consul 185.19.29.213:8500
COMPOSE COMMANDS
▸ docker-compose up (-d) <container>
▸ docker-compose stop / start / restart <container>
▸ docker-compose ps
▸ docker-compose logs
OVERLAY NETWORK
▸ /etc/hosts
▸ dns with consul
▸ Kernel >3.16
▸ - udp 4789 Data plane (VXLAN)
▸ - tcp/udp 7946 Control plane
▸ no more links support (use service discovery)
▸ need to run compose with —x-networking argument
SERVICE DISCOVERY
▸ registrator informs consul when services come on/offline
▸ patch to support overlay network (now merged)
▸ currently support only one network
SCALING
COMPOSE
▸ As simple as:
▸ docker-compose —x-networking scale app=5
CONSUL-TEMPLATE
▸official haproxy image extended with consul-
template
#templating system snippet
backend ghost
option forwardfor # add the X-Forwarded-For header
http-request set-header X-Forwarded-Port %[dst_port]
balance roundrobin{{range service "ghost"}}
server {{.ID}} {{.Address}}:{{.Port}}{{end}}
LOGGING
EASILY SET UP AN ELK WITH COMPOSE
▸ docker-compose up -d
▸ add this in your docker-compose.ml file service definition
log_driver: "syslog"
log_opt:
syslog-address: "udp://185.19.29.213:5000"
syslog-tag: "ghost"
MONITORING
CADVISOR
▸ Collect per host container metrics
▸ Some visualisations
▸ not centralised enough
PROMOTHEUS
▸ Graphing



▸ Alerting
ALERT HighMemoryAlert
IF container_memory_usage_bytes{image="ubuntu:14.04"} > 1000000000
FOR 1m
WITH {}
SUMMARY "High Memory usage for Ubuntu container"
DESCRIPTION "High Memory usage for Ubuntu container on {{$labels.instance}} for
container {{$labels.name}} (current value: {{$value}})"
WHAT IS STILL MISSING ?
▸ secret handling
▸ ansible vault
▸ hashicorp vault
▸ Lots of discussion about this on github
▸ Discovery service with multiple overlay network support
▸ support for multiple networks in consul (not sure if it can be achieved
with competitors either yet)
▸ Support in provisioning docker module (Ansible is really good with that)
THANKS TO
▸ Exoscale
▸ hashicorp
▸ gliderlabs
▸ sirile
▸ progrium
▸ Docker for all the tools
QUESTIONS ?
@MBUFFENOIR
https://github.com/skippbox/docker-on-cluster-howtos

Mais conteúdo relacionado

Mais procurados

Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
Balaji Rajan
 

Mais procurados (20)

Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016
 
Docker Started
Docker StartedDocker Started
Docker Started
 
Running Docker with OpenStack | Docker workshop #1
Running Docker with OpenStack | Docker workshop #1Running Docker with OpenStack | Docker workshop #1
Running Docker with OpenStack | Docker workshop #1
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
 
Docker - From Walking To Running
Docker - From Walking To RunningDocker - From Walking To Running
Docker - From Walking To Running
 
Docker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesDocker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting Techniques
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Docker
DockerDocker
Docker
 
A Hands-on Introduction to Docker
A Hands-on Introduction to DockerA Hands-on Introduction to Docker
A Hands-on Introduction to Docker
 
Containers: The What, Why, and How
Containers: The What, Why, and HowContainers: The What, Why, and How
Containers: The What, Why, and How
 
Infrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & AnsibleInfrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & Ansible
 
Docker Machine & Docker Swarm
Docker Machine & Docker SwarmDocker Machine & Docker Swarm
Docker Machine & Docker Swarm
 
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XDocker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12X
 
A Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersA Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things Containers
 

Semelhante a The state of the swarm

Docker workshop
Docker workshopDocker workshop
Docker workshop
Evans Ye
 

Semelhante a The state of the swarm (20)

Tensorflow in Docker
Tensorflow in DockerTensorflow in Docker
Tensorflow in Docker
 
From zero to Docker
From zero to DockerFrom zero to Docker
From zero to Docker
 
Introduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group CologneIntroduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group Cologne
 
Containerizing Web Application with Docker
Containerizing Web Application with DockerContainerizing Web Application with Docker
Containerizing Web Application with Docker
 
Introction to docker swarm
Introction to docker swarmIntroction to docker swarm
Introction to docker swarm
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Hybrid (Windows + Linux) Apps with Docker Swarm
Hybrid (Windows + Linux) Apps with Docker SwarmHybrid (Windows + Linux) Apps with Docker Swarm
Hybrid (Windows + Linux) Apps with Docker Swarm
 
Introducing Docker
Introducing DockerIntroducing Docker
Introducing Docker
 
Things I've learned working with Docker Support
Things I've learned working with Docker SupportThings I've learned working with Docker Support
Things I've learned working with Docker Support
 
Workshop Consul .- Service Discovery & Failure Detection
Workshop Consul .- Service Discovery & Failure DetectionWorkshop Consul .- Service Discovery & Failure Detection
Workshop Consul .- Service Discovery & Failure Detection
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Continuous delivery with docker
Continuous delivery with dockerContinuous delivery with docker
Continuous delivery with docker
 
Kubernetes laravel and kubernetes
Kubernetes   laravel and kubernetesKubernetes   laravel and kubernetes
Kubernetes laravel and kubernetes
 
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los Angeles
 

Último

一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理
F
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Monica Sydney
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
ayvbos
 
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
JOHNBEBONYAP1
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
gajnagarg
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
ayvbos
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Monica Sydney
 

Último (20)

Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency Dallas
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.
 
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
 

The state of the swarm

  • 1. THE STATE OF THE SWARM HOW CLOSE TO PRODUCTION READY ARE WE ? 7 / 1 /2016
  • 2. HI ▸ Mathieu Buffenoir ▸ twitter://@MBuffenoir ▸ mail://mat.buff@gmail.com ▸ founder bity.com (running on docker on exoscale) ▸ VP swiss bitcoin association ▸ https://github.com/skippbox/docker-on-cluster-howtos
  • 3. WHAT’S NEW IN DOCKER ECOSYSTEM ? ▸ Docker 1.9 ▸ Networking in the swarm ▸ Compose 1.5 ▸ environnement variable ▸ Docker-machine ▸ Added cloud providers support
  • 4. WHAT DO WE NEED IN PRODUCTION ? ▸ Provisioning / orchestration (Swarm) ▸ Service discovery (consul / etc / zookeeper …) ▸ Logging (ELK, Loggly , syslog …) ▸ Monitoring (Promotheus, sensu, sysdig …)
  • 5. LET’S CREATE A LITTLE DEMO INFRASTRUCTURE
  • 7. DOCKER MACHINE ▸ cloud provider drivers (12 as of today) or bare metal ▸ some handy features ▸ ssh / scp ▸ One command to control your node or cluster directly from your shell: ▸ eval $(docker-machine env --swarm swarm- master) ▸ docker ps
  • 8. ONE COMMAND TO CREATE A CLUSTER NODE docker-machine create --driver exoscale --exoscale-api-key $CLOUDSTACK_KEY --exoscale-api-secret-key $CLOUDSTACK_SECRET_KEY --exoscale-instance-profile small --exoscale-disk-size 10 --exoscale-image ubuntu-14.04 --exoscale-security-group swarm --swarm --swarm-master --swarm-discovery="consul://$(docker-machine ip consul):8500" --engine-opt="cluster-store=consul://$(docker-machine ip consul):8500" --engine-opt="cluster-advertise=eth0:2376" --engine-label="apps" swarm-master
  • 9. KV STORE (CONSUL) ▸ Consul ▸ services ▸ nodes ▸ key-value ▸ multi-datacenter ▸ health- check ▸ REST or DNS api
  • 10. COMPOSE FEATURES ▸ control your cluster straight from your shell ▸ networking support ▸ environment variables ▸ support for docker log driver ▸ scaling ▸ filters The node filters are: constraint health The container configuration filters are: affinity dependency port
  • 11. OUR DEMO INFRA COMPOSE FILE ghost: image: ghost restart: always ports: - 2368 volumes: - /home/ubuntu/conf-files/ config.js:/var/lib/ghost/config.js environment: - DB_URI=swarm_db_1 - NODE_ENV=production log_driver: "syslog" log_opt: syslog-address: "udp:// 185.19.29.213:5000" syslog-tag: "ghost" db: image: postgres:9.3 restart: always environment: DB_PASSWORD: postgres DB_USER: postgres DB_NAME: ghost ports: - 5432 lb: image: lalu/haproxy-consul restart: always volumes: - /home/ubuntu/conf-files/ haproxy.ctmpl:/tmp/haproxy.ctmpl - /home/ubuntu/conf-files/consule- template.conf:/tmp/consule- template.conf ports: - "80:80" - "8001:8001" command: -consul 185.19.29.213:8500
  • 12. COMPOSE COMMANDS ▸ docker-compose up (-d) <container> ▸ docker-compose stop / start / restart <container> ▸ docker-compose ps ▸ docker-compose logs
  • 13. OVERLAY NETWORK ▸ /etc/hosts ▸ dns with consul ▸ Kernel >3.16 ▸ - udp 4789 Data plane (VXLAN) ▸ - tcp/udp 7946 Control plane ▸ no more links support (use service discovery) ▸ need to run compose with —x-networking argument
  • 14. SERVICE DISCOVERY ▸ registrator informs consul when services come on/offline ▸ patch to support overlay network (now merged) ▸ currently support only one network
  • 16. COMPOSE ▸ As simple as: ▸ docker-compose —x-networking scale app=5
  • 17. CONSUL-TEMPLATE ▸official haproxy image extended with consul- template #templating system snippet backend ghost option forwardfor # add the X-Forwarded-For header http-request set-header X-Forwarded-Port %[dst_port] balance roundrobin{{range service "ghost"}} server {{.ID}} {{.Address}}:{{.Port}}{{end}}
  • 19. EASILY SET UP AN ELK WITH COMPOSE ▸ docker-compose up -d ▸ add this in your docker-compose.ml file service definition log_driver: "syslog" log_opt: syslog-address: "udp://185.19.29.213:5000" syslog-tag: "ghost"
  • 21. CADVISOR ▸ Collect per host container metrics ▸ Some visualisations ▸ not centralised enough
  • 22. PROMOTHEUS ▸ Graphing
 
 ▸ Alerting ALERT HighMemoryAlert IF container_memory_usage_bytes{image="ubuntu:14.04"} > 1000000000 FOR 1m WITH {} SUMMARY "High Memory usage for Ubuntu container" DESCRIPTION "High Memory usage for Ubuntu container on {{$labels.instance}} for container {{$labels.name}} (current value: {{$value}})"
  • 23. WHAT IS STILL MISSING ? ▸ secret handling ▸ ansible vault ▸ hashicorp vault ▸ Lots of discussion about this on github ▸ Discovery service with multiple overlay network support ▸ support for multiple networks in consul (not sure if it can be achieved with competitors either yet) ▸ Support in provisioning docker module (Ansible is really good with that)
  • 24. THANKS TO ▸ Exoscale ▸ hashicorp ▸ gliderlabs ▸ sirile ▸ progrium ▸ Docker for all the tools