JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads...

95
JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein IT Automation, die zu einem passt Sandra Parsick [email protected] @SandraParsick

Transcript of JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads...

Page 1: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

JUG Saxony Day, 29.09.17

Es muss nicht immer gleich Docker seinIT Automation, die zu einem passt

Sandra [email protected]

@SandraParsick

Page 2: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Zur meiner Person

● Sandra Parsick

● Freiberuflicher Softwareentwickler und Consultant im Java-Umfeld

● Schwerpunkte:

– Java Enterprise Anwendungen

– Agile Methoden

– Software Craftmanship

– Automatisierung von Entwicklungsprozessen

● Trainings

● Workshops

● Softwerkskammer Ruhrgebiet

● Twitter: @SandraParsick

● Blog: http://blog.sandra-parsick.de

● E-Mail: [email protected]

Page 3: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Motivation

Page 4: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Warum Ansible, wenn Docker auch

diese Probleme löst?

Aber dafür haben wir doch Docker

Page 5: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Lass unsere Deployment mit Ansible automatisieren

Wir wollen doch nächstes Jahr oder späterDocker einsetzen

Zu aufwendig zwischendurch

Ansible einzuführen

Aber alle verwenden doch Docker

Page 6: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Wieso wird Ansible mit Docker

gleich gesetzt?

Ist der UnterschiedContainer und

Provisionierungswerkzeug nicht klar?

Conference-Driven-

Development?

Page 7: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Container vs. Provisionierungswerkzeuge

Page 8: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Container - Allgemein

Container● verpacken Anwendungen und ihre

Abhängigkeiten zu einer Einheit● isolieren diese von anderen Anwendungen● standardisieren die Art und Weise der

Auslieferung von Anwendungen

Page 9: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Container Є { } ?

Page 10: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker
Page 11: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Provisionierungswerkzeug - Allgemein

Provisionierungswerkzeug● automatisiert die Provisionierung eines Servers

Server-Provisionierung● eine Menge an Schritten, um einen Server mit

Daten und Software vorzubereiten– Resourcen zuweisen und konfigurieren

– Middleware installieren und konfigurieren

– Anwendungen installieren und konfiguieren

Page 12: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

„Infrastructure As Code“

Page 13: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Ansible

Page 14: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Und nun?

Page 15: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Status Quo

Page 16: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Wunsch – aber notwendig für Automatisierung?

Page 17: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker
Page 18: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

ReiserouteReiseroute

Automatisierung der bestehenden Automatisierung der bestehenden Infrastruktur mit AnsibleInfrastruktur mit Ansible

Wiederverwendung der Ansible Playbooks Wiederverwendung der Ansible Playbooks für die Docker-Image-Erstellungfür die Docker-Image-Erstellung

Automatisierung des Docker-Image-Automatisierung des Docker-Image-Lifecycles mit AnsibleLifecycles mit Ansible

Verteilung der Docker-Container auf die Verteilung der Docker-Container auf die Server mit AnsibleServer mit Ansible

Page 19: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Erste ReiseetappeAutomatisierung der bestehenden

Infrastruktur mit Ansible

Page 20: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Ausgangslage

Page 21: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Ansible

● Provisionierungswerkzeug● Sprache: Python● Ansible Skripte (genannt Playbooks): YAML

Page 22: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Funktionsweise

Page 23: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Exkurs: YAML

YAML JSON

Page 24: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Setup Application Server Playbook

Page 25: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker
Page 26: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Inventories

Production Test

Page 27: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker
Page 28: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Ansible Modules

Page 29: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker
Page 30: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Setup Application Server Playbook

Page 31: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Java Webapplikation Deployment

Page 32: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Deploy Application Playbook

Page 33: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Deploy Application Playbook

Page 34: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Ansible Infrastruktur

Page 35: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Weitere Features

● Role● Vault – Verschlüsselung● Facts● Dynamische Inventories● Playbook Debugger● Networking Support

