SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Clustering with Docker Swarm
1
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
About me
Lead developer at
ClouDesire.com
Open Source Enthusiast
with SuperCow Powers
Java/PHP/whatever
developer
writer of the OpenNebula
book
devops
https://twitter.com/gionn
me@gionn.net
2
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
What is ClouDesire?
Application Marketplace to help software vendors to sell and provision
applications
● Web Applications:
○ provision VM
○ on multiple cloud providers
○ deploy/upgrade application and dependencies docker containers
○ application logging
○ resource monitoring
● With multi-tenant applications/SaaS:
○ expose REST hooks and API for billing lifecycle
● manage subscriptions, billing, pay-per-use, invoicing, payments.
3
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
History of Docker networking support
4
● 2014-06-09 — Docker 1.0 release - standard bridges, no multi-host
support
● 2015-06-16 — Docker 1.7 release - experimental volume plugins,
networking rewritten and released as libnetwork
● 2015-07-24 — libnetwork 0.4.0 release, experimental overlay driver
and network plugins
● 2015-08-04 — Docker Swarm 0.4 release
● 2015-10-13 — Docker Swarm 1.0 release
● 2015-11-03 — Docker 1.9 release - network feature exits experimental,
multi-host networking using VXLAN based overlay driver
● 2016-02-04 — Docker 1.10 release - DNS based discovery
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Docker without Swarm
● Independent Docker hosts
○ Chef, Puppet, Ansible?
● Containers manual allocation on multiple nodes
○ Non-linear resources usage
○ No service discovery, hardcoded configurations
■ Consul?
○ Manual reaction to failures
● Unhandled container data - bounded to local node
● Only third-party OSS “schedulers” available (without simplicity in mind)
○ Google Kubernetes
○ Apache Mesos
○ Spotify Helios
○ New Relic Centurion
5
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
And then, Swarm.
● Native clustering for Docker:
○ turns a pool of Docker hosts into a single, virtual host
● Standard Docker API
○ re-use existing tools
■ docker cli
■ compose
■ dokku
■ anything else
● Pluggable schedulers
6
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Steps for bootstrap a Swarm cluster
Bootstrapping a cluster, the practical way:
● Launch a fleet of VM, reachable via SSH
● docker daemon running
○ reachable via TCP port
○ auth with TLS certificates
● external service discovery backend required
● Bootstrap swarm-manager
● Bootstrap swarm-agent on the remaining nodes
● Use swarm-manager API
7
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Docker-Machine for launching VM
Machine manager (like Vagrant)
https://github.com/docker/machine
(Win/Mac: distributed in Docker toolkit)
● Launch VM somewhere
● Install Docker
● Generates and copy certificates
○ (password-less auth)
● Enable remote access via TCP
8
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Docker-Machine help
● active: Print which machine is
active
● config: Print the connection config
for machine
● create: Create a machine
● env: Display the commands to set
up the environment for the Docker
client
● inspect: Inspect information about a
machine
● ip: Get the IP address of a machine
● kill: Kill a machine
● ls: List machines
● provision: Re-provision existing
machines
● regenerate-certs: Regenerate TLS
Certificates for a machine
9
● restart: Restart a machine
● rm: Remove a machine
● ssh: Log into or run a command on
a machine with SSH.
● scp: Copy files between machines
● start: Start a machine
● status: Get the status of a machine
● stop: Stop a machine
● upgrade: Upgrade a machine to the
latest version of Docker
● url: Get the URL of a machine
● version: Show the Docker Machine
version or a machine docker
version
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Docker-Machine backends
Where nodes can run?
● Generic backend
○ existing hosts with ssh access
● Local machine (virtualization)
○ Virtualbox
○ VMware Fusion
● Cloud providers
○ Amazon
○ GCE
○ Rackspace
○ DigitalOcean
○ ...
10
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Bootstrap a node with Docker-Machine
$ docker-machine create --driver generic --generic-ip-address=<ip-
address> <nodename>
$ docker-machine create --driver virtualbox <nodename>
$ docker-machine create --driver digitalocean --digitalocean-access-token
<token> <nodename>
$ docker-machine create --driver amazonec2 --amazonec2-access-key
<key> --amazonec2-secret-key <secret> <nodename>
$ docker-machine create --driver kvm --kvm-cpu-count 2 --kvm-disk-size
20 --kvm-memory 4096 <nodename>
11
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Interaction with a Docker-Machine node
$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/home/gionn/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval "$(docker-machine env default)"
$ docker info
Kernel Version: 4.1.17-boot2docker
Operating System: Boot2Docker 1.10.0 (TCL 6.4.1); master : b09ed60 - Thu
Feb 4 20:16:08 UTC 2016
12
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Docker-Machine for launching a swarm-master
Using the Docker Hub discovery backend (best for testing/development):
$ docker run swarm create
a62518a837ed196550ec83442901dfad
$ docker-machine create 
-d <backend-plugin> 
--swarm 
--swarm-master 
--swarm-discovery token://<token> 
swarm-master
or manually:
$ docker run -d -p 3375:2375 -t swarm manage token://<token>
13
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Docker-Machine for launching swarm nodes
$ docker-machine create 
-d <backend-plugin> 
--swarm 
--swarm-discovery token://<token> 
swarm-node-00
or manually:
$ docker run -d swarm join --addr=<master-ip>:2375 token://<token>
14
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Check running machine status
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
swarm-master - virtualbox Running tcp://192.168.99.101:2376 swarm-master (master) v1.10.0
swarm-node-00 - virtualbox Running tcp://192.168.99.100:2376 swarm-node-00 v1.10.0
$ eval $(docker-machine env swarm-master) && docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
b664b357e999 swarm:latest "/swarm join --advert" 2 days ago Up 21 minutes swarm-agent
52ddf6fbab43 swarm:latest "/swarm manage --tlsv" 2 days ago Up 21 minutes swarm-agent-master
15
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
First lap with Docker Swarm
$ docker -H 192.168.99.101:3376 ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
c4067a2f176b swarm:latest "/swarm join --advert" 2 minutes ago Up 2 minutes
swarm-node-00/swarm-agent
9623e4e94771 swarm:latest "/swarm join --advert" 7 minutes ago Up 7 minutes
swarm-master/swarm-agent
8576ffa755c4 swarm:latest "/swarm manage --tlsv" 7 minutes ago Up 7 minutes
swarm-master/swarm-agent-master
● agent running on every node
● master running on a single node
16
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Service discovery backends for production
Swarm relies on a service discovery backend to knows endpoints of
all the nodes.
● Docker Hub token (ok for testing, not intended for production)
● Static file with IP:port list or range (poor man service discovery)
● etcd
● consul
● zookeeper
17
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Service discovery with Consul
Consul is a distributed, highly available
Key/Value store and service registry, with
simple API.
https://www.hashicorp.com/
https://www.consul.io
18
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Consul features
● Agent based
● Key-Value Store
● Services discovery backend
● Services Health Checking
● Query interfaces
○ HTTP JSON API
○ DNS
● LAN communication
● WAN replication (Multi-DC)
● UI for browsing
19
● Agent
○ Health Checking
○ Query interface (HTTP,
DNS)
● Server
○ Data storage and
replication
○ Leader election
○ Query interface (HTTP,
DNS)
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
20
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Bootstrap Consul cluster with Docker-Machine
Initialize new node(s):
$ docker-machine create 
-d <backend-plugin> 
consul-1
Prepare for launch:
$ eval $(docker-machine env consul-1)
21
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Service discovery with Consul
Single node bootstrap:
$ docker run --net=host progrium/consul -server -bootstrap
Multiple node bootstrap:
$ docker run --net=host progrium/consul -server -bootstrap-expect 3
$ docker run --net=host progrium/consul -server -join <existing-node-ip>
https://hub.docker.com/r/progrium/consul/
22
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Bootstrap swarm-master backed by Consul
$ docker-machine create 
-d <backend-plugin> 
--swarm 
--swarm-master 
--swarm-discovery="consul://$(docker-machine ip consul-1):8500"  --
engine-opt="cluster-store=consul://$(docker-machine ip consul-1):
8500" 
--engine-opt="cluster-advertise=eth1:2376"
swarm-master
● Node information saved in the K/V store
● Master announce itself on the network for being picked up by agents
23
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Highly available Swarm master backed by Consul
24
Master replaced automatically when a last advertise TTL expires
$ docker-machine create 
-d virtualbox 
--swarm 
--swarm-master 
--swarm-discovery="consul://$(docker-machine ip consul-1):8500" 
--engine-opt="cluster-store=consul://$(docker-machine ip consul-1):
8500" 
--engine-opt="cluster-advertise=eth1:2376" 
--swarm-opt="replication=true" 
--swarm-opt="advertise=eth1:3376" 
swarm-master
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Multi-Host networking with Overlay driver
Default bridge network allows only single host networking.
Overlay enables multi-host networking with a software-defined network.
● K/V Store is required (e.g. Consul)
● Create a network with overlay driver
$ docker -H 192.168.99.101:3376 network create --driver overlay --subnet=10.
0.9.0/24 cloudesire
● Run containers within the new network
$ docker -H 192.168.99.101:3376 run -ti --net=cloudesire busybox
25
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Multi-Host networking with Overlay driver (2)
● Example ip addr of a container attached to overlay network
11: eth0@if12: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue
link/ether 02:42:0a:00:09:02 brd ff:ff:ff:ff:ff:ff
inet 10.0.9.2/24 scope global eth0
14: eth1@if15: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.2/16 scope global eth1
● Multiple overlay network can be created
● Service discovery via dns enabled
○ Forget about using links
■ No more starting order madness
■ No more restart parties
● Additional services registered via --publish-service=service.name
○ Multiple containers exposing the same service
26
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Swarm Manager scheduler policies
Available strategies:
● spread
○ few containers on every node
● binpack
○ most containers on few nodes
● random
○ totally cpu/memory unaware
Tip: stopped containers count towards scheduler allocation
27
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Scheduler filters
Filters enabled by default:
● Health
○ avoid starting containers on unhealthy hosts
● Constraints
○ by node name
○ by storage driver
○ by kernel version
○ by custom labels
$ docker run -e constraint:storage==ssd mysql
28
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Container filters
● affinity
○ container: prefer scheduling nearby existing container
■ -e affinity:container==frontend
○ image: prefer scheduling on node with already pulled image
■ -e affinity:image==redis
○ label: prefer scheduling nearby tagged containers
■ --label com.example.type=frontend
■ -e affinity:com.example.type==frontend
● dependency
○ --volumes-from=N — same node where volume reside
○ --link=N:alias — same node with container to link to
○ --net=container:N — node with same network stack of another container
● port
○ avoids port clashes when launching multiple containers on the same port
29
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
What about Storage?
● Docker 1.8 introduced volume plugins
● Docker 1.9 improve usability of volume plugins
Available plugins (any particular Swarm support required):
● Flocker (move data along with containers)
● Netshare (NFS, CIFS, AWS AFS)
● Convoy (NFS, EBS, plus snapshot support)
● GlusterFS
● https://github.com/docker/docker/blob/master/docs/extend/plugins.md
$ docker run -d --volume-driver <driver> -v <src:dst_path> <image>
30
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Gotchas -> Roadmap
● Too simple container rescheduling on node failure
○ No stateful/stateless distinction
● No rebalancing across nodes
● No Global Scheduling (same container on every node, e.g. log
collector)
● No Persistence of status - no Shared State
○ If master goes offline, and then node goes offline, master came back, no way to
know what was on node running
● Scalability up to hundreds of nodes
● Lacking integration with larger platforms: Mesos, Kubernetes
31
DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com
Questions/demo?
32

