SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Klein, aber oho – Continuous Delivery
von Micro Applications mit Jenkins,
Docker & Kubernetes bei Apollo
ContainerConf 2016 15. November 2016
Ulrich Häberlein
Teamleitung Backend-Management
Apollo-Optik Holding GmbH & Co KG
Michael Steinfurth
Linux/Unix Consultant & Trainer
B1 Systems GmbH
info@b1-systems.de
B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development
Vorstellung B1 Systems
gegründet 2004
primär Linux/Open Source-Themen
national & international tätig
fast 100 Mitarbeiter
unabhängig von Soft- und Hardware-Herstellern
Leistungsangebot:
Beratung & Consulting
Support
Entwicklung
Training
Betrieb
Lösungen
dezentrale Strukturen
B1 Systems GmbH Continuous Delivery @ Apollo 2/31
Schwerpunkte
B1 Systems GmbH Continuous Delivery @ Apollo 3/31
Vorstellung Apollo
Deutschlands filialstärkster Optiker
gegründet 1972
über 800 Filialen in Deutschland
über 100 Filialen in Österreich
mehr als 3.600 Angestellte
seit 1998 Teil der GrandVision-Gruppe
einer der größten Optikkonzerne der Welt
über 6000 Filialen in 44 Ländern
mehr als 27.000 Angestellte
B1 Systems GmbH Continuous Delivery @ Apollo 4/31
Business Case
B1 Systems GmbH Continuous Delivery @ Apollo 5/31
Business Case
B1 Systems GmbH Continuous Delivery @ Apollo 6/31
Ausgangssituation
Business-Plattform mit Datenbanken
900 Filialen
Verarbeitung von Bestellungen, Lagerprozessen und
Stapelverarbeitung aus den Schnittstellen der POS Systeme
zentraler SAP Betrieb der GrandVision
B1 Systems GmbH Continuous Delivery @ Apollo 7/31
Warum Middleware in Microapplication I
agile Entwicklung
schnelle, änderbare Geschäftsfälle
einfach skalier- und erweiterbar
kontinuierliche, automatische Updates
standardisiertes Testmanagement
B1 Systems GmbH Continuous Delivery @ Apollo 8/31
Warum Middleware in Microapplication II
Sicherstellung der Deployment-Qualität
hohe Verfügbarkeit
betriebssystemunabhängig
Configuration as Code möglich
B1 Systems GmbH Continuous Delivery @ Apollo 9/31
Workflow
B1 Systems GmbH Continuous Delivery @ Apollo 10/31
Workflow
B1 Systems GmbH Continuous Delivery @ Apollo 11/31
Jenkinsübernahme
1 Java-Anwendungen werden entwickelt und landen im SVN
2 Jenkins bekommt SVN Änderungen mit, übernimmt Bauprozess
3 maven → Bauen mit Abhängigkeiten und Test
4 Übergabe an Microapp-Job
B1 Systems GmbH Continuous Delivery @ Apollo 12/31
Jenkins-MicroappContainer bauen
1 Applikation verpacken in generischen Container
2 Konfigurationsdateien befüllen
3 Docker Image bauen
4 Metainformationen in Dockerfile (Service ↔ Ports)
5 Verschieben in die Registry
B1 Systems GmbH Continuous Delivery @ Apollo 13/31
Jenkins Deployment
1 Jobübergabe
2 Image herunterladen aus Registry (Tag)
3 Erstellen der Metainformationen
4 Anhand von Informationen aus Deployment-NFS und Dockerfile
5 Anlegen Struktur im NFS
6 Anpassen der Softwarezustandsdatei (Konfigurations-NFS)
7 Weiter mit Deployment
B1 Systems GmbH Continuous Delivery @ Apollo 14/31
Deployment Entwicklungsstufe
Dockerfile Labels + Konfigurationsinformationen = YAML
z. B. TAG und Häufigkeit konfiguriert in Konfiguration
direktes Deployment in Kubernetes Platform pro Container vom
Jenkins-Slave
B1 Systems GmbH Continuous Delivery @ Apollo 15/31
Deployment YAML
Beispiel deployment.yaml Beispiel gekürzt
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: testmicroapplication-deployment
spec:
replicas: 1
strategy:
type: RollingUpdate
template:
spec:
restartPolicy: Always
containers:
- name: testmicroapplication
image: registry/apps/testmicroapplication:B123
env:
B1 Systems GmbH Continuous Delivery @ Apollo 16/31
Test Staging
Softwarezustandsdatei in Entwicklung anhand von config-Datei
im SVN
Container Name & Version, Min & Max Häufigkeit,
Downtime-Wert
Jenkins-Job kopiert Zustanddatei in Teststufenbereich im SVN
→ automatisches Erkennen und Herstellen aller Pods
(Container)
Beispiel Zustandsdatei
testmicroapplication:B123:1:1:1
integration-sample:B42:2:3:1
B1 Systems GmbH Continuous Delivery @ Apollo 17/31
Temporäre Besonderheit
Anwendungen werden direkt nach Test und Entwicklung
ausgerollt
→ schnellerer Entwicklungsfortschritt, da gleichzeitig
Weiterentwicklung und Fehlerbehebung aus Tests
späterer Normalzustand: Herstellung eines Gesamtzustands der
Container
B1 Systems GmbH Continuous Delivery @ Apollo 18/31
Infrastruktur
B1 Systems GmbH Continuous Delivery @ Apollo 19/31
Hostsysteme
VMware virtuelle Maschinen mit SLES 12
3 VLANs für jede Stageing Area jeweils /16
+1 VLAN Cluster Service IP-Adressbereich
pro Stageing Area geteiltes NFS-Volume
SUSE Manager Deployment
Systeme einheitlich → Konfiguration eines neuen Systems in
fünf Minuten
B1 Systems GmbH Continuous Delivery @ Apollo 20/31
Kubernetes
flanneld für virtuelles Netz
kubernetes Pakete (Master & Worker)
Master- und Worker-Knoten einheitlich + bessere Verfügbarkeit
Docker als Backend
infrastrukturelle Abhängigkeiten ausgelagert (kein
Henne-Ei-Problem)
B1 Systems GmbH Continuous Delivery @ Apollo 21/31
B1 Systems GmbH Continuous Delivery @ Apollo 22/31
Infrastrukturkomponenten
Infrastrukturkomponenten auf ausgelagerten
Kubernetes-Plattformen
Registry, Jenkins, Maven durch Container höhere Verfügbarkeit
etcd mit virtueller IP-Adresse und keepalived hochverfügbar
Reverse Proxy mit dynamischer Konfiguration aus
Kubernetes-Services für vhosts
alle Komponenten mit Jenkins bau- und deploybar
B1 Systems GmbH Continuous Delivery @ Apollo 23/31
Rolling Update & Lastverteilung & Skalierung
Rolling Updates Replicasets in Deployments
→ keine Downtimes der Applikationen
Verteilung der Netzwerklast durch Kubernetes-Proxy
→ Iptables-Regeln verteilen unabhängig von eingehender
IP-Adresse
Horizontal Pod Autoscaler
→ konfigurierbare Skalierung bei Leistungsengpässen
B1 Systems GmbH Continuous Delivery @ Apollo 24/31
B1 Systems GmbH Continuous Delivery @ Apollo 25/31
Logging
Logging vorbereitet auf ELK-Stack
Stack selber in Kubernetes mit verteiltem Speicher
fluentd zur Erfassung der Containerlogs
Applikationen schreiben selbständig Logdateien
Ausbau der Applikationen zu ELK-Anbindung
B1 Systems GmbH Continuous Delivery @ Apollo 26/31
Monitoring
Nagios für die grundlegende Systemüberwachung
Speicher & Basisdienste
Grafana mit InfluxDB für die Performancegraphen von Clustern
und Containern
B1 Systems GmbH Continuous Delivery @ Apollo 27/31
Erfahrungen & Lessons Learned
B1 Systems GmbH Continuous Delivery @ Apollo 28/31
Erfahrungen
Infrastruktur schneller als erwartet
Faktor 20 schneller zur SAP-Infrastruktur
Infrastruktur selbst zur Entlastung durch dynamische Jenkins
Slaves genutzt
Umgebung sehr stabil und quasi selbstheilend
B1 Systems GmbH Continuous Delivery @ Apollo 29/31
Lessons Learned
etcd hochverfügbar machen ohne Henne-Ei-Problem und weniger
als drei Container
rabbitmq Message Broker im Cluster anfällig für
Aktualisierungen (Erlang Version)
B1 Systems GmbH Continuous Delivery @ Apollo 30/31
Vielen Dank für Ihre Aufmerksamkeit!
Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de
oder +49 (0)8457 - 931096
B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development