Page 36: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Wie werden Ansible Skripte getestet?

● ansible-playbook --check

● ansible-playbook --syntax-check

● Jenkins + Vagrant● Rspec tests

Page 37: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

ServerSpec Tests

Page 38: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

ServerSpec Tests

Page 39: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Reiseroute

Automatisierung der bestehenden Infrastruktur mit Ansible

Wiederverwendung der Ansible Playbooks für die Docker-Image-Erstellung

Automatisierung des Docker-Image-Lifecycles mit Ansible

Verteilung der Docker-Container auf die Server mit Ansible

Page 40: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Zweite ReiserouteWiederverwendung der Ansible

Playbooks für die Docker-Image-Erstellung

Page 41: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Docker

● Verwaltungswerkzeug für Container● Weitere Werkzeuge aus dem Docker

Universum (Auszug):– Docker Compose: Hilft beim Definieren und beim

Laufen von Multi-Container Anwendungen

– Docker Registry: Repository Manager für Docker Images

Page 42: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Docker Lifecycle

Page 43: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Reminder - Zielinfrastruktur

Page 44: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Was brauchen wir?

● Zwei Dockerfiles– Mysql.df

– Tomcat.df

● WAR Datei wird über Volume eingebunden

Page 45: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Dockerfile ohne Ansible (tomcat.df)

Page 46: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Dockerfile mit Ansible (tomcat.df)

Page 47: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Dockerfile mit Ansible (mysql.df)

Page 48: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Dockerfile mit Ansible Demo

Page 49: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Dockerfile mit Ansible - Pros und Cons

✔ Vorhandene Skripte können wiederverwendet werden

✔ Reicht aus um generell seine Anwendung im Docker Container zu testen

✗ Es werden Abhängigkeiten in das Image mit gepackt, die die Anwendung nicht braucht → Image wird unnötig groß

✗ Alternative: Ansible + Python (De) -Installation als RUN Schritt → Image-Build-Dauer erhöht sich

Page 50: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Ansible Connection Type: Docker

● Neuer Connection Type seit Ansible 2.0● Funktionsweise:

– Ansible führt die Playbooks über docker exec in einem laufendem Container aus

– Bedingung: Im Container muss Python installiert sein

Page 51: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Ansible Connection Type: Docker

Page 52: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Ansible Connection Type: Docker - Pros und Cons

✔ Vorhandene Skripte können wiederverwendet werden

✔ Reicht aus um generell seine Anwendung im Docker Container zu testen

✔ Keine Dockerfiles

✗ Base Image muss Python Installation haben

✗ Mehr Schritte erforderlich

Page 53: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Alternativen

● Template● Ansible-Container● Packer● Rocker● Etc.● Überblick verschafft Talk „Docker Container

Loading“ von Roland Huß

Page 54: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Docker Container Lifecylce (lokal)

v

Page 55: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Es geht aus kürzer

Page 56: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Docker Compose

Page 57: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Docker Compose Demo

Page 58: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Docker Compose

Page 59: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Docker Compose – Ansible Connection Type Docker

Page 60: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Reminder: Dockerfile

Page 61: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Reiseroute

Automatisierung der bestehenden Infrastruktur mit Ansible

Wiederverwendung der Ansible Playbooks für die Docker-Image-Erstellung

Automatisierung des Docker-Image-Lifecycles mit Ansible

Verteilung der Docker-Container auf die Server mit Ansible

Page 62: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Dritte ReiserouteAutomatisierung des Docker-Image-

Lifecycles mit Ansible

Page 63: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Docker Lifecycle

Page 64: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Docker Registry Lifecycle

Page 65: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Docker Registry Lifecyle mit Ansible

Page 66: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Docker Registry Lifecycle mit Ansible Demo

Page 67: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Docker Registry Alternativen

Page 68: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Reiseroute

Automatisierung der bestehenden Infrastruktur mit Ansible

Wiederverwendung der Ansible Playbooks für die Docker-Image-Erstellung