Weitere Àhnliche Inhalte

Was ist angesagt?

Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker, Inc.
 
Introction to docker swarm
Introction to docker swarmIntroction to docker swarm
Introction to docker swarmHsi-Kai Wang
 
Docker Machine & Docker Swarm
Docker Machine & Docker SwarmDocker Machine & Docker Swarm
Docker Machine & Docker SwarmGuillermo Lucero
 
Docker swarm introduction
Docker swarm introductionDocker swarm introduction
Docker swarm introductionEvan Lin
 
Docker Swarm & Machine
Docker Swarm & MachineDocker Swarm & Machine
Docker Swarm & MachineEueung Mulyana
 
Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015Chris Ciborowski
 
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)Michelle Antebi
 
Docker Swarm Is Dead: Long Live Docker Swarm
Docker Swarm Is Dead: Long Live Docker SwarmDocker Swarm Is Dead: Long Live Docker Swarm
Docker Swarm Is Dead: Long Live Docker SwarmElton Stoneman
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for BeginnerShahzad Masud
 
Docker Swarm 45-min Workshop (Mountain View Docker Meetup 2/24/2016)
Docker Swarm 45-min Workshop (Mountain View Docker Meetup 2/24/2016)Docker Swarm 45-min Workshop (Mountain View Docker Meetup 2/24/2016)
Docker Swarm 45-min Workshop (Mountain View Docker Meetup 2/24/2016)Mike Goelzer
 