Weitere ähnliche Inhalte

Andere mochten auch

Rebels, Tories & Redcoats (1)
Rebels, Tories & Redcoats (1)Rebels, Tories & Redcoats (1)
Rebels, Tories & Redcoats (1)Amy Durbin
 
Adp crm guidance
Adp crm guidanceAdp crm guidance
Adp crm guidanceFitira
 
The Poker Entrepreneurship: Speaking @ JFDI.Asia
The Poker Entrepreneurship: Speaking @ JFDI.AsiaThe Poker Entrepreneurship: Speaking @ JFDI.Asia
The Poker Entrepreneurship: Speaking @ JFDI.Asiasaumilnanavati
 
Evaluation question 2
Evaluation question 2Evaluation question 2
Evaluation question 2moppettharry
 
Images for the Clouds with KIWI & OBS
Images for the Clouds with KIWI & OBSImages for the Clouds with KIWI & OBS
Images for the Clouds with KIWI & OBSB1 Systems GmbH
 
Social game의 가까운 미래
Social game의 가까운 미래Social game의 가까운 미래
Social game의 가까운 미래gndolf
 
Vision Real Estate Presentation.pptm
Vision Real Estate Presentation.pptmVision Real Estate Presentation.pptm
Vision Real Estate Presentation.pptmvisionre
 
