69
Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein? Sandra Parsick [email protected] @SandraParsick

Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Embed Size (px)

Citation preview

Page 1: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Java Forum Stuttgart, 06.07.17

Muss es immer Docker sein?

Sandra [email protected]

@SandraParsick

Page 2: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

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: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Agenda

1.Motivation

2.Container vs. Provisionierungswerkzeuge

3.IT Automation, die zu einem passt

4.Fazit

Page 4: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Motivation

Page 5: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Warum Ansible, wenn Docker auch

diese Probleme löst?

Aber dafür haben wir doch Docker

Page 6: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Lass unsere Deployment mit Ansible automatisieren

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

Zu aufwendig zwischendurch

Ansible einzuführen

Page 7: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Wieso wird Ansible mit Docker

gleich gesetzt?

Ist der UnterschiedContainer und

Provisionierungswerkzeug nicht klar?

Page 8: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Container vs. Provisionierungswerkzeuge

Page 9: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

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 10: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Container Є { } ?

Page 11: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine
Page 12: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

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 13: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

„Infrastructure As Code“

Page 14: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Ansible

Page 15: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

IT Automation, die zu einem passt

Page 16: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

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 17: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Ausgangslage

Page 18: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Zielinfrastruktur

Page 19: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Erste ReiseetappeAutomatisierung der bestehenden

Infrastruktur mit Ansible

Page 20: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Ausgangslage

Page 21: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Ansible

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

Page 22: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Funktionsweise

Page 23: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Exkurs: YAML

YAML JSON

Page 24: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Setup Application Server Playbook

Page 25: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine
Page 26: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Inventories

Production Test

Page 27: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Setup Application Server Playbook

Page 28: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Java Webapplikation Deployment

Page 29: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Deploy Application Playbook

Page 30: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Deploy Application Playbook

Page 31: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Ansible Infrastruktur

Page 32: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Zweite ReiserouteWiederverwendung der Ansible

Playbooks für die Docker-Image-Erstellung

Page 33: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

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 34: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Docker Lifecycle

Page 35: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Reminder - Zielinfrastruktur

Page 36: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Was brauchen wir?

● Zwei Dockerfiles– Mysql.df

– Tomcat.df

● WAR Datei wird über Volume eingebunden

Page 37: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Dockerfile ohne Ansible (tomcat.df)

Page 38: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Dockerfile mit Ansible (tomcat.df)

Page 39: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Dockerfile mit Ansible (mysql.df)

Page 40: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Docker Lifecyle Demo

Page 41: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Es geht auch kürzer – Docker Compose

Page 42: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Docker Compose Demo

Page 43: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

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 44: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Alternativen

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

Loading“ von Roland Huß

Page 45: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Dritte ReiserouteAutomatisierung des Docker-Image-

Lifecycles mit Ansible

Page 46: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Docker Lifecycle

Page 47: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Docker Registry Lifecycle Demo

Page 48: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Docker Registry Lifecyle mit Ansible

Page 49: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Docker Registry Lifecycle mit Ansible Demo

Page 50: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Docker Registry Alternativen

Page 51: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Letzte ReiserouteVerteilung der Docker-Container auf

die Server mit Ansible

Page 52: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Reminder - Zielinfrastruktur

Page 53: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Docker Lifecycle

Page 54: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

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 55: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Setup-dockerd.yml

Page 56: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Setup-docker-registry.yml

Page 57: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Build-and-push-images.yml

Page 58: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Deploy-docker-container.yml

Page 59: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Alternative Ansible mit Docker Compose Syntax

Docker-compose muss auf dem Zielmaschine installiert werden

Page 60: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Demo

Page 61: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Fazit

Page 62: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Fazit

● 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 63: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Weitere Informationen

http://docs.ansible.com/

Page 64: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Weitere Informationen

Page 65: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Weitere Informationen

http://bit.ly/2cZ0IrZ

Page 66: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

Weitere Informationen

https://docs.docker.com/

Page 68: Java Forum Stuttgart, 06.07.17 Muss es immer Docker sein ... · Dockerfile mit Ansible - Pros und Cons Vorhandene Skripte können wiederverwendet werden Reicht aus um generell seine

@[email protected]

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

Fragen?