Automatisierung des Docker-Image-Lifecycles mit Ansible

Verteilung der Docker-Container auf die Server mit Ansible

Page 69: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Letzte ReiserouteVerteilung der Docker-Container auf

die Server mit Ansible

Page 70: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Docker Lifecycle

Page 71: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Was brauchen wir?

● Docker Installation automatisieren● Docker Registry Installation automatisieren● Container auf das Zielsystem verteilen● WAR Datei wird über Volume eingebunden

→ muss auf den Zielsystem kopiert werden

Page 72: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Setup-dockerd.yml (Ausschnitt)

Page 73: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Setup-docker-registry.yml (Ausschnitt)

Page 74: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Build-and-push-images.yml (Ausschnitt)

Page 75: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Deploy-docker-container.yml (Ausschnitt)

Page 76: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Alternative Ansible mit Docker Compose Syntax

Docker-compose muss auf dem Zielmaschine installiert werden

Page 77: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Ansible Playbook Call

Page 78: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Reiseroute

Automatisierung der bestehenden Infrastruktur mit Ansible

Wiederverwendung der Ansible Playbooks für die Docker-Image-Erstellung

Automatisierung des Docker-Image-Lifecycles mit Ansible

Verteilung der Docker-Container auf die Server mit Ansible

Page 79: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Was haben wir gesehen?

● Provisionierungswerkzeuge (PW) können aktuelle Infrastrukturprobleme lösen

● Einsatz eines PW verbaut nicht den Weg hin zu einer Containerisierung der Infrastruktur

● PW kann bei der Umstellung helfen● PW erleichtert das Container-Deployment

Page 80: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Wann Container einsetzen?

Page 81: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Mögliche Einsatzszenarien für Container

● Anwendung muss automatisch skaliert werden● Unternehmen hat unterschiedliche Technologiestacks und will die Verteilung vereinheitlichen

● Bei Integrationstests innerhalb eines Builds (Testcontainer)

Page 82: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Integrationstests mit Container

Page 83: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Migrationstests von DB Skripte

Page 84: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Migrationstests von DB Skripte

Page 85: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Integrationstest für die Persistenzschicht

Page 86: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Testcontainers

● Temporary database containers - spezielle MySQL, PostgreSQL, Oracle XE and Virtuoso container

● Webdriver containers - Dockerized Chrome oder Firefox browser für Selenium/Webdriver Operationen mit automatischer Videoaufnahme

● Generic containers – irgendein Docker Container● Docker compose – Wiederverwendung von Docker

Compose YAML Datei● Dockerfile containers – Container direkt von einem

Dockerfile

Page 87: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Fazit

Page 88: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

@SandraParsick@[email protected]@sandra-parsick.de

https://github.com/sparsick/ansible-docker-talk.githttps://github.com/sparsick/ansible-docker-talk.git

Fragen?Fragen?

Page 89: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Weitere Informationen

http://docs.ansible.com/

Page 90: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Weitere Informationen

Page 91: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Weitere Informationen

http://bit.ly/2cZ0IrZ

Page 92: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Weitere Informationen

https://docs.docker.com/

Page 93: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Weitere Informationen

OBJEKTspektrum Online Themenspecial DevOps 2017

http://bit.ly/2p7mxyB

Page 94: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Weitere Informationen

● Talk „Docker Container Loading“ von Roland Hußhttps://github.com/ro14nd-talks/docker-container-loading/blob/master/docker-container-loading.pdf

● Serverspecs http://serverspec.org/● Testcontainers https://www.testcontainers.org/

Page 95: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker

Bildnachweise

https://pixabay.com/de/vortrag-vorlesung-schule-2044619/https://pixabay.com/de/spielsteine-figuren-holz-bunt-1743307/https://pixabay.com/de/fragezeichen-birne-denken-idee-2010011/https://pixabay.com/de/hamburg-hafen-kr%C3%A4ne-containerschiff-2103261/