Facebook-Zynga
Facebook-ZyngaFacebook-Zynga
Facebook-Zyngagndolf
 
Documentación registro de competencias en siebel (2)
Documentación registro de competencias en siebel (2)Documentación registro de competencias en siebel (2)
Documentación registro de competencias en siebel (2)Fitira
 
Steps for front page
Steps for front pageSteps for front page
Steps for front pageLiam Wylie
 
Ontwikkelingen in het internationaal arbeidsrecht
Ontwikkelingen in het internationaal arbeidsrechtOntwikkelingen in het internationaal arbeidsrecht
Ontwikkelingen in het internationaal arbeidsrechtVeerle Van Den Eeckhout
 
презентация1
презентация1презентация1
презентация1Danil Kozlov
 
Cloud Computing mit OpenStack
Cloud Computing mit OpenStackCloud Computing mit OpenStack
Cloud Computing mit OpenStackB1 Systems GmbH
 
Digital Audio/Podcast Assignment
Digital Audio/Podcast AssignmentDigital Audio/Podcast Assignment
Digital Audio/Podcast AssignmentJordan Kelly
 
Data data every where!! Thomas O'Grady
Data data every where!! Thomas O'GradyData data every where!! Thomas O'Grady
Data data every where!! Thomas O'Gradytomo006
 
Proyecto fredy-jaramillo extenzo
Proyecto fredy-jaramillo extenzoProyecto fredy-jaramillo extenzo
Proyecto fredy-jaramillo extenzoFreddy Jaramillo
 
P m01 inside_selling
P m01 inside_sellingP m01 inside_selling
P m01 inside_sellingFitira
 
Common Fisheries Policy-Short Version
Common Fisheries Policy-Short VersionCommon Fisheries Policy-Short Version
Common Fisheries Policy-Short VersionAmy Durbin
 
Account discovery
Account discoveryAccount discovery
Account discoveryFitira
 

Andere mochten auch (20)

Rebels, Tories & Redcoats (1)
Rebels, Tories & Redcoats (1)Rebels, Tories & Redcoats (1)
Rebels, Tories & Redcoats (1)
 
Adp crm guidance
Adp crm guidanceAdp crm guidance
Adp crm guidance
 
The Poker Entrepreneurship: Speaking @ JFDI.Asia
The Poker Entrepreneurship: Speaking @ JFDI.AsiaThe Poker Entrepreneurship: Speaking @ JFDI.Asia
The Poker Entrepreneurship: Speaking @ JFDI.Asia
 
Evaluation question 2
Evaluation question 2Evaluation question 2
Evaluation question 2
 
Images for the Clouds with KIWI & OBS
Images for the Clouds with KIWI & OBSImages for the Clouds with KIWI & OBS
Images for the Clouds with KIWI & OBS
 
Social game의 가까운 미래
Social game의 가까운 미래Social game의 가까운 미래
Social game의 가까운 미래
 
