SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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 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
 

Tendances (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
 

En vedette

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
 
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
 

En vedette (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)
 

Similaire à 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
 

Similaire à 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
 

Plus de Giovanni Toraldo

About code review and BUGS
About code review and BUGSAbout code review and BUGS
About code review and BUGSGiovanni 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
 

Plus de 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
 

Dernier

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 

Dernier (20)

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 

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