SlideShare ist ein Scribd-Unternehmen logo

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

JAX 2017, Mainz: Vortrag von Josef Fuchshuber (@fuchshuber, Cheftechnologe bei QAware) und Tobias Placht (@knacht, Software Ingenieur bei QAware). Abstract: Wie oft kannst du ein neues Feature releasen? Jede Woche? Jeden Tag? Jede Stunde? Continuous Delivery ist einer der wesentlichen Treiber, warum wir Cloud-native Anwendung bauen. Für Software-driven Organisationen ist das der Schlüssel für eine sicherere, stabilere Software bei minimiertem Risiko und kurzen Feedbackschleifen. Die Herausforderung dabei ist, aus jeder Codeänderung möglichst schnell eine lauffähige und gründlich getestete Software zu machen. Das ist für viele Firmen ein wesentlicher Wettbewerbsvorteil. Wir zeigen in diesem Vortrag eine Werkzeugkette, mit der Continuous Delivery nicht nur für Cloud-native Anwendungen, sondern auch auf Cloud-nativer Infrastruktur möglich ist. Ganz im Gedanken von „Everything is Code“ betrachten wir dabei nicht nur das Bauen und Testen von Software, sondern auch die Automatisierung der Infrastrukturbereitstellung, der Deployments und Roll-outs. Dabei treffen alte Bekannte (z.B. Jenkins, SonarQube) auf Cloud-Computing-Technologien wie z.B. Docker für Betriebssystemvirtualisierung und DC/OS für das Clustermanagement.

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

Recomendados

A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfMario-Leander Reimer
 
In-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und KubernetesIn-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und KubernetesQAware GmbH
 
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8sKontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8sQAware GmbH
 
Die Leichtigkeit des Seins: Bindings für Eclipse SmartHome entwickeln
Die Leichtigkeit des Seins: Bindings für Eclipse SmartHome entwickelnDie Leichtigkeit des Seins: Bindings für Eclipse SmartHome entwickeln
Die Leichtigkeit des Seins: Bindings für Eclipse SmartHome entwickelnQAware GmbH
 
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017Mario-Leander Reimer
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalQAware GmbH
 
Making the internet faster HTTP/3 und QUIC
Making the internet faster HTTP/3 und QUICMaking the internet faster HTTP/3 und QUIC
Making the internet faster HTTP/3 und QUICQAware GmbH
 
Der Status Quo des Chaos Engineerings
Der Status Quo des Chaos EngineeringsDer Status Quo des Chaos Engineerings
Der Status Quo des Chaos EngineeringsQAware GmbH
 

Más contenido relacionado

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

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
 
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
 
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
 
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-ClusterAus 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-ClusterQAware GmbH
 
Cloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniertCloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniertQAware GmbH
 
Policy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy AgentPolicy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy AgentQAware GmbH
 
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
 
Security Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisSecurity Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisQAware GmbH
 
Die nächsten 100 Microservices
Die nächsten 100 MicroservicesDie nächsten 100 Microservices
Die nächsten 100 MicroservicesQAware GmbH
 

Mehr von QAware GmbH (20)

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!
 
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
 
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
 
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-ClusterAus 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
 
Cloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniertCloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniert
 
Policy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy AgentPolicy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy Agent
 
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
 
Security Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisSecurity Lab: OIDC in der Praxis
Security Lab: OIDC in der Praxis
 
Die nächsten 100 Microservices
Die nächsten 100 MicroservicesDie nächsten 100 Microservices
Die nächsten 100 Microservices
 

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
  • 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)
  • 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
  • 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