Vision Real Estate Presentation.pptm
Vision Real Estate Presentation.pptmVision Real Estate Presentation.pptm
Vision Real Estate Presentation.pptm
 
Facebook-Zynga
Facebook-ZyngaFacebook-Zynga
Facebook-Zynga
 
Documentación registro de competencias en siebel (2)
Documentación registro de competencias en siebel (2)Documentación registro de competencias en siebel (2)
Documentación registro de competencias en siebel (2)
 
Steps for front page
Steps for front pageSteps for front page
Steps for front page
 
Prezentacja1
Prezentacja1Prezentacja1
Prezentacja1
 
Ontwikkelingen in het internationaal arbeidsrecht
Ontwikkelingen in het internationaal arbeidsrechtOntwikkelingen in het internationaal arbeidsrecht
Ontwikkelingen in het internationaal arbeidsrecht
 
презентация1
презентация1презентация1
презентация1
 
Cloud Computing mit OpenStack
Cloud Computing mit OpenStackCloud Computing mit OpenStack
Cloud Computing mit OpenStack
 
Digital Audio/Podcast Assignment
Digital Audio/Podcast AssignmentDigital Audio/Podcast Assignment
Digital Audio/Podcast Assignment
 
Data data every where!! Thomas O'Grady
Data data every where!! Thomas O'GradyData data every where!! Thomas O'Grady
Data data every where!! Thomas O'Grady
 
Proyecto fredy-jaramillo extenzo
Proyecto fredy-jaramillo extenzoProyecto fredy-jaramillo extenzo
Proyecto fredy-jaramillo extenzo
 
P m01 inside_selling
P m01 inside_sellingP m01 inside_selling
P m01 inside_selling
 
Common Fisheries Policy-Short Version
Common Fisheries Policy-Short VersionCommon Fisheries Policy-Short Version
Common Fisheries Policy-Short Version
 
Account discovery
Account discoveryAccount discovery
Account discovery
 

Ähnlich wie Klein, aber oho - Continuous Delivery von Micro Applications mit Jenkins, Docker & Kubernetes bei Apollo

B1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AGB1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AGB1 Systems GmbH
 
Ubuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingUbuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingB1 Systems GmbH
 
Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat B1 Systems GmbH
 
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenOpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenB1 Systems GmbH
 
Sichere und unabhängige Datenverwaltung mit ownCloud
Sichere und unabhängige Datenverwaltung mit ownCloud Sichere und unabhängige Datenverwaltung mit ownCloud
Sichere und unabhängige Datenverwaltung mit ownCloud B1 Systems GmbH
 
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesContinuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesTobias Schneck
 
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenOpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenB1 Systems GmbH
 
OpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenOpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenB1 Systems GmbH
 
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!confluent
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtB1 Systems GmbH
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Managementinovex GmbH
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
OSDC 2011 | CFEngine im Praxiseinsatz by Florian Freund
OSDC 2011 |  CFEngine im Praxiseinsatz by Florian FreundOSDC 2011 |  CFEngine im Praxiseinsatz by Florian Freund
OSDC 2011 | CFEngine im Praxiseinsatz by Florian FreundNETWAYS
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...B1 Systems GmbH
 
DACHNUG50 CNX3 Monitoring.pdf
DACHNUG50 CNX3 Monitoring.pdfDACHNUG50 CNX3 Monitoring.pdf
DACHNUG50 CNX3 Monitoring.pdfDNUG e.V.
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafkagedoplan
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanB1 Systems GmbH
 
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudGünzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudAndreas Günzel
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen B1 Systems GmbH
 
Automatisierte Linux installation 0603_version2012_inoxt_rz
Automatisierte Linux installation 0603_version2012_inoxt_rzAutomatisierte Linux installation 0603_version2012_inoxt_rz
Automatisierte Linux installation 0603_version2012_inoxt_rzinoX-tech GmbH
 

Ähnlich wie Klein, aber oho - Continuous Delivery von Micro Applications mit Jenkins, Docker & Kubernetes bei Apollo (20)

B1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AGB1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AG
 
Ubuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingUbuntu-/Debian-Packaging
Ubuntu-/Debian-Packaging
 
Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat
 
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenOpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
 