Deep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm ModeDeep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm ModeAjeet Singh Raina
 
Docker swarm reloaded
Docker swarm reloadedDocker swarm reloaded
Docker swarm reloadedGovinda Fichtner
 
Docker Online Meetup #28: Production-Ready Docker Swarm
Docker Online Meetup #28: Production-Ready Docker SwarmDocker Online Meetup #28: Production-Ready Docker Swarm
Docker Online Meetup #28: Production-Ready Docker SwarmDocker, Inc.
 
Container Orchestration with Docker Swarm
Container Orchestration with Docker SwarmContainer Orchestration with Docker Swarm
Container Orchestration with Docker SwarmFrederik Mogensen
 
Load Balancing Apps in Docker Swarm with NGINX
Load Balancing Apps in Docker Swarm with NGINXLoad Balancing Apps in Docker Swarm with NGINX
Load Balancing Apps in Docker Swarm with NGINXNGINX, Inc.
 
Docker Networking & Swarm Mode Introduction
Docker Networking & Swarm Mode IntroductionDocker Networking & Swarm Mode Introduction
Docker Networking & Swarm Mode IntroductionPhi Huynh
 
Docker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-templateDocker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-templateJulien Maitrehenry
 
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22Ajeet Singh Raina
 

Was ist angesagt? (20)

Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0
 
Introction to docker swarm
Introction to docker swarmIntroction to docker swarm
Introction to docker swarm
 
Docker Machine & Docker Swarm
Docker Machine & Docker SwarmDocker Machine & Docker Swarm
Docker Machine & Docker Swarm
 
Docker swarm introduction
Docker swarm introductionDocker swarm introduction
Docker swarm introduction
 
Docker 1.12 and swarm mode
Docker 1.12 and swarm modeDocker 1.12 and swarm mode
Docker 1.12 and swarm mode
 
Docker Swarm & Machine
Docker Swarm & MachineDocker Swarm & Machine
Docker Swarm & Machine
 
Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015
 
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
 
Docker Swarm Is Dead: Long Live Docker Swarm
Docker Swarm Is Dead: Long Live Docker SwarmDocker Swarm Is Dead: Long Live Docker Swarm
Docker Swarm Is Dead: Long Live Docker Swarm
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for Beginner
 
Docker Swarm 45-min Workshop (Mountain View Docker Meetup 2/24/2016)
Docker Swarm 45-min Workshop (Mountain View Docker Meetup 2/24/2016)Docker Swarm 45-min Workshop (Mountain View Docker Meetup 2/24/2016)
Docker Swarm 45-min Workshop (Mountain View Docker Meetup 2/24/2016)
 
Deep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm ModeDeep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm Mode
 
Swarm mode
Swarm modeSwarm mode
Swarm mode
 
Docker swarm reloaded
Docker swarm reloadedDocker swarm reloaded
Docker swarm reloaded
 
Docker Online Meetup #28: Production-Ready Docker Swarm
Docker Online Meetup #28: Production-Ready Docker SwarmDocker Online Meetup #28: Production-Ready Docker Swarm
Docker Online Meetup #28: Production-Ready Docker Swarm
 
Container Orchestration with Docker Swarm
Container Orchestration with Docker SwarmContainer Orchestration with Docker Swarm
Container Orchestration with Docker Swarm
 
Load Balancing Apps in Docker Swarm with NGINX
Load Balancing Apps in Docker Swarm with NGINXLoad Balancing Apps in Docker Swarm with NGINX
Load Balancing Apps in Docker Swarm with NGINX
 
Docker Networking & Swarm Mode Introduction
Docker Networking & Swarm Mode IntroductionDocker Networking & Swarm Mode Introduction
Docker Networking & Swarm Mode Introduction
 
Docker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-templateDocker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-template
 
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22
 

Andere mochten auch

Docker Ecosystem - Part II - Compose
Docker Ecosystem - Part II - ComposeDocker Ecosystem - Part II - Compose
Docker Ecosystem - Part II - ComposeMario IC
 
Pentaho | Data Integration & Report designer
Pentaho | Data Integration & Report designerPentaho | Data Integration & Report designer
Pentaho | Data Integration & Report designerHamdi Hmidi
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemMario IC
 
Scaling Jenkins with Docker and Kubernetes
Scaling Jenkins with Docker and KubernetesScaling Jenkins with Docker and Kubernetes
Scaling Jenkins with Docker and KubernetesCarlos Sanchez
 
