SlideShare ist ein Scribd-Unternehmen logo
Continuous Delivery as a Way of Life
Manuel Kiessling Torsten Hamper
Software Architect System Architect
1
Architecture / Verticals
1
Platform Engineering (PENG)
Search Explore Evaluate Order ControlUX
Business
Analytics
Data
Data
Data
Logic
Logic
Logic
Frontend
Persistence
2
3
Struktur
Prozesse
Tools
Agenda
Architektur
01
02
03
01
Paradigmen02
Staging Konzept01
Continuous Delivery02
Platform-as-a-Service03
Technology Stack01
Deployment Prozess | Automatisierung02
Alerting, Monitoring, Logging03
Systemübersichten04
4
01 Struktur
• Die eShop Services sind entweder multimandantenfähig oder haben für jeden Mandanten (Kaufhof, Inno,
Hudsonsbay) den gleichen Source-Code.
• Der eShop besteht nicht aus einer Applikation, sondern setzt sich aus zahlreichen „kleinen Services“
zusammen. Es sind mit Absicht größere Einheiten als Micro-Services.
• Fachlich wird der eShop in vertikale Domänen aufgeteilt, orientiert an der Customer Journey. Erst im
Frontend baut sich daraus ein Gesamtbild zusammen.
• Self-Contained Systems pro Domäne
01.01 Architektur
5
01 Struktur
• Jedes unserer vertikalisierten Teams (Explore, Search, Evaluate, Order, Control) verantwortet Front-to-Back
einen Teil der User-Journey, indem es Self-contained Systems entwickelt, deployed, betreibt, und überwacht.
01.01 Architektur / Vertikalisierung
EXPLORE SEARCH EVALUATE ORDER CONTROL
Entdeckt
Themenwelten
und Angebote
Sucht
zielgerichtet
Produkte
Ist dies das richtige
Produkt für mich?
Liefern lassen
und bezahlen
wie ich es will
Wo ist das
Paket gerade?
Was habe ich
bisher bestellt?
6
01 Struktur
01.01 Architektur / Vertikalisierung
6
Platform Engineering (PENG)
Search Explore Evaluate Order ControlUX
Business
Analytics
Data
Data
Data
Logic
Logic
Logic
Frontend
Persistence
7
01 Struktur
• Lose Kopplung zwischen den Domänen. In Self-Containd Systems besorgt und speichert sich jede Domäne
die benötigten Daten. Das vermeidet übergreifende Datensilos und erlaubt eine individuelle Datenstruktur
passend zum Anwendungsfall sowie eine (relativ) freie Auswahl an verwendeter Software-Technologie.
• Continuous Delivery ermöglicht schnellere Entwicklung, weil Teams unabhängig voneinander entwickeln und
Funktionen veröffentlichen. Automatische Unit- und Akzeptanz-Tests haben eine hohe Testabdeckung und
beschleunigen den Prozess.
• Open Source ermöglicht Wechsel auf das jeweils beste Tool und vermeidet Vendor-Logins wegen z.B. lang
laufender Support Verträgen. Erfordert jedoch aktives Tool-Management und Mitarbeit in der Community, um
die diversen Nebenwirkungen zu kompensieren.
• NEU / WIP: Auslagerung des Frontend pro Team zu einem übergreifenden Client-Site Rendering, um interne
und externe APIs einbinden und bereitstellen aber auch nutzen zu können.
01.02 Paradigmen
8
01 Struktur
• Self-contained Systems verfügen über ein eigenes Frontend, kapseln die Business-Logik ihres Themas, und
halten die Daten die sie benötigen lokal vor.
01.02 Paradigmen | Self-Contained System und lose Kopplung
ORDER
UI
Logik
Daten
CONTROL
UI
Logik
Daten
asynchrone
Replikation
oder
REST-API
9
02 Prozesse
• Für jeden Mandanten steht neben der Produktionsumgebung auch eine Integrations- und eine PreProd-
Umgebung bereit für fachliche sowie technische Abnahmen und das automatisierte Testing, eingebunden in
den Continuous Delivery Prozess.
02.01 Staging Konzept
10
02 Prozesse
• Neben dem schon klassischen CD der Software-Entwickler nutzt auch die Plattform CD.
• Durch Infrastructure-as-Code und Test-Driven-Development wird auch bei der Plattform, also im Ops-Betrieb,
eine stetig steigende Testabdeckung erreicht, um möglichst viele Use-Cases unterbrechungsfrei in
Produktion bringen zu können.
• Schnelle Bereitstellung von zusätzlichen Mandanten möglich.
02.02 Continuous Delivery (CD) bei Dev und Ops
11
02 Prozesse
• Transparente Platform-as-a-Service aus Sicht der Entwickler ermöglicht den Fokus auf der Software-
Entwicklung und befreit von Ops-Themen.
• Automatische Bereitstellung von ständig aktuellen System-Images.
• Eine Zentrale Konfigurationsdatei pro Service, die Änderungen automatisch ausrollt.
• Database-as-a-Service mit anpassbaren Features.
• Bereitstellung einer SQL und einer NoSQL-DB.
• Kubernetes Cluster-Services mit automatischer Lastverteilung und Rolling-Updates.
• Service-Templates, um neue Funktionen schnell und ohne Interaktion mit Dritten verfügbar machen zu
können.
02.03 Platform-as-a-Service
12
 Betrieb von BareMetal Systemen für spezielle Anforderungen, z.B. von NoSQL Cassandra.
 Bereitstellung von virtuellen Ressourcen via OpenStack durch Hosting Provider.
 Betrieb der Kubernetes Cluster durch das Platform-Engineering-Team (PENG) für den Betrieb der