Sichere und unabhängige Datenverwaltung mit ownCloud
Sichere und unabhängige Datenverwaltung mit ownCloud Sichere und unabhängige Datenverwaltung mit ownCloud
Sichere und unabhängige Datenverwaltung mit ownCloud
 
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesContinuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
 
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenOpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
 
OpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenOpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von Instanzen
 
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemacht
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
OSDC 2011 | CFEngine im Praxiseinsatz by Florian Freund
OSDC 2011 |  CFEngine im Praxiseinsatz by Florian FreundOSDC 2011 |  CFEngine im Praxiseinsatz by Florian Freund
OSDC 2011 | CFEngine im Praxiseinsatz by Florian Freund
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
 
DACHNUG50 CNX3 Monitoring.pdf
DACHNUG50 CNX3 Monitoring.pdfDACHNUG50 CNX3 Monitoring.pdf
DACHNUG50 CNX3 Monitoring.pdf
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudGünzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
 
Automatisierte Linux installation 0603_version2012_inoxt_rz
Automatisierte Linux installation 0603_version2012_inoxt_rzAutomatisierte Linux installation 0603_version2012_inoxt_rz
Automatisierte Linux installation 0603_version2012_inoxt_rz
 

Mehr von B1 Systems GmbH

Ubuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreibenUbuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreibenB1 Systems GmbH
 
Android mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen RepoAndroid mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen RepoB1 Systems GmbH
 
Ambilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & HyperionAmbilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & HyperionB1 Systems GmbH
 
Salt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersSalt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersB1 Systems GmbH
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanB1 Systems GmbH
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackB1 Systems GmbH
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackB1 Systems GmbH
 
Bits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der ZeitBits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der ZeitB1 Systems GmbH
 
End of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStackEnd of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStackB1 Systems GmbH
 
E-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPGE-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPGB1 Systems GmbH
 
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenSome Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenB1 Systems GmbH
 
Entwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantEntwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantB1 Systems GmbH
 
Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?B1 Systems GmbH
 
Ceph - Software Defined Storage für die Cloud
Ceph - Software Defined Storage für die CloudCeph - Software Defined Storage für die Cloud
Ceph - Software Defined Storage für die CloudB1 Systems GmbH
 
Migrating deployment processes and Continuous Integration at SAP SE
Migrating deployment processes and Continuous Integration at SAP SEMigrating deployment processes and Continuous Integration at SAP SE
Migrating deployment processes and Continuous Integration at SAP SEB1 Systems GmbH
 
Salt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersSalt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersB1 Systems GmbH
 
Lifecycle Management mit Puppet und Foreman
Lifecycle Management mit Puppet und ForemanLifecycle Management mit Puppet und Foreman
Lifecycle Management mit Puppet und ForemanB1 Systems GmbH
 
DevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetAppDevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetAppB1 Systems GmbH
 

Mehr von B1 Systems GmbH (19)

Ubuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreibenUbuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreiben
 
Android mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen RepoAndroid mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen Repo
 
Ambilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & HyperionAmbilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & Hyperion
 
Salt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersSalt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for Datacenters
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStack
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStack
 
Bits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der ZeitBits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der Zeit
 
End of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStackEnd of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStack
 
systemd im Alltag
systemd im Alltagsystemd im Alltag
systemd im Alltag
 
E-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPGE-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPG
 
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenSome Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
 
Entwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantEntwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit Vagrant
 
Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?
 
Ceph - Software Defined Storage für die Cloud
Ceph - Software Defined Storage für die CloudCeph - Software Defined Storage für die Cloud
Ceph - Software Defined Storage für die Cloud
 
Migrating deployment processes and Continuous Integration at SAP SE
Migrating deployment processes and Continuous Integration at SAP SEMigrating deployment processes and Continuous Integration at SAP SE
Migrating deployment processes and Continuous Integration at SAP SE
 
Salt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersSalt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for Datacenters
 
Lifecycle Management mit Puppet und Foreman
Lifecycle Management mit Puppet und ForemanLifecycle Management mit Puppet und Foreman
Lifecycle Management mit Puppet und Foreman
 
DevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetAppDevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetApp
 