Elementos ETL - Kettle Pentaho
Elementos ETL - Kettle Pentaho Elementos ETL - Kettle Pentaho
Elementos ETL - Kettle Pentaho valex_haro
 
Tao zhang
Tao zhangTao zhang
Tao zhangharishk2
 
Advanced ETL2 Pentaho
Advanced ETL2  Pentaho Advanced ETL2  Pentaho
Advanced ETL2 Pentaho Sunny U Okoro
 
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Puppet
 
NGINX Plus PLATFORM For Flawless Application Delivery
NGINX Plus PLATFORM For Flawless Application DeliveryNGINX Plus PLATFORM For Flawless Application Delivery
NGINX Plus PLATFORM For Flawless Application DeliveryAshnikbiz
 
MigraciĂłn de datos con OpenERP-Kettle
MigraciĂłn de datos con OpenERP-KettleMigraciĂłn de datos con OpenERP-Kettle
MigraciĂłn de datos con OpenERP-Kettleraimonesteve
 
Building Data Integration and Transformations using Pentaho
Building Data Integration and Transformations using PentahoBuilding Data Integration and Transformations using Pentaho
Building Data Integration and Transformations using PentahoAshnikbiz
 
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?Carlos Sanchez
 
Indic threads pune12-accelerating computation in html 5
Indic threads pune12-accelerating computation in html 5Indic threads pune12-accelerating computation in html 5
Indic threads pune12-accelerating computation in html 5IndicThreads
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryMario IC
 
Business Intelligence and Big Data Analytics with Pentaho
Business Intelligence and Big Data Analytics with Pentaho Business Intelligence and Big Data Analytics with Pentaho
Business Intelligence and Big Data Analytics with Pentaho Uday Kothari
 
Building a data warehouse with Pentaho and Docker
Building a data warehouse with Pentaho and DockerBuilding a data warehouse with Pentaho and Docker
Building a data warehouse with Pentaho and DockerWellington Marinho
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Dennys Hsieh
 
Continuous ETL Testing for Pentaho Data Integration (kettle)
Continuous ETL Testing for Pentaho Data Integration (kettle)Continuous ETL Testing for Pentaho Data Integration (kettle)
Continuous ETL Testing for Pentaho Data Integration (kettle)Slawomir Chodnicki
 
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)Roland Bouman
 

Andere mochten auch (20)

Docker Ecosystem - Part II - Compose
Docker Ecosystem - Part II - ComposeDocker Ecosystem - Part II - Compose
Docker Ecosystem - Part II - Compose
 
Pentaho | Data Integration & Report designer
Pentaho | Data Integration & Report designerPentaho | Data Integration & Report designer
Pentaho | Data Integration & Report designer
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker Ecosystem
 
Scaling Jenkins with Docker and Kubernetes
Scaling Jenkins with Docker and KubernetesScaling Jenkins with Docker and Kubernetes
Scaling Jenkins with Docker and Kubernetes
 
Elementos ETL - Kettle Pentaho
Elementos ETL - Kettle Pentaho Elementos ETL - Kettle Pentaho
Elementos ETL - Kettle Pentaho
 
Tao zhang
Tao zhangTao zhang
Tao zhang
 
Advanced ETL2 Pentaho
Advanced ETL2  Pentaho Advanced ETL2  Pentaho
Advanced ETL2 Pentaho
 
Introduction to GPU Programming
Introduction to GPU ProgrammingIntroduction to GPU Programming
Introduction to GPU Programming
 
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
 
NGINX Plus PLATFORM For Flawless Application Delivery
NGINX Plus PLATFORM For Flawless Application DeliveryNGINX Plus PLATFORM For Flawless Application Delivery
NGINX Plus PLATFORM For Flawless Application Delivery
 
MigraciĂłn de datos con OpenERP-Kettle
MigraciĂłn de datos con OpenERP-KettleMigraciĂłn de datos con OpenERP-Kettle
MigraciĂłn de datos con OpenERP-Kettle
 
Building Data Integration and Transformations using Pentaho
Building Data Integration and Transformations using PentahoBuilding Data Integration and Transformations using Pentaho
Building Data Integration and Transformations using Pentaho
 
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
 
Indic threads pune12-accelerating computation in html 5
Indic threads pune12-accelerating computation in html 5Indic threads pune12-accelerating computation in html 5
Indic threads pune12-accelerating computation in html 5
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
 
Business Intelligence and Big Data Analytics with Pentaho
Business Intelligence and Big Data Analytics with Pentaho Business Intelligence and Big Data Analytics with Pentaho
Business Intelligence and Big Data Analytics with Pentaho
 
Building a data warehouse with Pentaho and Docker
Building a data warehouse with Pentaho and DockerBuilding a data warehouse with Pentaho and Docker
Building a data warehouse with Pentaho and Docker
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
 
Continuous ETL Testing for Pentaho Data Integration (kettle)
Continuous ETL Testing for Pentaho Data Integration (kettle)Continuous ETL Testing for Pentaho Data Integration (kettle)
Continuous ETL Testing for Pentaho Data Integration (kettle)
 
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)
 

Ähnlich wie Clustering with Docker Swarm - Dockerops 2016 @ Cento (FE) Italy

Docker fundamentals
Docker fundamentalsDocker fundamentals
Docker fundamentalsAlper Unal
 
Docker é€Č階毩拙班
Docker é€Č階毩拙班Docker é€Č階毩拙班
Docker é€Č階毩拙班Philip Zheng
 
滣柣歞栂: ćźč晹é€Č階毩拙 - Dockeré€Č深研究班
滣柣歞栂: ćźč晹é€Č階毩拙 - Dockeré€Čæ·±ç ”ç©¶ç­ć»ŁćźŁć­žć ‚: ćźč晹é€Č階毩拙 - Dockeré€Č深研究班
滣柣歞栂: ćźč晹é€Č階毩拙 - Dockeré€Č深研究班Paul Chao
 
