docker in der praxis - grundlage für die künftige infrastruktur der ibm kollaborationsprodukte

25
Make Your Data Work for You Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte Christoph Stöttner

Upload: christoph-stoettner

Post on 28-Jan-2018

58 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

Make Your Data Work for You

Docker in der Praxis - Grundlage

für die künftige Infrastruktur der

IBM Kollaborationsprodukte Christoph Stöttner

Page 2: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

• 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

[email protected]

Page 3: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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

Page 4: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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

Page 5: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

Beispiel nginx Webserver

• docker pull nginx:latest

– https://hub.docker.com/_/nginx/

5

Page 6: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

Beispiel nginx Webserver (2)

• docker run -p 8008:80 -d nginx

6

Page 7: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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

Page 8: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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

Page 9: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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

Page 10: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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

Page 11: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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

Page 12: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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

Page 13: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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

Page 14: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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

Page 15: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

Dockerfile (1)

15

Page 16: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

Dockerfile (2)

16

Page 17: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

Dockerfile (3)

• EXPOSE und –listen 1352

17

Page 18: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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

Page 19: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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

Page 20: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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

Page 21: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

Verbesserungen

• Server Setup kann auch geskriptet werden

• Antwortdatei für remotesetup notwendig

• Schnelle Variante Testserver zu erstellen

– Entwickler

– LDAP

– Verse on Premises?

21

Page 22: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

What’s coming next…The future is

pink

Continuously

updated

Customizable

All about flexibility

and choice

Easily expandable

Page 23: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

Weitere Anwendungsmöglichkeiten

• Logfile Analyse mit ELK

– Elasticsearch

– Logstash

– Kibana

• http://www.stoeps.de/using-docker-to-analyze-websphere-application-server-systemout-

log/

23

Page 24: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

ELK Stack und SystemOut.log

24

Page 25: Docker in der Praxis - Grundlage für die künftige Infrastruktur der IBM Kollaborationsprodukte

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