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 [email protected]B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development
31
Embed
Klein, aber oho - Continuous Delivery von Micro Applications mit Jenkins, Docker & Kubernetes bei Apollo
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Klein, aber oho – Continuous Deliveryvon Micro Applications mit Jenkins,Docker & Kubernetes bei ApolloContainerConf 2016 15. November 2016
gegründet 2004primär Linux/Open Source-Themennational & international tätigfast 100 Mitarbeiterunabhängig von Soft- und Hardware-HerstellernLeistungsangebot:
Business-Plattform mit Datenbanken900 FilialenVerarbeitung von Bestellungen, Lagerprozessen undStapelverarbeitung aus den Schnittstellen der POS Systemezentraler SAP Betrieb der GrandVision
1 Java-Anwendungen werden entwickelt und landen im SVN2 Jenkins bekommt SVN Änderungen mit, übernimmt Bauprozess3 maven → Bauen mit Abhängigkeiten und Test4 Übergabe an Microapp-Job
B1 Systems GmbH Continuous Delivery @ Apollo 12/31
1 Jobübergabe2 Image herunterladen aus Registry (Tag)3 Erstellen der Metainformationen4 Anhand von Informationen aus Deployment-NFS und Dockerfile5 Anlegen Struktur im NFS6 Anpassen der Softwarezustandsdatei (Konfigurations-NFS)7 Weiter mit Deployment
B1 Systems GmbH Continuous Delivery @ Apollo 14/31
Dockerfile Labels + Konfigurationsinformationen = YAMLz. B. TAG und Häufigkeit konfiguriert in Konfigurationdirektes Deployment in Kubernetes Platform pro Container vomJenkins-Slave
B1 Systems GmbH Continuous Delivery @ Apollo 15/31
Softwarezustandsdatei in Entwicklung anhand von config-Dateiim SVNContainer Name & Version, Min & Max Häufigkeit,Downtime-WertJenkins-Job kopiert Zustanddatei in Teststufenbereich im SVN↪→ automatisches Erkennen und Herstellen aller Pods(Container)
Beispiel Zustandsdateitestmicroapplication:B123:1:1:1integration-sample:B42:2:3:1
B1 Systems GmbH Continuous Delivery @ Apollo 17/31
Anwendungen werden direkt nach Test und Entwicklungausgerollt↪→ schnellerer Entwicklungsfortschritt, da gleichzeitigWeiterentwicklung und Fehlerbehebung aus Testsspäterer Normalzustand: Herstellung eines Gesamtzustands derContainer
B1 Systems GmbH Continuous Delivery @ Apollo 18/31
VMware virtuelle Maschinen mit SLES 123 VLANs für jede Stageing Area jeweils /16+1 VLAN Cluster Service IP-Adressbereichpro Stageing Area geteiltes NFS-VolumeSUSE Manager DeploymentSysteme einheitlich → Konfiguration eines neuen Systems infünf Minuten
B1 Systems GmbH Continuous Delivery @ Apollo 20/31
Infrastrukturkomponenten auf ausgelagertenKubernetes-PlattformenRegistry, Jenkins, Maven durch Container höhere Verfügbarkeitetcd mit virtueller IP-Adresse und keepalived hochverfügbarReverse Proxy mit dynamischer Konfiguration ausKubernetes-Services für vhostsalle Komponenten mit Jenkins bau- und deploybar
B1 Systems GmbH Continuous Delivery @ Apollo 23/31
Rolling Updates Replicasets in Deployments↪→ keine Downtimes der ApplikationenVerteilung der Netzwerklast durch Kubernetes-Proxy↪→ Iptables-Regeln verteilen unabhängig von eingehenderIP-AdresseHorizontal Pod Autoscaler↪→ konfigurierbare Skalierung bei Leistungsengpässen
B1 Systems GmbH Continuous Delivery @ Apollo 24/31
Logging vorbereitet auf ELK-StackStack selber in Kubernetes mit verteiltem Speicherfluentd zur Erfassung der ContainerlogsApplikationen schreiben selbständig LogdateienAusbau der Applikationen zu ELK-Anbindung
B1 Systems GmbH Continuous Delivery @ Apollo 26/31
Infrastruktur schneller als erwartetFaktor 20 schneller zur SAP-InfrastrukturInfrastruktur selbst zur Entlastung durch dynamische JenkinsSlaves genutztUmgebung sehr stabil und quasi selbstheilend
B1 Systems GmbH Continuous Delivery @ Apollo 29/31
etcd hochverfügbar machen ohne Henne-Ei-Problem und wenigerals drei Containerrabbitmq Message Broker im Cluster anfällig fürAktualisierungen (Erlang Version)
B1 Systems GmbH Continuous Delivery @ Apollo 30/31