Clustering Docker with Docker Swarm on openSUSE
Clustering Docker with Docker Swarm on openSUSEClustering Docker with Docker Swarm on openSUSE
Clustering Docker with Docker Swarm on openSUSESaputro Aryulianto
 
Docker Essentials Workshop— Innovation Labs July 2020
Docker Essentials Workshop— Innovation Labs July 2020Docker Essentials Workshop— Innovation Labs July 2020
Docker Essentials Workshop— Innovation Labs July 2020CloudHero
 
Containerizing Web Application with Docker
Containerizing Web Application with DockerContainerizing Web Application with Docker
Containerizing Web Application with Dockermsyukor
 
Docker engine - Indroduc
Docker engine - IndroducDocker engine - Indroduc
Docker engine - IndroducAl Gifari
 
Docker summit 2015: 仄 Docker Swarm æ‰“é€ ć€šäž»æ©Ÿćąé›†ç’°ćąƒ
Docker summit 2015: 仄 Docker Swarm æ‰“é€ ć€šäž»æ©Ÿćąé›†ç’°ćąƒDocker summit 2015: 仄 Docker Swarm æ‰“é€ ć€šäž»æ©Ÿćąé›†ç’°ćąƒ
Docker summit 2015: 仄 Docker Swarm æ‰“é€ ć€šäž»æ©Ÿćąé›†ç’°ćąƒèŹ ćź—ç©Ž
 
Start tracking your ruby infrastructure
Start tracking your ruby infrastructureStart tracking your ruby infrastructure
Start tracking your ruby infrastructureSergiy Kukunin
 
Docker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak PeekDocker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak Peekmsyukor
 
Making kubernetes simple for developers
Making kubernetes simple for developersMaking kubernetes simple for developers
Making kubernetes simple for developersSuraj Deshmukh
 
Docker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps DevelopmentDocker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps Developmentmsyukor
 
Docker, Kubernetes, and Google Cloud
Docker, Kubernetes, and Google CloudDocker, Kubernetes, and Google Cloud
Docker, Kubernetes, and Google CloudSamuel Chow
 
Orchestrating Docker with OpenStack
Orchestrating Docker with OpenStackOrchestrating Docker with OpenStack
Orchestrating Docker with OpenStackErica Windisch
 
Azure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
Azure Bootcamp 2016 - Docker Orchestration on Azure with RancherAzure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
Azure Bootcamp 2016 - Docker Orchestration on Azure with RancherKarim Vaes
 
Docker 1.11 Presentation
Docker 1.11 PresentationDocker 1.11 Presentation
Docker 1.11 PresentationSreenivas Makam
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with DockerPatrick Mizer
 
Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Ben Hall
 

Ähnlich wie Clustering with Docker Swarm - Dockerops 2016 @ Cento (FE) Italy (20)

Docker fundamentals
Docker fundamentalsDocker fundamentals
Docker fundamentals
 
Docker é€Č階毩拙班
Docker é€Č階毩拙班Docker é€Č階毩拙班
Docker é€Č階毩拙班
 
滣柣歞栂: ćźč晹é€Č階毩拙 - Dockeré€Č深研究班
滣柣歞栂: ćźč晹é€Č階毩拙 - Dockeré€Čæ·±ç ”ç©¶ç­ć»ŁćźŁć­žć ‚: ćźč晹é€Č階毩拙 - Dockeré€Č深研究班
滣柣歞栂: ćźč晹é€Č階毩拙 - Dockeré€Č深研究班
 
Clustering Docker with Docker Swarm on openSUSE
Clustering Docker with Docker Swarm on openSUSEClustering Docker with Docker Swarm on openSUSE
Clustering Docker with Docker Swarm on openSUSE
 
Docker-machine
Docker-machineDocker-machine
Docker-machine
 
Docker Essentials Workshop— Innovation Labs July 2020
Docker Essentials Workshop— Innovation Labs July 2020Docker Essentials Workshop— Innovation Labs July 2020
Docker Essentials Workshop— Innovation Labs July 2020
 
Containerizing Web Application with Docker
Containerizing Web Application with DockerContainerizing Web Application with Docker
Containerizing Web Application with Docker
 
From zero to Docker
From zero to DockerFrom zero to Docker
From zero to Docker
 
Docker engine - Indroduc
Docker engine - IndroducDocker engine - Indroduc
Docker engine - Indroduc
 
Docker summit 2015: 仄 Docker Swarm æ‰“é€ ć€šäž»æ©Ÿćąé›†ç’°ćąƒ
Docker summit 2015: 仄 Docker Swarm æ‰“é€ ć€šäž»æ©Ÿćąé›†ç’°ćąƒDocker summit 2015: 仄 Docker Swarm æ‰“é€ ć€šäž»æ©Ÿćąé›†ç’°ćąƒ
Docker summit 2015: 仄 Docker Swarm æ‰“é€ ć€šäž»æ©Ÿćąé›†ç’°ćąƒ
 
Start tracking your ruby infrastructure
Start tracking your ruby infrastructureStart tracking your ruby infrastructure
Start tracking your ruby infrastructure
 
Docker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak PeekDocker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak Peek
 
Making kubernetes simple for developers
Making kubernetes simple for developersMaking kubernetes simple for developers
Making kubernetes simple for developers
 
Docker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps DevelopmentDocker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps Development
 
Docker, Kubernetes, and Google Cloud
Docker, Kubernetes, and Google CloudDocker, Kubernetes, and Google Cloud
Docker, Kubernetes, and Google Cloud
 
Orchestrating Docker with OpenStack
Orchestrating Docker with OpenStackOrchestrating Docker with OpenStack
Orchestrating Docker with OpenStack
 
Azure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
Azure Bootcamp 2016 - Docker Orchestration on Azure with RancherAzure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
Azure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
 
Docker 1.11 Presentation
Docker 1.11 PresentationDocker 1.11 Presentation
Docker 1.11 Presentation
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
 
Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016
 