Klein, aber oho - Continuous Delivery von Micro Applications mit Jenkins, Docker & Kubernetes bei Apollo

  • 1. Klein, aber oho – Continuous Delivery von Micro Applications mit Jenkins, Docker & Kubernetes bei Apollo ContainerConf 2016 15. November 2016 Ulrich Häberlein Teamleitung Backend-Management Apollo-Optik Holding GmbH & Co KG Michael Steinfurth Linux/Unix Consultant & Trainer B1 Systems GmbH info@b1-systems.de B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development
  • 2. Vorstellung B1 Systems gegründet 2004 primär Linux/Open Source-Themen national & international tätig fast 100 Mitarbeiter unabhängig von Soft- und Hardware-Herstellern Leistungsangebot: Beratung & Consulting Support Entwicklung Training Betrieb Lösungen dezentrale Strukturen B1 Systems GmbH Continuous Delivery @ Apollo 2/31
  • 3. Schwerpunkte B1 Systems GmbH Continuous Delivery @ Apollo 3/31
  • 4. Vorstellung Apollo Deutschlands filialstärkster Optiker gegründet 1972 über 800 Filialen in Deutschland über 100 Filialen in Österreich mehr als 3.600 Angestellte seit 1998 Teil der GrandVision-Gruppe einer der größten Optikkonzerne der Welt über 6000 Filialen in 44 Ländern mehr als 27.000 Angestellte B1 Systems GmbH Continuous Delivery @ Apollo 4/31
  • 5. Business Case B1 Systems GmbH Continuous Delivery @ Apollo 5/31
  • 6. Business Case B1 Systems GmbH Continuous Delivery @ Apollo 6/31
  • 7. Ausgangssituation Business-Plattform mit Datenbanken 900 Filialen Verarbeitung von Bestellungen, Lagerprozessen und Stapelverarbeitung aus den Schnittstellen der POS Systeme zentraler SAP Betrieb der GrandVision B1 Systems GmbH Continuous Delivery @ Apollo 7/31
  • 8. Warum Middleware in Microapplication I agile Entwicklung schnelle, änderbare Geschäftsfälle einfach skalier- und erweiterbar kontinuierliche, automatische Updates standardisiertes Testmanagement B1 Systems GmbH Continuous Delivery @ Apollo 8/31
  • 9. Warum Middleware in Microapplication II Sicherstellung der Deployment-Qualität hohe Verfügbarkeit betriebssystemunabhängig Configuration as Code möglich B1 Systems GmbH Continuous Delivery @ Apollo 9/31
  • 10. Workflow B1 Systems GmbH Continuous Delivery @ Apollo 10/31
  • 11. Workflow B1 Systems GmbH Continuous Delivery @ Apollo 11/31
  • 12. Jenkinsübernahme 1 Java-Anwendungen werden entwickelt und landen im SVN 2 Jenkins bekommt SVN Änderungen mit, übernimmt Bauprozess 3 maven → Bauen mit Abhängigkeiten und Test 4 Übergabe an Microapp-Job B1 Systems GmbH Continuous Delivery @ Apollo 12/31
  • 13. Jenkins-MicroappContainer bauen 1 Applikation verpacken in generischen Container 2 Konfigurationsdateien befüllen 3 Docker Image bauen 4 Metainformationen in Dockerfile (Service ↔ Ports) 5 Verschieben in die Registry B1 Systems GmbH Continuous Delivery @ Apollo 13/31
  • 14. Jenkins Deployment 1 Jobübergabe 2 Image herunterladen aus Registry (Tag) 3 Erstellen der Metainformationen 4 Anhand von Informationen aus Deployment-NFS und Dockerfile 5 Anlegen Struktur im NFS 6 Anpassen der Softwarezustandsdatei (Konfigurations-NFS) 7 Weiter mit Deployment B1 Systems GmbH Continuous Delivery @ Apollo 14/31
  • 15. Deployment Entwicklungsstufe Dockerfile Labels + Konfigurationsinformationen = YAML z. B. TAG und Häufigkeit konfiguriert in Konfiguration direktes Deployment in Kubernetes Platform pro Container vom Jenkins-Slave B1 Systems GmbH Continuous Delivery @ Apollo 15/31
  • 16. Deployment YAML Beispiel deployment.yaml Beispiel gekürzt apiVersion: extensions/v1beta1 kind: Deployment metadata: name: testmicroapplication-deployment spec: replicas: 1 strategy: type: RollingUpdate template: spec: restartPolicy: Always containers: - name: testmicroapplication image: registry/apps/testmicroapplication:B123 env: B1 Systems GmbH Continuous Delivery @ Apollo 16/31
  • 17. Test Staging Softwarezustandsdatei in Entwicklung anhand von config-Datei im SVN Container Name & Version, Min & Max Häufigkeit, Downtime-Wert Jenkins-Job kopiert Zustanddatei in Teststufenbereich im SVN → automatisches Erkennen und Herstellen aller Pods (Container) Beispiel Zustandsdatei testmicroapplication:B123:1:1:1 integration-sample:B42:2:3:1 B1 Systems GmbH Continuous Delivery @ Apollo 17/31
  • 18. Temporäre Besonderheit Anwendungen werden direkt nach Test und Entwicklung ausgerollt → schnellerer Entwicklungsfortschritt, da gleichzeitig Weiterentwicklung und Fehlerbehebung aus Tests späterer Normalzustand: Herstellung eines Gesamtzustands der Container B1 Systems GmbH Continuous Delivery @ Apollo 18/31
  • 19. Infrastruktur B1 Systems GmbH Continuous Delivery @ Apollo 19/31
  • 20. Hostsysteme VMware virtuelle Maschinen mit SLES 12 3 VLANs für jede Stageing Area jeweils /16 +1 VLAN Cluster Service IP-Adressbereich pro Stageing Area geteiltes NFS-Volume SUSE Manager Deployment Systeme einheitlich → Konfiguration eines neuen Systems in fünf Minuten B1 Systems GmbH Continuous Delivery @ Apollo 20/31
  • 21. Kubernetes flanneld für virtuelles Netz kubernetes Pakete (Master & Worker) Master- und Worker-Knoten einheitlich + bessere Verfügbarkeit Docker als Backend infrastrukturelle Abhängigkeiten ausgelagert (kein Henne-Ei-Problem) B1 Systems GmbH Continuous Delivery @ Apollo 21/31
  • 22. B1 Systems GmbH Continuous Delivery @ Apollo 22/31
  • 23. Infrastrukturkomponenten Infrastrukturkomponenten auf ausgelagerten Kubernetes-Plattformen Registry, Jenkins, Maven durch Container höhere Verfügbarkeit etcd mit virtueller IP-Adresse und keepalived hochverfügbar Reverse Proxy mit dynamischer Konfiguration aus Kubernetes-Services für vhosts alle Komponenten mit Jenkins bau- und deploybar B1 Systems GmbH Continuous Delivery @ Apollo 23/31
  • 24. Rolling Update & Lastverteilung & Skalierung Rolling Updates Replicasets in Deployments → keine Downtimes der Applikationen Verteilung der Netzwerklast durch Kubernetes-Proxy → Iptables-Regeln verteilen unabhängig von eingehender IP-Adresse Horizontal Pod Autoscaler → konfigurierbare Skalierung bei Leistungsengpässen B1 Systems GmbH Continuous Delivery @ Apollo 24/31
  • 25. B1 Systems GmbH Continuous Delivery @ Apollo 25/31
  • 26. Logging Logging vorbereitet auf ELK-Stack Stack selber in Kubernetes mit verteiltem Speicher fluentd zur Erfassung der Containerlogs Applikationen schreiben selbständig Logdateien Ausbau der Applikationen zu ELK-Anbindung B1 Systems GmbH Continuous Delivery @ Apollo 26/31
  • 27. Monitoring Nagios für die grundlegende Systemüberwachung Speicher & Basisdienste Grafana mit InfluxDB für die Performancegraphen von Clustern und Containern B1 Systems GmbH Continuous Delivery @ Apollo 27/31
  • 28. Erfahrungen & Lessons Learned B1 Systems GmbH Continuous Delivery @ Apollo 28/31
  • 29. Erfahrungen Infrastruktur schneller als erwartet Faktor 20 schneller zur SAP-Infrastruktur Infrastruktur selbst zur Entlastung durch dynamische Jenkins Slaves genutzt Umgebung sehr stabil und quasi selbstheilend B1 Systems GmbH Continuous Delivery @ Apollo 29/31
  • 30. Lessons Learned etcd hochverfügbar machen ohne Henne-Ei-Problem und weniger als drei Container rabbitmq Message Broker im Cluster anfällig für Aktualisierungen (Erlang Version) B1 Systems GmbH Continuous Delivery @ Apollo 30/31
  • 31. Vielen Dank für Ihre Aufmerksamkeit! Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de oder +49 (0)8457 - 931096 B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development