Applikations-Container basierend auf Docker.
 Alles basierend auf Ubuntu Linux
03 Tools
01 Technology Stack | Hosting
13
 Das Tool Jenkins wird für den Continuous Delivery Prozess verwendet.
 Puppet (Configuration Management Tool) wird abgelöst durch Infrastructure-as-Code / Contextualization mit
Ansible und Python.
 Ermöglicht Aufbau (und Löschung) ganzer Mandanten auf Knopfdruck inkl. Netzwerk, Cluster-Software,
Datenbanken und Applikationen
03 Tools
02 Deployment Prozess | Automatisierung
14
 Zum Event-Logging dient ein Tool-Stack basierend auf
 Logstash (Log-Verarbeitung und -Aufbereitung)
 Kafka (Message Queuing)
 Elastic Search (Datenhaltung)
 Kibana (Visualisierung)
 Alerting läuft zentral in Prometheus und Zabbix + OpsGenie für automatische Bereitschaftsanrufe.
 Operations Dashboard (Raspberry PI) mit visualisiertem Live-Monitoring diverser Dienste.
03 Tools
03 Alerting, Monitoring, Logging
15
Vielen Dank für Ihre
Aufmerksamkeit!

Weitere ähnliche Inhalte

Ähnlich wie Continuous Delivery as a Way of Life

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
 
Steinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionSteinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen Evolution
QAware GmbH
 
pflichttexte.de overview (long 2020)
pflichttexte.de overview (long 2020)pflichttexte.de overview (long 2020)
pflichttexte.de overview (long 2020)
Andreas Koch
 
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop AnalyticsWindows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Fabian Niesen
 
BATbern41 Die Evolution zu Microservices
BATbern41 Die Evolution zu MicroservicesBATbern41 Die Evolution zu Microservices
BATbern41 Die Evolution zu Microservices
BATbern
 
Nanoservice Architekturen
Nanoservice ArchitekturenNanoservice Architekturen
Nanoservice Architekturen
Leo Lindhorst
 
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
adesso AG
 
DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf
DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdfDACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf
DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf
DNUG e.V.
 
Mobiles und flexibles Arbeiten mit der CANCOM AHP Private Cloud
Mobiles und flexibles Arbeiten mit der CANCOM AHP Private CloudMobiles und flexibles Arbeiten mit der CANCOM AHP Private Cloud
Mobiles und flexibles Arbeiten mit der CANCOM AHP Private Cloud
CANCOM
 
AdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsightsAdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsights
Christoph Adler
 
CLOUDSERVICES FÜR ISVs
CLOUDSERVICES FÜR ISVsCLOUDSERVICES FÜR ISVs
CLOUDSERVICES FÜR ISVs
acentrix GmbH
 
Webinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpaces
Webinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpacesWebinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpaces
Webinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpaces
AWS Germany
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
Torsten Fink
 
1. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.20231. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.2023
Johannes Kleinlercher
 
BPMN und Workflows in .NET
BPMN und Workflows in .NETBPMN und Workflows in .NET
BPMN und Workflows in .NET
Bernd Ruecker
 
NETWAYS Cloud - Der Weg zur eigenen VM (Webinar vom 15. Juli 2016)
NETWAYS Cloud - Der Weg zur eigenen VM (Webinar vom 15. Juli 2016)NETWAYS Cloud - Der Weg zur eigenen VM (Webinar vom 15. Juli 2016)
NETWAYS Cloud - Der Weg zur eigenen VM (Webinar vom 15. Juli 2016)
NETWAYS
 
Skalierung & Performance
Skalierung & PerformanceSkalierung & Performance
Skalierung & Performanceglembotzky
 
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText Basis
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText BasisAnwender-Case Karl Storz GmbH & Co. KG auf OpenText Basis
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText Basis
netmedianer GmbH
 
