ausrollen von multi-tier-applikationen mit docker
TRANSCRIPT
![Page 1: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/1.jpg)
Ausrollen von Multi-Tier-Applikationenmit DockerDB Open Source Workshop, Frankfurt 26. November 2015
Mattias GieseSystem Management & Monitoring Architect
B1 Systems [email protected]
B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development
![Page 2: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/2.jpg)
Vorstellung B1 Systems
gegründet 2004primär Linux/Open Source-Themennational & international tätigüber 70 Mitarbeiterunabhängig von Soft- und Hardware-HerstellernLeistungsangebot:
Beratung & ConsultingSupportEntwicklungTrainingBetriebLösungen
dezentrale Strukturen
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 2 / 25
![Page 3: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/3.jpg)
SchwerpunkteVirtualisierung (XEN, KVM & RHEV)Systemmanagement (Spacewalk, Red Hat Satellite, SUSEManager)Konfigurationsmanagement (Puppet & Chef)Monitoring (Nagios & Icinga)IaaS Cloud (OpenStack & SUSE Cloud & RDO)Hochverfügbarkeit (Pacemaker)Shared Storage (GPFS, OCFS2, DRBD & CEPH)Dateiaustausch (ownCloud)Paketierung (Open Build Service)Administratoren oder Entwickler zur Unterstützung des Teamsvor Ort
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 3 / 25
![Page 4: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/4.jpg)
Agenda
Docker – Kurzer ÜberblickMaschinen erstellen mit docker-machinemehrere Maschinen ansprechen mit docker-swarmApplikationsszenarien abbilden und implementieren mitdocker-compose
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 4 / 25
![Page 5: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/5.jpg)
Docker – Kurzer Überblick
„Old“ technology wrapped in some Hipster . . .
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 5 / 25
![Page 6: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/6.jpg)
docker-machine
baut Maschinen für den Einsatz mit Dockerviele Treiber:
VirtualBoxVMwareDigitalOceanAzureAWS...
kann auch bestehende Maschine konfigurieren (generic)automatische „Absicherung“ der Hosts(Authentifizierung/Autorisierung via TLS Zertifikate)
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 6 / 25
![Page 7: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/7.jpg)
docker-machine
Maschine auf VirtualBox mit dem Namen „foobar“ erzeugen$ docker-machine create -d virtualbox foobar1
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 7 / 25
![Page 8: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/8.jpg)
docker-machine
Verbindung zur Maschine# docker-machine env foobar1export DOCKER_TLS_VERIFY="1"export DOCKER_HOST="tcp://192.168.99.100:2376"export DOCKER_CERT_PATH="/home/mattias/.docker/
machine/machines/foobar1"export DOCKER_MACHINE_NAME="foobar1"
# Run this command to configure your shell:# eval "$(docker-machine env foobar1)"
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 8 / 25
![Page 9: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/9.jpg)
docker-swarm
„Wrapper“-API für DockerDiscovery via Docker Hub integrierteigene Discovery möglich:
statische Datei mit Host:Port ZeilenAngabe auf Kommandozeileetcd, Consul, ZooKeeper, . . .
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 9 / 25
![Page 10: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/10.jpg)
docker-swarm Docker Hub
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 10 / 25
![Page 11: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/11.jpg)
docker-swarm etcd
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 11 / 25
![Page 12: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/12.jpg)
docker-swarm – Discovery via Docker Hub
Discovery Token erstellen:$ docker run swarm create4754c10117f48dc759ec2f0989d1bdad
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 12 / 25
![Page 13: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/13.jpg)
docker-swarm – Swarm Node
Swarm Node$ docker run -d swarm join --addr=docker_ip:2375 \
token://4754c10117f48dc759ec2f0989d1bdad
Docker muss via TCP lauschen!
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 13 / 25
![Page 14: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/14.jpg)
docker-swarm – Swarm Manager
Swarm Manager$ docker run -d swarm manager \
token://4754c10117f48dc759ec2f0989d1bdad
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 14 / 25
![Page 15: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/15.jpg)
docker-swarm via docker-machine
Master/Node$ docker-machine create -d virtualbox \
--swarm --swarm-master \--swarm-discovery \token://4754c10117f48dc759ec2f0989d1bdad \swarm-master
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 15 / 25
![Page 16: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/16.jpg)
docker-swarm via docker-machine
Weiterer Node$ docker-machine create -d virtualbox \
--swarm --swarm-master \--swarm-discovery \token://4754c10117f48dc759ec2f0989d1bdad \swarm-node1
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 16 / 25
![Page 17: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/17.jpg)
docker-swarm – Scheduler Strategies
Strategies:spread (Default)binpackrandom
In Abhängigkeit von RAM, CPU und laufenden Containern
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 17 / 25
![Page 18: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/18.jpg)
docker-swarm – Constraints/Affinity Filter
Labels: Beispiele: ssd, rz15, production(docker -d --label foo=bar)
Host Facts: operatingsystem, provider, storagedriver, . . .weitere Filter: image, container, node
implizit: net namespace, volumes, ports
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 18 / 25
![Page 19: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/19.jpg)
docker-swarm – Beispiele
Beispiele:$ docker run -d -p 80:80 -e affinity:image==~nginx \
nginx www1
$ docker run -d -e constraint:stage!=production ...
$ docker run -d -e affinity:container==drunk_edison ...
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 19 / 25
![Page 20: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/20.jpg)
docker-swarm – HA
mehrere docker-swarm Master möglichMaster wird dynamisch gewählt (Raft)Kommandos werden automatisch repliziert
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 20 / 25
![Page 21: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/21.jpg)
docker-swarm – HA
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 21 / 25
![Page 22: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/22.jpg)
docker-compose
„The artist formerly known as fig“Simple YAML „Sprache“ zur Beschreibung des Anwendungsfallsbaut Images, startet Container nach Beschreibung
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 22 / 25
![Page 23: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/23.jpg)
Beispiel: docker-compose – YAMLdatabase:
build: mysql/volumes:
- /var/lib/mysqlexpose:
- "3306"environment:
- DB_ADMIN_USER=admin- DB_ADMIN_PASS=admin
owncloud:build: httpd/links:
- database:dbvolumes:
- /srv/www/htdocs/owncloud/data- /srv/www/htdocs/owncloud/config
ports:- "80:80"
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 23 / 25
![Page 24: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/24.jpg)
docker-compose – Demonstration
https://github.com/mattiasgiese/committerconf2015-docker
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 24 / 25
![Page 25: Ausrollen von Multi-Tier-Applikationen mit Docker](https://reader034.vdocuments.pub/reader034/viewer/2022042706/589ff96e1a28ab46598b5f5d/html5/thumbnails/25.jpg)
Vielen Dank für Ihre Aufmerksamkeit!Bei weiteren Fragen wenden Sie sich bitte an [email protected]
oder +49 (0)8457 - 931096
B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development