SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Ausrollen von Multi-Tier-Applikationen
mit Docker
DB Open Source Workshop, Frankfurt 26. November 2015
Mattias Giese
System Management & Monitoring Architect
B1 Systems GmbH
giese@b1-systems.de
B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development
Vorstellung B1 Systems
gegründet 2004
primär Linux/Open Source-Themen
national & international tätig
über 70 Mitarbeiter
unabhängig von Soft- und Hardware-Herstellern
Leistungsangebot:
Beratung & Consulting
Support
Entwicklung
Training
Betrieb
Lösungen
dezentrale Strukturen
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 2 / 25
Schwerpunkte
Virtualisierung (XEN, KVM & RHEV)
Systemmanagement (Spacewalk, Red Hat Satellite, SUSE
Manager)
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 Teams
vor Ort
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 3 / 25
Agenda
Docker – Kurzer Überblick
Maschinen erstellen mit docker-machine
mehrere Maschinen ansprechen mit docker-swarm
Applikationsszenarien abbilden und implementieren mit
docker-compose
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 4 / 25
Docker – Kurzer Überblick
„Old“ technology wrapped in some Hipster . . .
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 5 / 25
docker-machine
baut Maschinen für den Einsatz mit Docker
viele Treiber:
VirtualBox
VMware
DigitalOcean
Azure
AWS
...
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
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
docker-machine
Verbindung zur Maschine
# docker-machine env foobar1
export 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
docker-swarm
„Wrapper“-API für Docker
Discovery via Docker Hub integriert
eigene Discovery möglich:
statische Datei mit Host:Port Zeilen
Angabe auf Kommandozeile
etcd, Consul, ZooKeeper, . . .
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 9 / 25
docker-swarm Docker Hub
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 10 / 25
docker-swarm etcd
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 11 / 25
docker-swarm – Discovery via Docker Hub
Discovery Token erstellen:
$ docker run swarm create
4754c10117f48dc759ec2f0989d1bdad
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 12 / 25
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
docker-swarm – Swarm Manager
Swarm Manager
$ docker run -d swarm manager 
token://4754c10117f48dc759ec2f0989d1bdad
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 14 / 25
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
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
docker-swarm – Scheduler Strategies
Strategies:
spread (Default)
binpack
random
In Abhängigkeit von RAM, CPU und laufenden Containern
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 17 / 25
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
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
docker-swarm – HA
mehrere docker-swarm Master möglich
Master wird dynamisch gewählt (Raft)
Kommandos werden automatisch repliziert
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 20 / 25
docker-swarm – HA
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 21 / 25
docker-compose
„The artist formerly known as fig“
Simple YAML „Sprache“ zur Beschreibung des Anwendungsfalls
baut Images, startet Container nach Beschreibung
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 22 / 25
Beispiel: docker-compose – YAML
database:
build: mysql/
volumes:
- /var/lib/mysql
expose:
- "3306"
environment:
- DB_ADMIN_USER=admin
- DB_ADMIN_PASS=admin
owncloud:
build: httpd/
links:
- database:db
volumes:
- /srv/www/htdocs/owncloud/data
- /srv/www/htdocs/owncloud/config
ports:
- "80:80"
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 23 / 25
docker-compose – Demonstration
https://github.com/mattiasgiese/committerconf2015-docker
B1 Systems GmbH Multi-Tier-Applikationen mit Docker 24 / 25
Vielen Dank für Ihre Aufmerksamkeit!
Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de
oder +49 (0)8457 - 931096
B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python Development
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemacht
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17
 
Was gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-Universum
 
Docker and Raspberry Pi. A dream team?
Docker and Raspberry Pi. A dream team?Docker and Raspberry Pi. A dream team?
Docker and Raspberry Pi. A dream team?
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Docker
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Klein, aber oho - Continuous Delivery von Micro Applications mit Jenkins, Doc...
Klein, aber oho - Continuous Delivery von Micro Applications mit Jenkins, Doc...Klein, aber oho - Continuous Delivery von Micro Applications mit Jenkins, Doc...
Klein, aber oho - Continuous Delivery von Micro Applications mit Jenkins, Doc...
 