Modernes Rechenzentrum - Future Decoded
Modernes Rechenzentrum - Future DecodedModernes Rechenzentrum - Future Decoded
Modernes Rechenzentrum - Future Decoded
Microsoft Österreich
 

Ähnlich wie Continuous Delivery as a Way of Life (20)

imatics FormEngine
imatics FormEngineimatics FormEngine
imatics FormEngine
 
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!
 
Steinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionSteinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen Evolution
 
pflichttexte.de overview (long 2020)
pflichttexte.de overview (long 2020)pflichttexte.de overview (long 2020)
pflichttexte.de overview (long 2020)
 
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop AnalyticsWindows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
 
BATbern41 Die Evolution zu Microservices
BATbern41 Die Evolution zu MicroservicesBATbern41 Die Evolution zu Microservices
BATbern41 Die Evolution zu Microservices
 
Nanoservice Architekturen
Nanoservice ArchitekturenNanoservice Architekturen
Nanoservice Architekturen
 
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
 
DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf
DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdfDACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf
DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf
 
Mobiles und flexibles Arbeiten mit der CANCOM AHP Private Cloud
Mobiles und flexibles Arbeiten mit der CANCOM AHP Private CloudMobiles und flexibles Arbeiten mit der CANCOM AHP Private Cloud
Mobiles und flexibles Arbeiten mit der CANCOM AHP Private Cloud
 
AdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsightsAdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsights
 
CLOUDSERVICES FÜR ISVs
CLOUDSERVICES FÜR ISVsCLOUDSERVICES FÜR ISVs
CLOUDSERVICES FÜR ISVs
 
Webinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpaces
Webinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpacesWebinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpaces
Webinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpaces
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
 
1. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.20231. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.2023
 
BPMN und Workflows in .NET
BPMN und Workflows in .NETBPMN und Workflows in .NET
BPMN und Workflows in .NET
 
NETWAYS Cloud - Der Weg zur eigenen VM (Webinar vom 15. Juli 2016)
NETWAYS Cloud - Der Weg zur eigenen VM (Webinar vom 15. Juli 2016)NETWAYS Cloud - Der Weg zur eigenen VM (Webinar vom 15. Juli 2016)
NETWAYS Cloud - Der Weg zur eigenen VM (Webinar vom 15. Juli 2016)
 
Skalierung & Performance
Skalierung & PerformanceSkalierung & Performance
Skalierung & Performance
 
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText Basis
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText BasisAnwender-Case Karl Storz GmbH & Co. KG auf OpenText Basis
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText Basis
 
Modernes Rechenzentrum - Future Decoded
Modernes Rechenzentrum - Future DecodedModernes Rechenzentrum - Future Decoded
Modernes Rechenzentrum - Future Decoded
 

