Make Your Data Work for You
Docker in der Praxis - Grundlage
für die künftige Infrastruktur der
IBM Kollaborationsprodukte Christoph Stöttner
• Senior Consultant – panagenda
– IBM Notes / Domino seit 1999
– IBM Connections seit Version 2.5 / 2009
• Schwerpunkte:
– Migrationen
– Administration und Installation
– Performance Analysen
– Monitoring
Christoph Stoettner
2
@stoeps
linkedin.com/in/christophstoettner
www.stoeps.de
christophstoettner
+49 173 8588719
Docker vs VMWare etc
• Virtualisierung erforderte bisher eine Kopie eines Betriebssystems
– Aufwändige Updates
• Mehrere virtuelle Maschinen bedeuten also redundante Treiber, Einstellungen und
Bibliotheken
• Docker container teilen
sich den Linux Kernel
– Effiziente
Ressourcenteilung
3
Docker Container
• Isolierter User Space innerhalb eines laufenden Betriebssystems
• Kernel wird über alle Container geteilt
• Geschichtetes Dateisystem
– Schichten referenzieren sich untereinander
– Nur Unterschiede werden gespeichert
• Container ist eine Instanz eines Images
• Image → build time
• Container → runtime
• Austausch von Containern direkt oder über Registry
4
Beispiel nginx Webserver
• docker pull nginx:latest
– https://hub.docker.com/_/nginx/
5
Beispiel nginx Webserver (2)
• docker run -p 8008:80 -d nginx
6
Beispiel nginx Webserver (3)
• Lokale Daten im Container
– Statische HTML Seite
• Erstellen einer Seite index.html
• docker run -v $(pwd)/html:/usr/share/nginx/html:ro -p 8008:80 -d nginx
7
Neue Container, start & stop
• docker run --name stoeps-nginx -p 8008:80 nginx:latest
• docker run --name stoeps-nginx2 -p 8009:80 -v $(pwd)/html:/usr/share/nginx/html nginx:latest
• docker start stoeps-nginx
• docker start stoeps-gninx2
8
Updates
• Vorteil von docker
– Trennung von Applikation und Daten
– Schnelle Updates mit geringem bis keinem Ausfall
• Checkpoints
– docker checkpoint create [OPTIONS] CONTAINER CHECKPOINT
– Möglichkeit bestimmte Checkpoints zu starten (ähnlich VM Snapshots)
• docker run –v
– Einbinden eines lokalen Ordners in den laufenden Container
– Änderungen im Ordner sind auch im Container sichtbar
• docker build
– Es können auch Ordner in den Container kopiert werden
– Keine Aktualisierung des lokalen Inhalts
9
Daten Container erstellen
• docker volume create stoeps-nginx-data
• docker run --name stoeps-nginx3 -p 8010:80 -v stoeps-nginx-
data:/usr/share/nginx/html nginx:latest
• docker exec -it stoeps-nginx3 bash
– apt-get update
– apt-get install vim-nox
– vim /usr/share/nginx/html/index.html
10
Container löschen und neu anlegen
• docker ps –s
• docker rm stoeps-nginx3
• docker run --name stoeps-nginx4 -p 8011:80 -v stoeps-nginx-data:/usr/share/nginx/html
nginx:latest
• docker start stoeps-nginx4
• docker ps -s
11
Daten Container
• Container sind im Cluster verfügbar
• Network Storage möglich (NFS etc)
• Gleichzeitiger Zugriff von verschiedenen Containern möglich
– Loadbalancing
– Failover
– Datenänderung
• Einfache Updates!
• Bei neuer nginx Version
– Alten Container stoppen
– Neuen mit verwendetem Daten Container hochfahren
– Praktisch keine Downtime
12
IBM Domino Docker Container
• Docker setzt eigentlich auf Microservices
– Durch geringen Ressourcenverbrauch / Overhead Kapselung möglich
– Jeder Service ein Container
• Datenbank
• Web-Server
• Tomcat
• WebSphere Liberty
• …
• Container sehr sicher
– kein Netzwerkzugriff ohne “EXPOSE”
– Container untereinander sehen sich nur bei entsprechender Config
• IBM Domino kein ideales Beispiel
• Aber für Entwickler von praktischem Nutzen
13
NGINX für die Software Pakete verwenden
• Danke an Matteo Bisi & Danielle Vistalli (http://short.stoeps.de/msbiro_dominodocker)
• Und Виталий Шаравара (http://sharavara.com/2016/10/ibm-domino-in-docker-en/)
• docker run --name domino-packages -p 8000:80 -v $(pwd)/software:/usr/share/nginx/html nginx:latest
14
Dockerfile (1)
15
Dockerfile (2)
16
Dockerfile (3)
• EXPOSE und –listen 1352
17
Build Image
18
docker build -t stoeps/ibmdomino:9.0.1FP7 domino901fp7
docker build –t stoeps/ibmdomino:latest domino901fp7
…
Removing intermediate container 3fd6a9a019fc
Successfully built e175d80482c2
Update des Containers
• /local/notesdata im Daten Volume
• Update bzw. Installation eines Fixpacks ändert
– v.a. /opt/ibm
– Aber auch
• /local/notesdata/domino/*
• /local/notesdata/*.ntf
• Diese Updates werden im Volume natürlich nicht übernommen
– Skript um diese Updates zu deployen notwendig
– Aufwändiger, aber möglich
19
Start des Containers
• entrypoint.sh
– Startet das Server Setup da keine server.id vorhanden ist
– remotesetup, remotesetup.cmd, cfgdomserver.jar, jhall.jar vom Domino Server kopieren
20
Verbesserungen
• Server Setup kann auch geskriptet werden
• Antwortdatei für remotesetup notwendig
• Schnelle Variante Testserver zu erstellen
– Entwickler
– LDAP
– Verse on Premises?
21
What’s coming next…The future is
pink
Continuously
updated
Customizable
All about flexibility
and choice
Easily expandable
Weitere Anwendungsmöglichkeiten
• Logfile Analyse mit ELK
– Elasticsearch
– Logstash
– Kibana
• http://www.stoeps.de/using-docker-to-analyze-websphere-application-server-systemout-
log/
23
ELK Stack und SystemOut.log
24
Headquarters, Austria:
panagenda GmbH (Ltd.)
Schreyvogelgasse 3/10
AT 1010 Vienna
Phone: +43 1 89 012 89
Fax: +43 1 89 012 89-15
E-Mail: [email protected]
Headquarters, Germany:
panagenda GmbH (Ltd.)
Lahnstraße 17
DE 64646 Heppenheim
Phone: +49 6252 67 939-00
Fax: +49 6252 67 939-16
E-Mail: [email protected]
USA:
panagenda Inc.
60 State Street, Suite 700
MA 02109 Boston
Phone: +1 617 855 5961
Fax: +1 617 488 2292
E-Mail: [email protected]
Germany:
panagenda Consulting GmbH (Ltd.)
Donnersbergstraße 1
DE 64646 Heppenheim
Phone: +49 6252 67 939-86
Fax: +49 6252 67 939-16
E-Mail: [email protected]
The Netherlands:
Trust Factory B.V.
11th Floor,
Koningin Julianaplein 10
NL 2595 AA The Hague
Phone: +31 70 80 801 96
E-Mail: [email protected]
© 2007-2015 panagendaMake Your Data Work for You
Top Related