C++ Dependency Management 2.0
C++ Dependency Management 2.0C++ Dependency Management 2.0
C++ Dependency Management 2.0
 
Docker Entwicklungsumgebung für TYPO3 mit xdebug
Docker Entwicklungsumgebung für TYPO3 mit xdebugDocker Entwicklungsumgebung für TYPO3 mit xdebug
Docker Entwicklungsumgebung für TYPO3 mit xdebug
 
Storage Cluster mit CEPH
Storage Cluster mit CEPHStorage Cluster mit CEPH
Storage Cluster mit CEPH
 
System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet
 
Ceph - Software Defined Storage für die Cloud
Ceph - Software Defined Storage für die CloudCeph - Software Defined Storage für die Cloud
Ceph - Software Defined Storage für die Cloud
 
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and SpaceSoftwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space
 

Andere mochten auch

도박의세계『SX797』『СOM』라이브카지노
도박의세계『SX797』『СOM』라이브카지노도박의세계『SX797』『СOM』라이브카지노
도박의세계『SX797』『СOM』라이브카지노
ghsiduh
 
Ahmad Samer Khammash CV 2015
Ahmad Samer Khammash CV 2015Ahmad Samer Khammash CV 2015
Ahmad Samer Khammash CV 2015
Ahmad Al-khammash
 
Our client llegal task 4a and task 4b
Our client llegal task 4a and task 4bOur client llegal task 4a and task 4b
Our client llegal task 4a and task 4b
pepemehmi
 
바카라전략 방법\\【FUN7。ASIA】\\바카라전략 온라인
바카라전략 방법\\【FUN7。ASIA】\\바카라전략 온라인바카라전략 방법\\【FUN7。ASIA】\\바카라전략 온라인
바카라전략 방법\\【FUN7。ASIA】\\바카라전략 온라인
hdefeeg
 
Research task 3a
Research task 3aResearch task 3a
Research task 3a
pepemehmi
 
презентация. обєм піраміди, типові задачі
презентация. обєм піраміди, типові задачіпрезентация. обєм піраміди, типові задачі
презентация. обєм піраміди, типові задачі
olgasamiltnko7
 

Andere mochten auch (17)

Artist moodboard
Artist moodboardArtist moodboard
Artist moodboard
 
Images for the Clouds with KIWI & OBS
Images for the Clouds with KIWI & OBSImages for the Clouds with KIWI & OBS
Images for the Clouds with KIWI & OBS
 
도박의세계『SX797』『СOM』라이브카지노
도박의세계『SX797』『СOM』라이브카지노도박의세계『SX797』『СOM』라이브카지노
도박의세계『SX797』『СOM』라이브카지노
 
Kristina Syrocki Resume 1
Kristina Syrocki Resume 1Kristina Syrocki Resume 1
Kristina Syrocki Resume 1
 
Ahmad Samer Khammash CV 2015
Ahmad Samer Khammash CV 2015Ahmad Samer Khammash CV 2015
Ahmad Samer Khammash CV 2015
 
Our client llegal task 4a and task 4b
Our client llegal task 4a and task 4bOur client llegal task 4a and task 4b
Our client llegal task 4a and task 4b
 
Comboio 01
Comboio 01Comboio 01
Comboio 01
 
Wold lit midterm
Wold lit midtermWold lit midterm
Wold lit midterm
 
바카라전략 방법\\【FUN7。ASIA】\\바카라전략 온라인
바카라전략 방법\\【FUN7。ASIA】\\바카라전략 온라인바카라전략 방법\\【FUN7。ASIA】\\바카라전략 온라인
바카라전략 방법\\【FUN7。ASIA】\\바카라전략 온라인
 
