SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
Continuous Delivery für Cloud-native Anwendungen auf
Cloud-nativer Infrastruktur
Mainz, 09.05.2017
Josef Fuchshuber (@fuchshuber) & Tobias Placht (@knacht)
QAware GmbH
2
Sorry für den Titel dieser Session: Denn wir sind nicht die
Blah-Blah-Dudes.
Quelle: http://dilbert.com/strip/2011-01-07
3
Josef Fuchshuber
Cheftechnologe
• Architekt & irgendwo zwischen Dev&Ops
• #CloudNativeNerd
Mail: josef.fuchshuber@qaware.de
Twitter: @fuchshuber
Tobias Placht
Software Engineer
• Java-Dev frisch von der Hochschule
• #CommandLineNinja mit Faible für
Sticker
Mail: tobias.placht@qaware.de
Twitter: @knacht
4
#GIFEE
Google‘s
(and Facebook‘s, Twitters‘s, Airbnb‘s, Netfix, …)
Infrastructure
For
Everyone
Else
5
CLOUD NATIVE APPLICATIONS
HYPERSCALE
Traffic, Data, Features
ANTIFRAGILITÄT
CONTINUOUS DELIVERY &
DEVOPS
OPEX SAVINGS
(automation & utilization)
DISRUPTINDUSTRIALIZE
6
BUILD AND COMPOSED
AS MICROSERVICES
PACKAGED AND
DISTRIBUTED AS CONTAINERS
DYNAMICALLY
EXECUTED IN THE CLOUD
3KEYPRINCIPLES
CLOUD NATIVE APPLICATIONS
7
Die Anatomie des Cloud Native Stack
Cluster Virtualization Resources
Cluster Scheduler Containers
Cluster Orchestrator Applications
Application Platform Cloud Native Apps
Cluster Operation System
Verwaltet
Ressourcen für
die Ausführung
von Containers
Stellt Ablauf-
Umgebung und
APIs für Apps
bereit
Führt
Applikationen auf
dem Cluster aus
Entkoppelt von
physischer
Hardware
Dev
Build
Test
8
Continuous Delivery: Build und Release Modell
DEV
OPS
Micro-
services
Micro-
services
Release x.y.1
Release x.y.2
Mit der DevOps-Brille betrachtet kann alles in einem Punkt
zusammengefasst werden: Die Applikationen werden zu Betriebseinheiten.
9
■ Microservices haben eine eigenständige Release-Einheit.
■ Container sind eine eigenständige Deployment-Einheit.
■ Container werden als isolierte Laufzeiteinheiten ausgeführt.
■ Container sind eine eigenständige Skalierungseinheit.
11
Our solution. And this is just one of many.
12
Die Werkzeugkette: Erfinderwerkstatt und Fließband.
Die Erfinderwerkstatt Das Fließband
Wissensarbeit und Kreativität Integration und Qualitätssicherung
Fertig? Fertig!
VCS Continuous Delivery - Cluster Test - Cluster
Docker
Registry
IaaS:
Scheduler
Orchestrator
Dev-1
Dev-2
Staging
Build Push
Analyze
Deploy & Test
Code push
Pull
14
Dynamic Build Nodes
Dynamic Build Nodes lösen zwei Probleme:
1. Problem: Statische Partitionierung
15
Master
Java-7-Agent Java-8-Agent Project-A-Agent Project-B-Agent
0
5
10
15
20
25
0
5
10
15
20
25
Master
Ressourcen-Pool
0
5
10
15
20
25
16
Dynamic Build Nodes lösen zwei Probleme:
2. Problem: Pets & Scale-Up
Anti-Pattern:
■ Pflegt eure Jenkins-Nodes nicht wie Haustiere und macht sie nicht zu einem Individuum, bei dem keiner mehr die
Konfiguration kennt: „Also auf genau diesem Server baut die Software“.
■ Erhöht nicht ständig die Ressourcen für einen Build-Node (z.B. bei paralleler Ausführung von Pipelines), sondern verwendet
Ressourcen-Pool und mehr Build-Nodes.
Besser: Ephemeral Build Nodes
Mit dem Mesos-Plugin wird DC/OS zur Jenkins-Cloud.
17
■ Dynamic Build Nodes werden vom Jenkins-Master „on-demand“ erzeugt.
■ Die Basis Build-Images der Nodes werden im Jenkins-Master zentral konfiguriert.
■ Build-Jobs können diese Basis-Images referenzieren.
■ Der Jenkins-Master übernimmt das Lifecycle-Management der Dynamic Build Nodes:
■ Startet vor einem Build-Job einen Container des referenzierten Docker-Images. Dabei kommuniziert der Master mit dem
DC/OS Scheduler und Orchestrator. DC/OS Node und Ressourcen werden dabei automatisch zugewiesen.
■ Führt den Build-Job im Docker-Container aus.
■ Sammelt Build-Artefakte zusammen und kopiert sie zurück auf den Master.
■ Stoppt den Dynamic Build Node
■ Parallele Ausführung von Jobs ist durch die Isolierung der Docker-Container kein Problem.
■ Die Grenzen sind nur durch die Verfügbaren Ressourcen des DC/OS Clusters gegeben. Je nach IaaS-Provider
können aber auch weitere Ressourcen hinzugefügt werden.
18
■ Die Basis-Images können über eigene Build-Pipelines gebaut und veröffentlicht werden.
■ Infos zum Bau von eigenen Images: https://docs.mesosphere.com/service-
docs/jenkins/custom-docker/
19
Everything as C<>de
Damit diese CD-Umgebung aufgesetzt und mit Leben befüllt
werden kann, brauchen wir an allen Stellen Code aus dem VCS.
20
■ Build-as-Code
■Maven, Gradle, …
■ Test-as-Code
■Unit-, Component-, Integration-, API-, UI-, Performance-Tests
■ Pipeline-as-Code
■Build-Pipeline per Jenkinsfile
■ Infrastructure-as-Code
■Docker, Terraform, Vagrant, Ansible, Marathon-Deployments
Beispiel Declarative Pipeline: Jenkinsfile
22
Beispiel: Bootstrapping unserer CD-Umgebung
Infrastructure:
• CoreOS VMs
• DC/OS Nodes (Master, Private, Public)
• NFS
Platform:
• Jenkins
• SonarQube (mit Datenbank)
• NGINX Reverse Proxy
• Artifactory
Services:
• Marathon Event Subscriber
• OpsBot
Terraform
Marathon-
Deployments
Marathon-
Deployments
Was macht der Bootstrapping Prozess?
23
<<Infrastructure>>
Bootstrap Node
<<Infrastructure>>
Master
<<Public Node>>
<<Private Node>>
Node1
<<Private Node>>
Node2
<<Private Node>>
Node3
NFS
Marathon-API
(HTTPS)
UIs&APIs
(HTTPS)
OPS
DEV
NGINX Proxy
APP
APP
APP
Jenkins
SonarQube
Artifactory
Event
Subscriber
OpsBot
25
Self service & Blueprints
Damit Entwickler schnell arbeitsfähig sind, sind Generatoren
und Blueprints wichtig (1/2).
26
ChatBots sind eine Lösung zur intuitiven
Steuerung von Generatoren.
■ Direkte Integration in HipChat / Slack /
Mattermost
■ Aufträge an den OpsBot werden einfach per
Message gestellt
■ Feedback von CI/CD Ereignissen und
Aufträgen kommen als Antwort zurück
Damit Entwickler schnell arbeitsfähig sind, sind Generatoren
und Blueprints wichtig (2/2).
27
Blueprints & Templates:
■ Die Microservice Build-Pipelines in einem
Projekt sind sich sehr ähnlich.
■ Blueprints und Templates geben einen
Rahmen vor und schaffen implizit
Konventionen.
■ Beispiele:
■Durch die Verwendung des Pipeline Multibranch
lugins wird für jeden Branch automatisch eine
eigene Pipeline angelegt.
■Identische Anbindung / Integration von Plattform-
Komponenten (z.B. SonarQube, Artifactory)
29
Advanced & Enterprise Topics
• Diagnosability
• CD für CD
• Deployments
Nicht nur unsere Cloud Native Anwendungen müssen
diagnostizierbar sein, sondern auch unsere CD-Umgebung. (1/2)
30
Monitoring mit Prometheus:
■ Prometheus kann für das Monitoring der CD-Plattform sowie für das Monitoring der
Applikationsumgebungen benutzt werden.
■ Prometheus kann Marathon als Service Discovery nutzen.
■ Client Libraries zur Instrumentierung sind für alle wichtigen Programmiersprachen vorhanden.
■ Dashboards können einfach mit Grafana angelegt werden.
■ Alert-Manager kann Störungen per E-Mail, Pager-Duty, HipChat, Slack … melden.
Nicht nur unsere Cloud Native Anwendungen müssen
diagnostizierbar sein, sondern auch unsere CD-Umgebung. (2/2)
31
Log-File Auswertung mit ELK/EFK:
■ Elasticsearch als DB und Kibana für Dashboards und Auswertungen
■ Auch hier sollte die Plattform (DC/OS, Jenkins, …) und die Applikationsumgebungen integriert
werden.
■ Für Docker Container, die auf stdout loggen, können Log-Driver (z.B. Fluentd) konfiguriert
werden.
■ Log-Files in den Containern können per Logstash & Filebeat integriert werden.
Continuous Delivery für Continuous Delivery
32
■ Auch Änderungen und Erweiterungen der CD Plattform müssen getestet werden.
■ Durch den „Everything-as-Code“ Ansatz ist das aber sehr einfach:
■Komplette Klone der Testumgebung (z.B. für Infrastruktur-Tests) können unter einer Stunde instanziiert
werden.
■Build-Plattform kann für Tests (z.B. bei Jenkins-Update) als weitere Instanz in DC/OS angelegt werden.
Plattform (Prod) Plattform (Test) Plattform (Prod)
Wie kommen die Microservices in die Testumgebung? (1/2)
33
■ Das ist projektspezifisch, aber alles was die Zielumgebung (DC/OS) ermöglicht ist erlaubt.
Direkt über Gradle-Tasks
Wie kommen die Microservices in die Testumgebung? (2/2)
34
■ Canary-Release mit Vamp (Very Awesome Microservices Platform)
Alte Version
Neue Version
Router
Deployment-Test
Benutzer / Tester
1. Nur der Post-Deployment
Test aus der Pipeline
heraus wird auf die neue
Version geleitet.
2. Erst danach wird die erste
Teilgruppe der Benutzer /
Tester auf umgeleitet.
3. Die alte Version wird offline
genommen
35
Show-Case: Zwitscher Big Picture
Link: https://github.com/qaware/cloud-native-zwitscher
37
Summary
Summary
38
■ Automate everything & Everything as Code
■ Ein Vendor Lock-In auf Cloud-Native Plattformen ist möglichst zu vermeiden und auch nicht
nötig.
■ Der initiale Aufwand, im Gegensatz zum „klassischen Weg“, ist höher. Durch einen
projektübergreifenden Einsatz aber auch wieder schnell negiert.
■ Die Fokussierung auf einfache und wenige Schnittstellen für den User haben sich bewährt.
39
IT-Probleme lösen.
Digitale Zukunft gestalten.
Mit Erfindergeist
und Handwerksstolz.
qaware.de/karriere | München | Mainz

