Docker In Practise Best Practises Dipl. - Inf. Steffen Bleul

Slides:



Advertisements
Ähnliche Präsentationen
Ubuntu Enterprise Cloud (UEC) Thorben Lindhauer,
Advertisements

<<Presentation Title>>
Systemverwaltung wie es Ihnen gefällt.
Web 2.0 und RIAs - Adobe Air1 Seminar: Web 2.0 und Rich Internet Applications Wintersemester 2007/2008 Daniel Thaidigsmann
GIT und Redmine Übung.
Michael Haverbeck System Engineer
Microsoft Windows Azure
08. September 2010Entwicklungsstrategien in Liferay 1 Christian Krause, URZ FSU Jena, IDM-Arbeitsgruppe.
MDM Systeme im Test Udo Bredemeier
Continuous Integration mit Jenkins
Vorstellung der Referenzprojekte aus den Bereichen:
Windows Server 2008 Kurzüberblick Dr. Richtmann+Eder AG Olschewskibogen München.
Technisches Update Veeam Backup & Replication Version 7 Cloud Edition
Service Computing   Prof. Dr. Ramin Yahyapour IT & Medien Centrum 19. Januar 2010.
Developer Day Office APPs entwicklen Simon Amrein Trivadis AG Die ersten Schritte in eine neue Office-Welt.
Modelle zur ad hoc Bedarfsbeschaffung mit großer Flexibilität, aber auch ggf. Komplexität. Select Select Plus Modelle zur Standardisierung und einfachen,
Claudia Fischer Licensing Marketing Manager Jochen Katz Product Manager – Windows Server Anna Fetzer Product Manager – System Center.
| Basel Wege in die Cloud: Office 365 Dennis Hobmaier, Technical Solutions
Präsentation von Lukas Sulzer
Windows Server 2012 R2 Upgrade-Potential
UHZ / 2Roberto Mazzoni - Informatikdienste Geschichte MySql-Service im Portfolio der Informatikdienste seit 2000 Ablösung der Filemaker.
© Zühlke 2012 Oliver Brack Romano Roth iOS, Android, WP7: Alle nativ auf einen Streich Fragenkatalog zu umgesetzten Apps 27. September 2012 Folie 1.
Romano Roth & Oliver Brack Zühlke Engineering AG.
Zero Administration Kit für Microsoft® Windows® Jörg Kramer University Support Center.
Marco Behnke Git free & open source, distributed version control system Git.
Real World Windows Azure Die Cloud richtig nutzen.
Kaseya Virtual System Administrator Produkt Update 7.0 Rocco van der Zwet Copyright ©2014 Kaseya 1.
Thomas Schissler – artiso solutions GmbH Artur Speth – Microsoft Deutschland GmbH.
Software Architektur für on-premise und die Cloud Lösungen
1 Open Security – © AIT Austrian Institute of Technology GmbH© IKT Linz Infrastruktur GmbH © X-Net Services GmbH© Linzer Institut für.
System Center 2012 Automatisierung von IT-Prozessen Sinja Herbertz Education Support Centre Deutschland.
Aufbau eines Betriebssystems
ROS – Robot Operating System
Hadoop-as-a-Service (HDaaS)
Lync and Learn mit Manfred Helber Thema heute: Überblick der Leistungserweiterungen von Windows Server 2016 Start: 9.30 Uhr 30 Minuten Vortrag & Demo 30.
DevOps in der Praxis Umfrage Q4/2015
IOS Entwicklung von 0 auf 100 Von Philipp Koulen Lehr- und Forschungsgebiet Ingenieurhydrologie.
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
Technologietag Baugruppentest Wege der Standardisierung im Funktions- und EOL-Test Markus Koetterl National Instruments Germany GmbH.
Forms 9i - New FeaturesSeite 1 Forms 9i New Features Gerd Volberg OPITZ CONSULTING GmbH.
Das Software Defined Datacenter Rüdiger Melzer Senior Systems Engineer, Alliance Management VMware
Cubido business solutions gmbh Haidfeldstrasse 33 A-4060 Leonding di(fh) Wolfgang Straßer ° Rundumblick.
VMware vCloud Automation Center Rüdiger Melzer Senior Systems Engineer, Alliance Management VMware
45. COURSE-Tagung Juni 2016 im Schlosshotel Bad Wilhelmshöhe in Kassel Ferdinand Prahst – efpe Von neuen Features des DB2 bis hin zur DB2 in.
Software-Delivery auf Knopfdruck IBM Cloud & DevOps.
Redetext für 15 Jahre Dig it! ???. Anlässlich zu unserem 15 jährigen Bestehen der dig it! GmbH möchte ich Euch begrüßen... Zu unserem 15 jährigen Jubiläum.
Das SVN Eclipse Plugin. Wofür ist SVN gedacht? Nutzung von SVN mit Eclipse Perspektive einrichten Repository einbinden Mit dem Repository arbeiten Konflikt.
- Norddeutsche Edition -
Microsoft Azure Die Cloud-Plattform für moderne Unternehmen ModernBiz 1 Kleine und mittlere Unternehmen (KMU) wünschen sich die Möglichkeit und Flexibilität,
Mehr als ein Modewort? Exzerpt nach Tim O‘Reilly, Michael Karrer
Kaseya System Backup and Recovery
Aufgabe 1: Begriffswelt
Robotron – Titel der Präsentation Olaf Nowatzki Dresden,
WS2016: Container von A bis Z
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Google App Engine - Technische Stärken und Schwächen
Azure Backup, Azure Backup Server und Azure Site Recovery
Erweiterte Azure Dienste
Lync and Learn mit Manfred Helber Thema heute:
Dell EMC Windows Server 2016 ROK
Continuous Integration
Continuous Integration mit TeamCity
Virtualisierung von Web-Applikationen mit Docker
Gabriele Hooffacker Fakultät Medien
Digitale Transformation
Du kommst hier nicht rein!
Devops David Jaroš
IBM Software Cincom Systems Erwartete 20-prozentige Verkürzung der Markteinführungszeit mit dem IBM WebSphere Liberty-Profil Die Anforderung: Das für.
SOFTWARE- UND WEB-LÖSUNGEN
DATA INTELLIGENCE REPORTING © Wolfgang Kress BI Consultant.
 Präsentation transkript:

Docker In Practise Best Practises Dipl. - Inf. Steffen Bleul IT-Consultant Anwendungsentwicklung sbl@itbleul.de

Über den Vortragenden Dipl. – Inf. Steffen Bleul 4 Jahre Wissenschaftlicher Mitarbeiter Universität Kassel -> Web Services and Semantic Web 6 Jahre Softwareentwicklung München Seit 2015 Freelancer IT-Consulting Anwendungsentwicklung Seit April 2015 Blacklabelops Docker Images auf Github

Eigene Docker Erfahrung 2 Jahre Bau von Community Images bei Github und Dockerhub 28 Github Repositories 36 Dockerhub Repositories 82 gewartete Images bei Dockerhub Vollautomatisiertes Build und Deployment Daily Build erzeugt ca. 1,5 TB/Monat Transfervolumen Zwischen 2 tausend, 1 Million Docker Pulls

Inhalt Was bringt Docker und Wo wird es eingesetzt? Praxisbeispiel „Wordpress“ 3 Level System für Docker Infrastruktur

Warum Docker? ROI! Weniger Server: $1k/Monat pro Server Ersparnis Üblich ist eine Konsolidierung 30% an Servern zwischen development und testing: Ersparnis: 6 Server @ $1k/Monat= $6k/Monat= $72k/Jahr Weniger VMs: $340$/Monat weniger Lizenz- und Managementkosten Üblich ist eine Konsolidierung von 50% an VMs Ersparnis: 10 Server @ 340$/Monat = $3.4k/Monat = $40.8k/Jahr Quelle: https://boxboat.com/2016/10/26/simple-roi-formula-docker-datacenter/