Research task 3a
Research task 3aResearch task 3a
Research task 3a
 
RIF2LE - Integral Approach to Strategic Intelligence
RIF2LE - Integral Approach to Strategic IntelligenceRIF2LE - Integral Approach to Strategic Intelligence
RIF2LE - Integral Approach to Strategic Intelligence
 
Smorodina.mobi — mobile development
Smorodina.mobi — mobile developmentSmorodina.mobi — mobile development
Smorodina.mobi — mobile development
 
กรีฑา
กรีฑากรีฑา
กรีฑา
 
25. contratos mineros 7 (1)
25. contratos mineros 7 (1)25. contratos mineros 7 (1)
25. contratos mineros 7 (1)
 
презентация. обєм піраміди, типові задачі
презентация. обєм піраміди, типові задачіпрезентация. обєм піраміди, типові задачі
презентация. обєм піраміди, типові задачі
 
το αυτι
το αυτιτο αυτι
το αυτι
 
Seven QC Tools Training; Process Flow Chart
Seven QC Tools Training; Process Flow ChartSeven QC Tools Training; Process Flow Chart
Seven QC Tools Training; Process Flow Chart
 

Ähnlich wie Ausrollen von Multi-Tier-Applikationen mit Docker

Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfDockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Syahri Ramadhan
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
Steven Grzbielok
 

Ähnlich wie Ausrollen von Multi-Tier-Applikationen mit Docker (20)

WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfDockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
 
Was ist Docker?
Was ist Docker?Was ist Docker?
Was ist Docker?
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
 
Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows Container
 
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenOpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
 
Entwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantEntwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit Vagrant
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenOpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
 
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...
 
Dockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloudDockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloud
 
Infrastructure as Code mit Terraform
Infrastructure as Code mit TerraformInfrastructure as Code mit Terraform
Infrastructure as Code mit Terraform
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und Docker
 
Ubuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingUbuntu-/Debian-Packaging
Ubuntu-/Debian-Packaging
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Openshift
OpenshiftOpenshift
Openshift
 

Mehr von B1 Systems GmbH

Mehr von B1 Systems GmbH (20)

Ubuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreibenUbuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreiben
 
Android mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen RepoAndroid mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen Repo
 
Ambilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & HyperionAmbilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & Hyperion
 
B1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AGB1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AG
 
Salt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersSalt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for Datacenters
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStack
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStack
 
Bits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der ZeitBits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der Zeit
 
End of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStackEnd of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStack
 
systemd im Alltag
systemd im Alltagsystemd im Alltag
systemd im Alltag
 
E-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPGE-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPG
 
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenSome Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
 
Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?
 
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SE
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SEOpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SE
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SE
 
Migrating deployment processes and Continuous Integration at SAP SE
Migrating deployment processes and Continuous Integration at SAP SEMigrating deployment processes and Continuous Integration at SAP SE
Migrating deployment processes and Continuous Integration at SAP SE
 
Salt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersSalt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for Datacenters
 
Openstack im unternehmerischen Einsatz
Openstack im unternehmerischen EinsatzOpenstack im unternehmerischen Einsatz
Openstack im unternehmerischen Einsatz
 
Lifecycle Management mit Puppet und Foreman
Lifecycle Management mit Puppet und ForemanLifecycle Management mit Puppet und Foreman
Lifecycle Management mit Puppet und Foreman
 
DevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetAppDevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetApp
 