Mehr von Giovanni Toraldo

About code review and BUGS
About code review and BUGSAbout code review and BUGS
About code review and BUGSGiovanni Toraldo
 
Introduction to Traefik
Introduction to TraefikIntroduction to Traefik
Introduction to TraefikGiovanni Toraldo
 
Managing GCP Projects with Terraform (devfest Pisa 2018)
Managing GCP Projects with Terraform (devfest Pisa 2018)Managing GCP Projects with Terraform (devfest Pisa 2018)
Managing GCP Projects with Terraform (devfest Pisa 2018)Giovanni Toraldo
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Giovanni Toraldo
 
Software Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachSoftware Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachGiovanni Toraldo
 
Docker in production service discovery with consul - road to opscon 2015
Docker in production  service discovery with consul - road to opscon 2015Docker in production  service discovery with consul - road to opscon 2015
Docker in production service discovery with consul - road to opscon 2015Giovanni Toraldo
 
When Docker ends, Chef begins ~ #idi2015 Incontro DevOps Italia
When Docker ends, Chef begins ~ #idi2015 Incontro DevOps ItaliaWhen Docker ends, Chef begins ~ #idi2015 Incontro DevOps Italia
When Docker ends, Chef begins ~ #idi2015 Incontro DevOps ItaliaGiovanni Toraldo
 
Easy applications deployment on OpenStack clouds
Easy applications deployment on OpenStack cloudsEasy applications deployment on OpenStack clouds
Easy applications deployment on OpenStack cloudsGiovanni Toraldo
 
Introduction to Continuous Delivery
Introduction to Continuous DeliveryIntroduction to Continuous Delivery
Introduction to Continuous DeliveryGiovanni Toraldo
 
ClouDesire @ Italian DevOps Initiative 2013 #idi2013
ClouDesire @ Italian DevOps Initiative 2013 #idi2013ClouDesire @ Italian DevOps Initiative 2013 #idi2013
ClouDesire @ Italian DevOps Initiative 2013 #idi2013Giovanni Toraldo
 
Cloud Computing in practice with OpenNebula ~ Develer workshop 2012
Cloud Computing in practice with OpenNebula ~ Develer workshop 2012Cloud Computing in practice with OpenNebula ~ Develer workshop 2012
Cloud Computing in practice with OpenNebula ~ Develer workshop 2012Giovanni Toraldo
 
An introduction to cloud computing
An introduction to cloud computingAn introduction to cloud computing
An introduction to cloud computingGiovanni Toraldo
 
EVA Florence 2012 ~ Open low-cost HA cluster cloud
EVA Florence 2012 ~ Open low-cost HA cluster cloudEVA Florence 2012 ~ Open low-cost HA cluster cloud
EVA Florence 2012 ~ Open low-cost HA cluster cloudGiovanni Toraldo
 

Mehr von Giovanni Toraldo (14)

About code review and BUGS
About code review and BUGSAbout code review and BUGS
About code review and BUGS
 
Introduction to Traefik
Introduction to TraefikIntroduction to Traefik
Introduction to Traefik
 
Managing GCP Projects with Terraform (devfest Pisa 2018)
Managing GCP Projects with Terraform (devfest Pisa 2018)Managing GCP Projects with Terraform (devfest Pisa 2018)
Managing GCP Projects with Terraform (devfest Pisa 2018)
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
 
Software Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachSoftware Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery Approach
 
Docker in production service discovery with consul - road to opscon 2015
Docker in production  service discovery with consul - road to opscon 2015Docker in production  service discovery with consul - road to opscon 2015
Docker in production service discovery with consul - road to opscon 2015
 
When Docker ends, Chef begins ~ #idi2015 Incontro DevOps Italia
When Docker ends, Chef begins ~ #idi2015 Incontro DevOps ItaliaWhen Docker ends, Chef begins ~ #idi2015 Incontro DevOps Italia
When Docker ends, Chef begins ~ #idi2015 Incontro DevOps Italia
 
Easy applications deployment on OpenStack clouds
Easy applications deployment on OpenStack cloudsEasy applications deployment on OpenStack clouds
Easy applications deployment on OpenStack clouds
 
Introduction to Continuous Delivery
Introduction to Continuous DeliveryIntroduction to Continuous Delivery
Introduction to Continuous Delivery
 
ClouDesire @ Italian DevOps Initiative 2013 #idi2013
ClouDesire @ Italian DevOps Initiative 2013 #idi2013ClouDesire @ Italian DevOps Initiative 2013 #idi2013
ClouDesire @ Italian DevOps Initiative 2013 #idi2013
 
Cloud Computing in practice with OpenNebula ~ Develer workshop 2012
Cloud Computing in practice with OpenNebula ~ Develer workshop 2012Cloud Computing in practice with OpenNebula ~ Develer workshop 2012
Cloud Computing in practice with OpenNebula ~ Develer workshop 2012
 
An introduction to cloud computing
An introduction to cloud computingAn introduction to cloud computing
An introduction to cloud computing
 
EVA Florence 2012 ~ Open low-cost HA cluster cloud
EVA Florence 2012 ~ Open low-cost HA cluster cloudEVA Florence 2012 ~ Open low-cost HA cluster cloud
EVA Florence 2012 ~ Open low-cost HA cluster cloud
 
Open@BNCF
Open@BNCFOpen@BNCF
Open@BNCF
 

KĂŒrzlich hochgeladen

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂșjo
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