Docker Umfrage 2016 47% der Befragten sind im der Softwareentwicklung beschäftigt. 59% wenden Docker in der Entwicklung an 51% sogar in der Produktion Verbesserung der MTTR (Mean Time To Respond) 37% geben an „keine Veränderung“ 27% geben an 10%-25% schneller reagieren zu können 23% geben an 25%-50% schneller reagieren zu können Quelle: https://www.docker.com/survey-2016

Docker! Was ist neu? Docker 1.13 ist raus! Neues seit Docker 1.10 Deployment vom docker-compose Orchestrierung (1.12 Beta) App-Armor Configs für Container Beta: Infrakit „Self-Healing Infrastructure“ Neues seit Docker 1.10 Refactoring: runc, containerd, Docker Engine OCI: https://www.opencontainers.org/

World of Docker RHEL Open Shift DNS Server Docker Data Center Docker Compose Consul Kubernetes Kattle Flannel Elk/Fluentd Flocker Docker Cloud Service Registry Docker Mesos CoreOS Devicemapper Rancher Docker-Swarm Vagrant Aufs Container Registry Pod Manifest Vault Prometheus Alpine

Docker und Wordpress

Enterprise Docker Level 1 Docker Engine: Docker Toolbox (Windows Pre Windows 10) Windows Native Mac Native Linux Native Dockerisierung der Applikation Applikation Dockerisierbar? Welches Betriebssystem Host? Welches Betriebssystem Images? Umgang mit Immutable Images Reproduzierbarkeit des Builds Update and Upgrade der Applikation? Dockerfiles: Versionskontrolle Betriebssystem Installationsdateien Betriebssystem: Windows Mac Linux

Dockerisierung Software sollte keine Installationsroutine, oder automatisierbare Installationsroutine haben. Persistieren des Zustand: Die Applikation sollte in einem Arbeitsverzeichnis ungleich dem Installationsverzeichnis arbeiten. Abhängigkeiten der Applikation? Möglichst keine Abhängigkeiten zu System-Demons Keine Abhängigkeiten zu lokalen Prozessen Die Applikation sollte als blockender Prozess laufen können. Die perfekte Docker Applikation aktualisiert sich selbst. Logs müssen auf Systemout gelenkt werden können. Keine Logfiles in Images

Docker Images Best Practise Dockerfiles Container sollte nicht mit Root laufen. Container sudo Ersatz gosu: https://github.com/tianon/gosu Alle notwendigen externen Ports sollten deklariert sein. Volumes sollten explizit deklariert sein. Entrypoints: Mit tini ausgeführt: https://github.com/krallin/tini Mehrere Modi: Applikation, Bash und Parametrisierung Vererbungshierarchie und Layering der Images

Docker Images Wahl der Hierarchie der Images Layering Wiederverwendung von Base Images: Betriebssysteme: CentOS, Ubuntu, Alpine Runtime Umgebungen: Java, Python, Perl Tools: Maven, Gradle Ziel: Einheitliche Images mit wenig Wartungsaufwand Layering Viele Layer haben Performanzauswirkung. Layer Squashing fester Bestandteil von Docker 1.13

Layering und Base Images Fragestellung: Wann macht Imagevererbung Sinn? Es gibt mehrere Ausprägungen des Image Ein Image braucht eine dedizierte Testsuite Alternative: Ausprägungen als Tags: blacklabelops/jobber:aws CI-Build Jenkins Circle-CI Gitlab Registry Gitlab Dockerhub Artifactory

Manage Images Pro Image ein Repository unter Versionskontrolle Updates auf Development Branches als Commits verwalten. Releases als Merges auf Release Branches verwalten. Neue Images als Branches verwalten. Minimierung des Wartungsaufwandes durch Minimierung von Release Branches! Images werden in einem Image Registry verwaltet: Alle Images sind zu taggen! Kein „latest“ verwenden. Für alle Branches ein Tag zur Verfügung stellen

Community Images Dockerisierung kann beliebig weit getrieben werden! Beispiel: $ docker run -d \ -p 80:80 \ --name nginx \ -e "SERVER1REVERSE_PROXY_LOCATION1=/" \ -e "SERVER1REVERSE_PROXY_PASS1=http://www.heise.de" \ -e "SERVER1REVERSE_PROXY_LOCATION2=/alternate" \ -e "SERVER1REVERSE_PROXY_PASS2=http://www.alternate.de" \ blacklabelops/nginx