Ausrollen von Multi-Tier-Applikationen mit Docker

  • 1. Ausrollen von Multi-Tier-Applikationen mit Docker DB Open Source Workshop, Frankfurt 26. November 2015 Mattias Giese System Management & Monitoring Architect B1 Systems GmbH giese@b1-systems.de B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development
  • 2. Vorstellung B1 Systems gegründet 2004 primär Linux/Open Source-Themen national & international tätig über 70 Mitarbeiter unabhängig von Soft- und Hardware-Herstellern Leistungsangebot: Beratung & Consulting Support Entwicklung Training Betrieb Lösungen dezentrale Strukturen B1 Systems GmbH Multi-Tier-Applikationen mit Docker 2 / 25
  • 3. Schwerpunkte Virtualisierung (XEN, KVM & RHEV) Systemmanagement (Spacewalk, Red Hat Satellite, SUSE Manager) 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 Teams vor Ort B1 Systems GmbH Multi-Tier-Applikationen mit Docker 3 / 25
  • 4. Agenda Docker – Kurzer Überblick Maschinen erstellen mit docker-machine mehrere Maschinen ansprechen mit docker-swarm Applikationsszenarien abbilden und implementieren mit docker-compose B1 Systems GmbH Multi-Tier-Applikationen mit Docker 4 / 25
  • 5. Docker – Kurzer Überblick „Old“ technology wrapped in some Hipster . . . B1 Systems GmbH Multi-Tier-Applikationen mit Docker 5 / 25
  • 6. docker-machine baut Maschinen für den Einsatz mit Docker viele Treiber: VirtualBox VMware DigitalOcean Azure AWS ... 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
  • 7. 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
  • 8. docker-machine Verbindung zur Maschine # docker-machine env foobar1 export 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
  • 9. docker-swarm „Wrapper“-API für Docker Discovery via Docker Hub integriert eigene Discovery möglich: statische Datei mit Host:Port Zeilen Angabe auf Kommandozeile etcd, Consul, ZooKeeper, . . . B1 Systems GmbH Multi-Tier-Applikationen mit Docker 9 / 25
  • 10. docker-swarm Docker Hub B1 Systems GmbH Multi-Tier-Applikationen mit Docker 10 / 25
  • 11. docker-swarm etcd B1 Systems GmbH Multi-Tier-Applikationen mit Docker 11 / 25
  • 12. docker-swarm – Discovery via Docker Hub Discovery Token erstellen: $ docker run swarm create 4754c10117f48dc759ec2f0989d1bdad B1 Systems GmbH Multi-Tier-Applikationen mit Docker 12 / 25
  • 13. 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
  • 14. docker-swarm – Swarm Manager Swarm Manager $ docker run -d swarm manager token://4754c10117f48dc759ec2f0989d1bdad B1 Systems GmbH Multi-Tier-Applikationen mit Docker 14 / 25
  • 15. 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
  • 16. 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
  • 17. docker-swarm – Scheduler Strategies Strategies: spread (Default) binpack random In Abhängigkeit von RAM, CPU und laufenden Containern B1 Systems GmbH Multi-Tier-Applikationen mit Docker 17 / 25
  • 18. 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
  • 19. 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
  • 20. docker-swarm – HA mehrere docker-swarm Master möglich Master wird dynamisch gewählt (Raft) Kommandos werden automatisch repliziert B1 Systems GmbH Multi-Tier-Applikationen mit Docker 20 / 25
  • 21. docker-swarm – HA B1 Systems GmbH Multi-Tier-Applikationen mit Docker 21 / 25
  • 22. docker-compose „The artist formerly known as fig“ Simple YAML „Sprache“ zur Beschreibung des Anwendungsfalls baut Images, startet Container nach Beschreibung B1 Systems GmbH Multi-Tier-Applikationen mit Docker 22 / 25
  • 23. Beispiel: docker-compose – YAML database: build: mysql/ volumes: - /var/lib/mysql expose: - "3306" environment: - DB_ADMIN_USER=admin - DB_ADMIN_PASS=admin owncloud: build: httpd/ links: - database:db volumes: - /srv/www/htdocs/owncloud/data - /srv/www/htdocs/owncloud/config ports: - "80:80" B1 Systems GmbH Multi-Tier-Applikationen mit Docker 23 / 25
  • 25. Vielen Dank für Ihre Aufmerksamkeit! Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de oder +49 (0)8457 - 931096 B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development