KĂŒrzlich hochgeladen (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Clustering with Docker Swarm - Dockerops 2016 @ Cento (FE) Italy

  • 1. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Clustering with Docker Swarm 1
  • 2. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com About me Lead developer at ClouDesire.com Open Source Enthusiast with SuperCow Powers Java/PHP/whatever developer writer of the OpenNebula book devops https://twitter.com/gionn me@gionn.net 2
  • 3. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com What is ClouDesire? Application Marketplace to help software vendors to sell and provision applications ● Web Applications: ○ provision VM ○ on multiple cloud providers ○ deploy/upgrade application and dependencies docker containers ○ application logging ○ resource monitoring ● With multi-tenant applications/SaaS: ○ expose REST hooks and API for billing lifecycle ● manage subscriptions, billing, pay-per-use, invoicing, payments. 3
  • 4. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com History of Docker networking support 4 ● 2014-06-09 — Docker 1.0 release - standard bridges, no multi-host support ● 2015-06-16 — Docker 1.7 release - experimental volume plugins, networking rewritten and released as libnetwork ● 2015-07-24 — libnetwork 0.4.0 release, experimental overlay driver and network plugins ● 2015-08-04 — Docker Swarm 0.4 release ● 2015-10-13 — Docker Swarm 1.0 release ● 2015-11-03 — Docker 1.9 release - network feature exits experimental, multi-host networking using VXLAN based overlay driver ● 2016-02-04 — Docker 1.10 release - DNS based discovery
  • 5. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Docker without Swarm ● Independent Docker hosts ○ Chef, Puppet, Ansible? ● Containers manual allocation on multiple nodes ○ Non-linear resources usage ○ No service discovery, hardcoded configurations ■ Consul? ○ Manual reaction to failures ● Unhandled container data - bounded to local node ● Only third-party OSS “schedulers” available (without simplicity in mind) ○ Google Kubernetes ○ Apache Mesos ○ Spotify Helios ○ New Relic Centurion 5
  • 6. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com And then, Swarm. ● Native clustering for Docker: ○ turns a pool of Docker hosts into a single, virtual host ● Standard Docker API ○ re-use existing tools ■ docker cli ■ compose ■ dokku ■ anything else ● Pluggable schedulers 6
  • 7. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Steps for bootstrap a Swarm cluster Bootstrapping a cluster, the practical way: ● Launch a fleet of VM, reachable via SSH ● docker daemon running ○ reachable via TCP port ○ auth with TLS certificates ● external service discovery backend required ● Bootstrap swarm-manager ● Bootstrap swarm-agent on the remaining nodes ● Use swarm-manager API 7
  • 8. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Docker-Machine for launching VM Machine manager (like Vagrant) https://github.com/docker/machine (Win/Mac: distributed in Docker toolkit) ● Launch VM somewhere ● Install Docker ● Generates and copy certificates ○ (password-less auth) ● Enable remote access via TCP 8
  • 9. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Docker-Machine help ● active: Print which machine is active ● config: Print the connection config for machine ● create: Create a machine ● env: Display the commands to set up the environment for the Docker client ● inspect: Inspect information about a machine ● ip: Get the IP address of a machine ● kill: Kill a machine ● ls: List machines ● provision: Re-provision existing machines ● regenerate-certs: Regenerate TLS Certificates for a machine 9 ● restart: Restart a machine ● rm: Remove a machine ● ssh: Log into or run a command on a machine with SSH. ● scp: Copy files between machines ● start: Start a machine ● status: Get the status of a machine ● stop: Stop a machine ● upgrade: Upgrade a machine to the latest version of Docker ● url: Get the URL of a machine ● version: Show the Docker Machine version or a machine docker version
  • 10. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Docker-Machine backends Where nodes can run? ● Generic backend ○ existing hosts with ssh access ● Local machine (virtualization) ○ Virtualbox ○ VMware Fusion ● Cloud providers ○ Amazon ○ GCE ○ Rackspace ○ DigitalOcean ○ ... 10
  • 11. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Bootstrap a node with Docker-Machine $ docker-machine create --driver generic --generic-ip-address=<ip- address> <nodename> $ docker-machine create --driver virtualbox <nodename> $ docker-machine create --driver digitalocean --digitalocean-access-token <token> <nodename> $ docker-machine create --driver amazonec2 --amazonec2-access-key <key> --amazonec2-secret-key <secret> <nodename> $ docker-machine create --driver kvm --kvm-cpu-count 2 --kvm-disk-size 20 --kvm-memory 4096 <nodename> 11
  • 12. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Interaction with a Docker-Machine node $ docker-machine env default export DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://192.168.99.100:2376" export DOCKER_CERT_PATH="/home/gionn/.docker/machine/machines/default" export DOCKER_MACHINE_NAME="default" # Run this command to configure your shell: # eval "$(docker-machine env default)" $ docker info Kernel Version: 4.1.17-boot2docker Operating System: Boot2Docker 1.10.0 (TCL 6.4.1); master : b09ed60 - Thu Feb 4 20:16:08 UTC 2016 12
  • 13. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Docker-Machine for launching a swarm-master Using the Docker Hub discovery backend (best for testing/development): $ docker run swarm create a62518a837ed196550ec83442901dfad $ docker-machine create -d <backend-plugin> --swarm --swarm-master --swarm-discovery token://<token> swarm-master or manually: $ docker run -d -p 3375:2375 -t swarm manage token://<token> 13
  • 14. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Docker-Machine for launching swarm nodes $ docker-machine create -d <backend-plugin> --swarm --swarm-discovery token://<token> swarm-node-00 or manually: $ docker run -d swarm join --addr=<master-ip>:2375 token://<token> 14
  • 15. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Check running machine status $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS swarm-master - virtualbox Running tcp://192.168.99.101:2376 swarm-master (master) v1.10.0 swarm-node-00 - virtualbox Running tcp://192.168.99.100:2376 swarm-node-00 v1.10.0 $ eval $(docker-machine env swarm-master) && docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b664b357e999 swarm:latest "/swarm join --advert" 2 days ago Up 21 minutes swarm-agent 52ddf6fbab43 swarm:latest "/swarm manage --tlsv" 2 days ago Up 21 minutes swarm-agent-master 15
  • 16. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com First lap with Docker Swarm $ docker -H 192.168.99.101:3376 ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c4067a2f176b swarm:latest "/swarm join --advert" 2 minutes ago Up 2 minutes swarm-node-00/swarm-agent 9623e4e94771 swarm:latest "/swarm join --advert" 7 minutes ago Up 7 minutes swarm-master/swarm-agent 8576ffa755c4 swarm:latest "/swarm manage --tlsv" 7 minutes ago Up 7 minutes swarm-master/swarm-agent-master ● agent running on every node ● master running on a single node 16
  • 17. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Service discovery backends for production Swarm relies on a service discovery backend to knows endpoints of all the nodes. ● Docker Hub token (ok for testing, not intended for production) ● Static file with IP:port list or range (poor man service discovery) ● etcd ● consul ● zookeeper 17
  • 18. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Service discovery with Consul Consul is a distributed, highly available Key/Value store and service registry, with simple API. https://www.hashicorp.com/ https://www.consul.io 18
  • 19. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Consul features ● Agent based ● Key-Value Store ● Services discovery backend ● Services Health Checking ● Query interfaces ○ HTTP JSON API ○ DNS ● LAN communication ● WAN replication (Multi-DC) ● UI for browsing 19 ● Agent ○ Health Checking ○ Query interface (HTTP, DNS) ● Server ○ Data storage and replication ○ Leader election ○ Query interface (HTTP, DNS)
  • 20. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com 20
  • 21. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Bootstrap Consul cluster with Docker-Machine Initialize new node(s): $ docker-machine create -d <backend-plugin> consul-1 Prepare for launch: $ eval $(docker-machine env consul-1) 21
  • 22. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Service discovery with Consul Single node bootstrap: $ docker run --net=host progrium/consul -server -bootstrap Multiple node bootstrap: $ docker run --net=host progrium/consul -server -bootstrap-expect 3 $ docker run --net=host progrium/consul -server -join <existing-node-ip> https://hub.docker.com/r/progrium/consul/ 22
  • 23. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Bootstrap swarm-master backed by Consul $ docker-machine create -d <backend-plugin> --swarm --swarm-master --swarm-discovery="consul://$(docker-machine ip consul-1):8500" -- engine-opt="cluster-store=consul://$(docker-machine ip consul-1): 8500" --engine-opt="cluster-advertise=eth1:2376" swarm-master ● Node information saved in the K/V store ● Master announce itself on the network for being picked up by agents 23
  • 24. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Highly available Swarm master backed by Consul 24 Master replaced automatically when a last advertise TTL expires $ docker-machine create -d virtualbox --swarm --swarm-master --swarm-discovery="consul://$(docker-machine ip consul-1):8500" --engine-opt="cluster-store=consul://$(docker-machine ip consul-1): 8500" --engine-opt="cluster-advertise=eth1:2376" --swarm-opt="replication=true" --swarm-opt="advertise=eth1:3376" swarm-master
  • 25. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Multi-Host networking with Overlay driver Default bridge network allows only single host networking. Overlay enables multi-host networking with a software-defined network. ● K/V Store is required (e.g. Consul) ● Create a network with overlay driver $ docker -H 192.168.99.101:3376 network create --driver overlay --subnet=10. 0.9.0/24 cloudesire ● Run containers within the new network $ docker -H 192.168.99.101:3376 run -ti --net=cloudesire busybox 25
  • 26. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Multi-Host networking with Overlay driver (2) ● Example ip addr of a container attached to overlay network 11: eth0@if12: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue link/ether 02:42:0a:00:09:02 brd ff:ff:ff:ff:ff:ff inet 10.0.9.2/24 scope global eth0 14: eth1@if15: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff inet 172.18.0.2/16 scope global eth1 ● Multiple overlay network can be created ● Service discovery via dns enabled ○ Forget about using links ■ No more starting order madness ■ No more restart parties ● Additional services registered via --publish-service=service.name ○ Multiple containers exposing the same service 26
  • 27. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Swarm Manager scheduler policies Available strategies: ● spread ○ few containers on every node ● binpack ○ most containers on few nodes ● random ○ totally cpu/memory unaware Tip: stopped containers count towards scheduler allocation 27
  • 28. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Scheduler filters Filters enabled by default: ● Health ○ avoid starting containers on unhealthy hosts ● Constraints ○ by node name ○ by storage driver ○ by kernel version ○ by custom labels $ docker run -e constraint:storage==ssd mysql 28
  • 29. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Container filters ● affinity ○ container: prefer scheduling nearby existing container ■ -e affinity:container==frontend ○ image: prefer scheduling on node with already pulled image ■ -e affinity:image==redis ○ label: prefer scheduling nearby tagged containers ■ --label com.example.type=frontend ■ -e affinity:com.example.type==frontend ● dependency ○ --volumes-from=N — same node where volume reside ○ --link=N:alias — same node with container to link to ○ --net=container:N — node with same network stack of another container ● port ○ avoids port clashes when launching multiple containers on the same port 29
  • 30. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com What about Storage? ● Docker 1.8 introduced volume plugins ● Docker 1.9 improve usability of volume plugins Available plugins (any particular Swarm support required): ● Flocker (move data along with containers) ● Netshare (NFS, CIFS, AWS AFS) ● Convoy (NFS, EBS, plus snapshot support) ● GlusterFS ● https://github.com/docker/docker/blob/master/docs/extend/plugins.md $ docker run -d --volume-driver <driver> -v <src:dst_path> <image> 30
  • 31. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Gotchas -> Roadmap ● Too simple container rescheduling on node failure ○ No stateful/stateless distinction ● No rebalancing across nodes ● No Global Scheduling (same container on every node, e.g. log collector) ● No Persistence of status - no Shared State ○ If master goes offline, and then node goes offline, master came back, no way to know what was on node running ● Scalability up to hundreds of nodes ● Lacking integration with larger platforms: Mesos, Kubernetes 31
  • 32. DockerOps 2016 #dockerops Giovanni Toraldo ~ ClouDesire.com Questions/demo? 32