Best Practise Quellen Best practices for writing Dockerfiles: https://docs.docker.com/engine/userguide/eng- image/dockerfile_best-practices/ Container Best Practises: http://docs.projectatomic.io/container-best-practices/

Enterprise Docker Level 2 Einrichten des Hosts Wahl des Anbieters Wahl des Betriebssystems Security Docker Kompositionsengine Logging Backup

Wahl des Anbieters Dedicated Servers Cloud Anbieter Barebone ohne Virtualisierungslayer als Applikationsstack (http://www.projectatomic.io/) Cloud Anbieter VMs: AWS, G-Cloud, Azure, Bluemix, Digital Ocean, Linode, etc. Container-native: AWS EC2-CS, Google GCE, Azure-CS Container Management Plattform Docker-Cloud (https://cloud.docker.com)

Welcher Anbieter passt? Container Management Plattform oder Container Service ist passend für „nicht-Container-native-OS“ . Beispiele: CentOS, Ubuntu, Debian etc. Weil: Bietet Management UI, Einblick in Logs, „SSH-Ersatz“, Deployment von Kompositionen Container-native-OS: Beispiele: CoreOS, Rancher Im Bauch: Management UI, Kompositionsengine Multi-Host-Networking: Docker-Swarm, Mesos, Kubernetes

Security Den Host sicher machen: Center for Internet Security (CIS) Benchmarks für alle größeren Distributionen in den Leveln 1-2 Den Docker Demon absichern CIS Docker 1.13 Benchmark: https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_B enchmark_v1.0.0.pdf Benchmark als Docker Container: https://dockerbench.com Docker Images Scannen: CoreOS Clair https://github.com/coreos/clair Docker Demon Authorisierung: Twistlock https://github.com/twistlock/authz

Docker Container Keine einzelnen Container deployen, sondern Orchestrierung von Kompositionen Docker-compose, stackfiles, pod-manifests, cattle Keine Logs auf dem Server: Docker Logging Plugin auf Systeme wie fluentd, elk-stack und Cloud Logs wie https://www.loggly.com/ https://logentries.com/ https://papertrailapp.com/ Backups? Work-In-Progress. Cloud Lösung: Fli https://github.com/ClusterHQ/fli-docker Container: Volumerize https://github.com/blacklabelops/volumerize

Enterprise Docker Level 3 Multi-Host-Networking Docker-Swarm Mesos Kubernetes „Ephemeral VMs“ Infrastruktur Load Balancing Service Registry Monitoring

Ephemeral VM VM wird nicht geupdatet, sondern durch eine neue VM ersetzt. Zentrales firmenweites VM-Images CI-Build mit Hashicorp Packer: https://www.packer.io/intro/ Kickstart Files Provisioning: Shell, Puppet, Chef Multiple VM-Technologien: VMWare, Virtualbox, AWS-AMI Management und Rollout der Infrastruktur: Hashicorp Terraform: https://www.terraform.io/

Loadbalancing/Service Registry/Monitoring Nginx: https://www.nginx.com/blog/service-discovery-with-nginx-plus- and-consul/ Traefik: https://traefik.io/ Service Registry Etcd, Consul, SkyDNS Sidekick Container Registrator: https://github.com/gliderlabs/registrator Monitoring: Cadvisor: https://github.com/google/cadvisor Prometheus: https://prometheus.io/

Wo geht die Reise hin? Viele „Aspekte“ sind noch Open Source Projekte im „Alpha Status“: Beispiel Rancher Insbesondere für Volume Management und Host/Image User-Mapping sind noch Lösungen zu erwarten Produktlösungen wie Red Hats „Open Shift“ werden noch vermehrt kommen.

Vielen Dank für Ihre Aufmerksamkeit! Wie geht es weiter? Links zu den Projekten und Produkten sind den Folien zu entnehmen! Meine Open-Source Projekte auf Github: https://github.com/blacklabelops