Continuous Delivery as a Way of Life

  • 1. Continuous Delivery as a Way of Life Manuel Kiessling Torsten Hamper Software Architect System Architect
  • 2. 1 Architecture / Verticals 1 Platform Engineering (PENG) Search Explore Evaluate Order ControlUX Business Analytics Data Data Data Logic Logic Logic Frontend Persistence
  • 3. 2
  • 4. 3 Struktur Prozesse Tools Agenda Architektur 01 02 03 01 Paradigmen02 Staging Konzept01 Continuous Delivery02 Platform-as-a-Service03 Technology Stack01 Deployment Prozess | Automatisierung02 Alerting, Monitoring, Logging03 Systemübersichten04
  • 5. 4 01 Struktur • Die eShop Services sind entweder multimandantenfähig oder haben für jeden Mandanten (Kaufhof, Inno, Hudsonsbay) den gleichen Source-Code. • Der eShop besteht nicht aus einer Applikation, sondern setzt sich aus zahlreichen „kleinen Services“ zusammen. Es sind mit Absicht größere Einheiten als Micro-Services. • Fachlich wird der eShop in vertikale Domänen aufgeteilt, orientiert an der Customer Journey. Erst im Frontend baut sich daraus ein Gesamtbild zusammen. • Self-Contained Systems pro Domäne 01.01 Architektur
  • 6. 5 01 Struktur • Jedes unserer vertikalisierten Teams (Explore, Search, Evaluate, Order, Control) verantwortet Front-to-Back einen Teil der User-Journey, indem es Self-contained Systems entwickelt, deployed, betreibt, und überwacht. 01.01 Architektur / Vertikalisierung EXPLORE SEARCH EVALUATE ORDER CONTROL Entdeckt Themenwelten und Angebote Sucht zielgerichtet Produkte Ist dies das richtige Produkt für mich? Liefern lassen und bezahlen wie ich es will Wo ist das Paket gerade? Was habe ich bisher bestellt?
  • 7. 6 01 Struktur 01.01 Architektur / Vertikalisierung 6 Platform Engineering (PENG) Search Explore Evaluate Order ControlUX Business Analytics Data Data Data Logic Logic Logic Frontend Persistence
  • 8. 7 01 Struktur • Lose Kopplung zwischen den Domänen. In Self-Containd Systems besorgt und speichert sich jede Domäne die benötigten Daten. Das vermeidet übergreifende Datensilos und erlaubt eine individuelle Datenstruktur passend zum Anwendungsfall sowie eine (relativ) freie Auswahl an verwendeter Software-Technologie. • Continuous Delivery ermöglicht schnellere Entwicklung, weil Teams unabhängig voneinander entwickeln und Funktionen veröffentlichen. Automatische Unit- und Akzeptanz-Tests haben eine hohe Testabdeckung und beschleunigen den Prozess. • Open Source ermöglicht Wechsel auf das jeweils beste Tool und vermeidet Vendor-Logins wegen z.B. lang laufender Support Verträgen. Erfordert jedoch aktives Tool-Management und Mitarbeit in der Community, um die diversen Nebenwirkungen zu kompensieren. • NEU / WIP: Auslagerung des Frontend pro Team zu einem übergreifenden Client-Site Rendering, um interne und externe APIs einbinden und bereitstellen aber auch nutzen zu können. 01.02 Paradigmen
  • 9. 8 01 Struktur • Self-contained Systems verfügen über ein eigenes Frontend, kapseln die Business-Logik ihres Themas, und halten die Daten die sie benötigen lokal vor. 01.02 Paradigmen | Self-Contained System und lose Kopplung ORDER UI Logik Daten CONTROL UI Logik Daten asynchrone Replikation oder REST-API
  • 10. 9 02 Prozesse • Für jeden Mandanten steht neben der Produktionsumgebung auch eine Integrations- und eine PreProd- Umgebung bereit für fachliche sowie technische Abnahmen und das automatisierte Testing, eingebunden in den Continuous Delivery Prozess. 02.01 Staging Konzept
  • 11. 10 02 Prozesse • Neben dem schon klassischen CD der Software-Entwickler nutzt auch die Plattform CD. • Durch Infrastructure-as-Code und Test-Driven-Development wird auch bei der Plattform, also im Ops-Betrieb, eine stetig steigende Testabdeckung erreicht, um möglichst viele Use-Cases unterbrechungsfrei in Produktion bringen zu können. • Schnelle Bereitstellung von zusätzlichen Mandanten möglich. 02.02 Continuous Delivery (CD) bei Dev und Ops
  • 12. 11 02 Prozesse • Transparente Platform-as-a-Service aus Sicht der Entwickler ermöglicht den Fokus auf der Software- Entwicklung und befreit von Ops-Themen. • Automatische Bereitstellung von ständig aktuellen System-Images. • Eine Zentrale Konfigurationsdatei pro Service, die Änderungen automatisch ausrollt. • Database-as-a-Service mit anpassbaren Features. • Bereitstellung einer SQL und einer NoSQL-DB. • Kubernetes Cluster-Services mit automatischer Lastverteilung und Rolling-Updates. • Service-Templates, um neue Funktionen schnell und ohne Interaktion mit Dritten verfügbar machen zu können. 02.03 Platform-as-a-Service
  • 13. 12  Betrieb von BareMetal Systemen für spezielle Anforderungen, z.B. von NoSQL Cassandra.  Bereitstellung von virtuellen Ressourcen via OpenStack durch Hosting Provider.  Betrieb der Kubernetes Cluster durch das Platform-Engineering-Team (PENG) für den Betrieb der Applikations-Container basierend auf Docker.  Alles basierend auf Ubuntu Linux 03 Tools 01 Technology Stack | Hosting
  • 14. 13  Das Tool Jenkins wird für den Continuous Delivery Prozess verwendet.  Puppet (Configuration Management Tool) wird abgelöst durch Infrastructure-as-Code / Contextualization mit Ansible und Python.  Ermöglicht Aufbau (und Löschung) ganzer Mandanten auf Knopfdruck inkl. Netzwerk, Cluster-Software, Datenbanken und Applikationen 03 Tools 02 Deployment Prozess | Automatisierung
  • 15. 14  Zum Event-Logging dient ein Tool-Stack basierend auf  Logstash (Log-Verarbeitung und -Aufbereitung)  Kafka (Message Queuing)  Elastic Search (Datenhaltung)  Kibana (Visualisierung)  Alerting läuft zentral in Prometheus und Zabbix + OpsGenie für automatische Bereitschaftsanrufe.  Operations Dashboard (Raspberry PI) mit visualisiertem Live-Monitoring diverser Dienste. 03 Tools 03 Alerting, Monitoring, Logging
  • 16. 15 Vielen Dank für Ihre Aufmerksamkeit!