Weitere ähnliche Inhalte

Was ist angesagt?

Kubernetes ist so viel mehr als ein Container Orchestrierer
Kubernetes ist so viel mehr als ein Container OrchestriererKubernetes ist so viel mehr als ein Container Orchestrierer
Kubernetes ist so viel mehr als ein Container OrchestriererQAware GmbH
 
Per Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API GatewaysPer Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API GatewaysQAware GmbH
 
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEuropeDer Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEuropeMario-Leander Reimer
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.QAware GmbH
 
OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!Tobias Schneck
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesQAware GmbH
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusOPEN KNOWLEDGE GmbH
 
Technische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte EntwicklungsperformanceTechnische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte EntwicklungsperformanceOPEN KNOWLEDGE GmbH
 
Quarkus Quickstart
Quarkus QuickstartQuarkus Quickstart
Quarkus QuickstartQAware GmbH
 
Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-LösungMit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-LösungQAware GmbH
 
Kaps - Es muss nicht immer Kubernetes sein
Kaps - Es muss nicht immer Kubernetes seinKaps - Es muss nicht immer Kubernetes sein
Kaps - Es muss nicht immer Kubernetes seinStephan Kaps
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerNicholas Dille
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15m1no
 
Title is loading ... Cache is cold.
Title is loading ... Cache is cold.Title is loading ... Cache is cold.
Title is loading ... Cache is cold.QAware GmbH
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightChristinaLerch1
 
Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Josef Adersberger
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHagilemethoden
 
Kaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment RoadmapKaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment RoadmapStephan Kaps
 
In den sicheren Hafen jax2020
In den sicheren Hafen jax2020In den sicheren Hafen jax2020
In den sicheren Hafen jax2020Stephan Kaps
 

Was ist angesagt? (20)

Kubernetes ist so viel mehr als ein Container Orchestrierer
Kubernetes ist so viel mehr als ein Container OrchestriererKubernetes ist so viel mehr als ein Container Orchestrierer
Kubernetes ist so viel mehr als ein Container Orchestrierer
 
Per Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API GatewaysPer Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API Gateways
 
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEuropeDer Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: Quarkus
 
Technische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte EntwicklungsperformanceTechnische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte Entwicklungsperformance
 
Quarkus Quickstart
Quarkus QuickstartQuarkus Quickstart
Quarkus Quickstart
 
Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-LösungMit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
 
Kaps - Es muss nicht immer Kubernetes sein
Kaps - Es muss nicht immer Kubernetes seinKaps - Es muss nicht immer Kubernetes sein
Kaps - Es muss nicht immer Kubernetes sein
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15
 
Title is loading ... Cache is cold.
Title is loading ... Cache is cold.Title is loading ... Cache is cold.
Title is loading ... Cache is cold.
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
 
Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 
Kaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment RoadmapKaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment Roadmap
 
In den sicheren Hafen jax2020
In den sicheren Hafen jax2020In den sicheren Hafen jax2020
In den sicheren Hafen jax2020
 

Ähnlich wie Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur

130605 buildfrei skalieren_fuer_bigdata
130605 buildfrei skalieren_fuer_bigdata130605 buildfrei skalieren_fuer_bigdata
130605 buildfrei skalieren_fuer_bigdataHenning Blohm
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationGWAVA
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsmatfsw
 
TFS 2015: Build und Release der neuen Generation
TFS 2015: Build und Release der neuen GenerationTFS 2015: Build und Release der neuen Generation
TFS 2015: Build und Release der neuen GenerationNico Orschel
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen....NET User Group Rhein-Neckar
 
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Bernd Zuther
 
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.2023Johannes Kleinlercher
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python DevelopmentMartin Christen
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareAndreas Schreiber
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
Nanoservice Architekturen
Nanoservice ArchitekturenNanoservice Architekturen
Nanoservice ArchitekturenLeo Lindhorst
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core ApplicationsRobin Sedlaczek
 
elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Gregor Biswanger
 
AdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveAdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveKlaus Bild
 

Ähnlich wie Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur (20)

130605 buildfrei skalieren_fuer_bigdata
130605 buildfrei skalieren_fuer_bigdata130605 buildfrei skalieren_fuer_bigdata
130605 buildfrei skalieren_fuer_bigdata
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOps
 
TFS 2015: Build und Release der neuen Generation
TFS 2015: Build und Release der neuen GenerationTFS 2015: Build und Release der neuen Generation
TFS 2015: Build und Release der neuen Generation
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
 
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
 
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
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python Development
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Nanoservice Architekturen
Nanoservice ArchitekturenNanoservice Architekturen
Nanoservice Architekturen
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
 
elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09
 
Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
AdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveAdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep Dive
 
Docker Workbench
Docker WorkbenchDocker Workbench
Docker Workbench
 

Mehr von QAware GmbH

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdfQAware GmbH
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...QAware GmbH
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzQAware GmbH
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureQAware GmbH
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!QAware GmbH
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightQAware GmbH
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAsQAware GmbH
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo QAware GmbH
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...QAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.QAware GmbH
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPQAware GmbH
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.QAware GmbH
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysQAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration TestsQAware GmbH
 

Mehr von QAware GmbH (20)

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile Architecture
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration Tests
 

Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur

  • 1. Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur Mainz, 09.05.2017 Josef Fuchshuber (@fuchshuber) & Tobias Placht (@knacht) QAware GmbH
  • 2. 2 Sorry für den Titel dieser Session: Denn wir sind nicht die Blah-Blah-Dudes. Quelle: http://dilbert.com/strip/2011-01-07
  • 3. 3 Josef Fuchshuber Cheftechnologe • Architekt & irgendwo zwischen Dev&Ops • #CloudNativeNerd Mail: josef.fuchshuber@qaware.de Twitter: @fuchshuber Tobias Placht Software Engineer • Java-Dev frisch von der Hochschule • #CommandLineNinja mit Faible für Sticker Mail: tobias.placht@qaware.de Twitter: @knacht
  • 4. 4 #GIFEE Google‘s (and Facebook‘s, Twitters‘s, Airbnb‘s, Netfix, …) Infrastructure For Everyone Else
  • 5. 5 CLOUD NATIVE APPLICATIONS HYPERSCALE Traffic, Data, Features ANTIFRAGILITÄT CONTINUOUS DELIVERY & DEVOPS OPEX SAVINGS (automation & utilization) DISRUPTINDUSTRIALIZE
  • 6. 6 BUILD AND COMPOSED AS MICROSERVICES PACKAGED AND DISTRIBUTED AS CONTAINERS DYNAMICALLY EXECUTED IN THE CLOUD 3KEYPRINCIPLES CLOUD NATIVE APPLICATIONS
  • 7. 7 Die Anatomie des Cloud Native Stack Cluster Virtualization Resources Cluster Scheduler Containers Cluster Orchestrator Applications Application Platform Cloud Native Apps Cluster Operation System Verwaltet Ressourcen für die Ausführung von Containers Stellt Ablauf- Umgebung und APIs für Apps bereit Führt Applikationen auf dem Cluster aus Entkoppelt von physischer Hardware
  • 8. Dev Build Test 8 Continuous Delivery: Build und Release Modell DEV OPS Micro- services Micro- services Release x.y.1 Release x.y.2
  • 9. Mit der DevOps-Brille betrachtet kann alles in einem Punkt zusammengefasst werden: Die Applikationen werden zu Betriebseinheiten. 9 ■ Microservices haben eine eigenständige Release-Einheit. ■ Container sind eine eigenständige Deployment-Einheit. ■ Container werden als isolierte Laufzeiteinheiten ausgeführt. ■ Container sind eine eigenständige Skalierungseinheit.
  • 10. 11 Our solution. And this is just one of many.
  • 11. 12 Die Werkzeugkette: Erfinderwerkstatt und Fließband. Die Erfinderwerkstatt Das Fließband Wissensarbeit und Kreativität Integration und Qualitätssicherung Fertig? Fertig!
  • 12. VCS Continuous Delivery - Cluster Test - Cluster Docker Registry IaaS: Scheduler Orchestrator Dev-1 Dev-2 Staging Build Push Analyze Deploy & Test Code push Pull
  • 14. Dynamic Build Nodes lösen zwei Probleme: 1. Problem: Statische Partitionierung 15 Master Java-7-Agent Java-8-Agent Project-A-Agent Project-B-Agent 0 5 10 15 20 25 0 5 10 15 20 25 Master Ressourcen-Pool 0 5 10 15 20 25
  • 15. 16 Dynamic Build Nodes lösen zwei Probleme: 2. Problem: Pets & Scale-Up Anti-Pattern: ■ Pflegt eure Jenkins-Nodes nicht wie Haustiere und macht sie nicht zu einem Individuum, bei dem keiner mehr die Konfiguration kennt: „Also auf genau diesem Server baut die Software“. ■ Erhöht nicht ständig die Ressourcen für einen Build-Node (z.B. bei paralleler Ausführung von Pipelines), sondern verwendet Ressourcen-Pool und mehr Build-Nodes. Besser: Ephemeral Build Nodes
  • 16. Mit dem Mesos-Plugin wird DC/OS zur Jenkins-Cloud. 17 ■ Dynamic Build Nodes werden vom Jenkins-Master „on-demand“ erzeugt. ■ Die Basis Build-Images der Nodes werden im Jenkins-Master zentral konfiguriert. ■ Build-Jobs können diese Basis-Images referenzieren. ■ Der Jenkins-Master übernimmt das Lifecycle-Management der Dynamic Build Nodes: ■ Startet vor einem Build-Job einen Container des referenzierten Docker-Images. Dabei kommuniziert der Master mit dem DC/OS Scheduler und Orchestrator. DC/OS Node und Ressourcen werden dabei automatisch zugewiesen. ■ Führt den Build-Job im Docker-Container aus. ■ Sammelt Build-Artefakte zusammen und kopiert sie zurück auf den Master. ■ Stoppt den Dynamic Build Node ■ Parallele Ausführung von Jobs ist durch die Isolierung der Docker-Container kein Problem. ■ Die Grenzen sind nur durch die Verfügbaren Ressourcen des DC/OS Clusters gegeben. Je nach IaaS-Provider können aber auch weitere Ressourcen hinzugefügt werden.
  • 17. 18 ■ Die Basis-Images können über eigene Build-Pipelines gebaut und veröffentlicht werden. ■ Infos zum Bau von eigenen Images: https://docs.mesosphere.com/service- docs/jenkins/custom-docker/
  • 19. Damit diese CD-Umgebung aufgesetzt und mit Leben befüllt werden kann, brauchen wir an allen Stellen Code aus dem VCS. 20 ■ Build-as-Code ■Maven, Gradle, … ■ Test-as-Code ■Unit-, Component-, Integration-, API-, UI-, Performance-Tests ■ Pipeline-as-Code ■Build-Pipeline per Jenkinsfile ■ Infrastructure-as-Code ■Docker, Terraform, Vagrant, Ansible, Marathon-Deployments
  • 21. 22 Beispiel: Bootstrapping unserer CD-Umgebung Infrastructure: • CoreOS VMs • DC/OS Nodes (Master, Private, Public) • NFS Platform: • Jenkins • SonarQube (mit Datenbank) • NGINX Reverse Proxy • Artifactory Services: • Marathon Event Subscriber • OpsBot Terraform Marathon- Deployments Marathon- Deployments
  • 22. Was macht der Bootstrapping Prozess? 23 <<Infrastructure>> Bootstrap Node <<Infrastructure>> Master <<Public Node>> <<Private Node>> Node1 <<Private Node>> Node2 <<Private Node>> Node3 NFS Marathon-API (HTTPS) UIs&APIs (HTTPS) OPS DEV NGINX Proxy APP APP APP Jenkins SonarQube Artifactory Event Subscriber OpsBot
  • 23.
  • 24. 25 Self service & Blueprints
  • 25. Damit Entwickler schnell arbeitsfähig sind, sind Generatoren und Blueprints wichtig (1/2). 26 ChatBots sind eine Lösung zur intuitiven Steuerung von Generatoren. ■ Direkte Integration in HipChat / Slack / Mattermost ■ Aufträge an den OpsBot werden einfach per Message gestellt ■ Feedback von CI/CD Ereignissen und Aufträgen kommen als Antwort zurück
  • 26. Damit Entwickler schnell arbeitsfähig sind, sind Generatoren und Blueprints wichtig (2/2). 27 Blueprints & Templates: ■ Die Microservice Build-Pipelines in einem Projekt sind sich sehr ähnlich. ■ Blueprints und Templates geben einen Rahmen vor und schaffen implizit Konventionen. ■ Beispiele: ■Durch die Verwendung des Pipeline Multibranch lugins wird für jeden Branch automatisch eine eigene Pipeline angelegt. ■Identische Anbindung / Integration von Plattform- Komponenten (z.B. SonarQube, Artifactory)
  • 27.
  • 28. 29 Advanced & Enterprise Topics • Diagnosability • CD für CD • Deployments
  • 29. Nicht nur unsere Cloud Native Anwendungen müssen diagnostizierbar sein, sondern auch unsere CD-Umgebung. (1/2) 30 Monitoring mit Prometheus: ■ Prometheus kann für das Monitoring der CD-Plattform sowie für das Monitoring der Applikationsumgebungen benutzt werden. ■ Prometheus kann Marathon als Service Discovery nutzen. ■ Client Libraries zur Instrumentierung sind für alle wichtigen Programmiersprachen vorhanden. ■ Dashboards können einfach mit Grafana angelegt werden. ■ Alert-Manager kann Störungen per E-Mail, Pager-Duty, HipChat, Slack … melden.
  • 30. Nicht nur unsere Cloud Native Anwendungen müssen diagnostizierbar sein, sondern auch unsere CD-Umgebung. (2/2) 31 Log-File Auswertung mit ELK/EFK: ■ Elasticsearch als DB und Kibana für Dashboards und Auswertungen ■ Auch hier sollte die Plattform (DC/OS, Jenkins, …) und die Applikationsumgebungen integriert werden. ■ Für Docker Container, die auf stdout loggen, können Log-Driver (z.B. Fluentd) konfiguriert werden. ■ Log-Files in den Containern können per Logstash & Filebeat integriert werden.
  • 31. Continuous Delivery für Continuous Delivery 32 ■ Auch Änderungen und Erweiterungen der CD Plattform müssen getestet werden. ■ Durch den „Everything-as-Code“ Ansatz ist das aber sehr einfach: ■Komplette Klone der Testumgebung (z.B. für Infrastruktur-Tests) können unter einer Stunde instanziiert werden. ■Build-Plattform kann für Tests (z.B. bei Jenkins-Update) als weitere Instanz in DC/OS angelegt werden. Plattform (Prod) Plattform (Test) Plattform (Prod)
  • 32. Wie kommen die Microservices in die Testumgebung? (1/2) 33 ■ Das ist projektspezifisch, aber alles was die Zielumgebung (DC/OS) ermöglicht ist erlaubt. Direkt über Gradle-Tasks
  • 33. Wie kommen die Microservices in die Testumgebung? (2/2) 34 ■ Canary-Release mit Vamp (Very Awesome Microservices Platform) Alte Version Neue Version Router Deployment-Test Benutzer / Tester 1. Nur der Post-Deployment Test aus der Pipeline heraus wird auf die neue Version geleitet. 2. Erst danach wird die erste Teilgruppe der Benutzer / Tester auf umgeleitet. 3. Die alte Version wird offline genommen
  • 34. 35 Show-Case: Zwitscher Big Picture Link: https://github.com/qaware/cloud-native-zwitscher
  • 35.
  • 37. Summary 38 ■ Automate everything & Everything as Code ■ Ein Vendor Lock-In auf Cloud-Native Plattformen ist möglichst zu vermeiden und auch nicht nötig. ■ Der initiale Aufwand, im Gegensatz zum „klassischen Weg“, ist höher. Durch einen projektübergreifenden Einsatz aber auch wieder schnell negiert. ■ Die Fokussierung auf einfache und wenige Schnittstellen für den User haben sich bewährt.
  • 38. 39 IT-Probleme lösen. Digitale Zukunft gestalten. Mit Erfindergeist und Handwerksstolz. qaware.de/karriere | München | Mainz