SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Architektur und Automatisierung
als Enabler für DevOps
1. DevOps Meetup Bern, 29. Mai 2017
Matthias Fritschi, Software Architect & Consultant, avega IT AG
Themen
■ Was haben Architektur & Automation mit DevOps zu tun?
■ Case Study I: Online- & Cross-Channel Systems Dev 🚧 Ops
■ Case Study II: Customer Information System Dev 💚 Ops
■ Fazit
Das DevOps-
Modell für
diesen Talk
„You Can‘t Buy DevOps“
... aber es gibt gewisse Enabler welche die Transformation begünstigen
Zusammenarbeit
Architektur
Automation
Kurze
Feedbackzyklen
Plattformen
SystemdenkenOrganisation
Gemeinsame
Verantwortung
Technologie Continuous
Everything
Kultur
Transparenz
„You Can‘t Buy DevOps“
... aber es gibt gewisse Enabler welche die Transformation begünstigen
Architektur Automation
Architektur
As I observed, large organizations using DevOps “have thousands of
developers, but their architecture and practices enable small teams
to still be incredibly productive, as if they were a startup“.
-- Randy Shoup, A Director Of Engineering At Google
[...] In this scenario, everyone feels productive - the architecture allows
small teams to work safely and architecturally decoupled from the
work of other teams, using self-service platforms that leverage the
collective experience of Operations and Information Security.
-- Gene Kim, „The DevOps Handbook“
Cloud-Native & 12-factor Apps
12 Factor Apps
• Eine versionierte Codebasis
• Explizite Deklaration von Abhängigkeiten
• Konfiguration als Teil der Umgebung
• Backends als Ressourcen behandeln
• Build, Release, Run - Separiert
• Prozesse sind Stateless
• Service-Exposition über Ports
• Skalierung übers Prozessmodell
• „Wegwerf“-Prozesse: Kurzer Startup/Shutdown
• Dev & Prod gleich aufgesetzt
• Logs als Event-Streams
• Admin-Tasks als einmal-Prozess
Cloud-Native & 12-factor Apps
Infrastruktur innert
Minuten aufgesetzt
Infrastruktur-Provisionierung und
Konfiguration automatisierbar
1 Binary – viele Umgebungen
Schnelleres
Testumgebungssetup
Konfiguration, Infrastruktur versioniert
Skalierbarkeit
Parität Dev/Prod
Standardisierung
Unterbruchsfreies
Deployment
Modularisierung
➡
Modularisierung
Einfacheres Rollback
Unabhängige Releases
Wartbare, fokussierte Tests
Schnellere Builds & Tests
Forcierte Entkopplung
Unabhängige Skalierbarkeit
Separater Lifecycle
Resilienz
Komplexität managen
Automation
“Speed is the ultimate defense”
-- Elon Musk on being faster than anyone else
Automation
“Automate everything and make those parts
that can’t be automated a self-service”
-- Gregor Hohpe on how corporate IT can remain competive
Automation Statische Code-Analyse, Coverage
Continuous Integration
Test-Automation
Release-Automation
(Branching, Tagging, Artefakte)
Deployment-Automation
Infrastructure-as-Code
Automatisiertes Mergen
Monitoring, Alerting,
Log Aggregation
Transparente aktuelle KPIs
für Dev & Ops
Case Study I
Online- & Cross-Channel Systems
Kontext
☁➡
➡
Architektur
■ Architektur-Initiative gestartet für Modularisierung, Standardisierung,
Cloud-Transformation (Container/PaaS) der Online-Systeme mit dem
langfristigen Ziel, DevOps & Continous Deployment einzuführen
❶
Blueprint für Anwendungen
basierend auf 12-factor Apps
❷ Gap-Analyse Ist/Soll à
Migrationsplan
❸ Umsetzung
Architektur
■ Herausforderung Continous Deployment & Trennung Release/Deployment:
Starke Abhängigkeiten durch nicht evolutions-/versionsfähige Schnittstellen
🔒
Automation
■ Beschleunigung des Infrastruktur-Setups von Monaten zu Minuten
Automation
■ Beschleunigung des Infrastruktur-Setups von Monaten zu Minuten
Projektdauer / Zeit bis Infastruktur produktiv
6 Monate
Automation
■ Beschleunigung des Infrastruktur-Setups von Monaten zu Minuten
Zeitdauer für Infrastruktur-Setup
Minuten
Projektdauer / Zeit bis Infastruktur produktiv
6 Monate
Automation
■ End-to-End Business Process Monitoring entlang des User Journeys für Dev & Ops
& & & &➡ ➡ ➡
⏱💥✅
Lessons Learned
■ Viel schnellere Provisionierung von Infrastruktur und OS mit dynamischer
Infrastruktur & Container
■ Modularisierung bringt Flexibilität und Autonomie, aber Komplexität muss
gemanagt werden
■ Gemeinsame Tools, Prozesse führen zu gemeinsamer Verantwortung
Case Study II
Transportation Information System
Kontext
Deployment von neuen Features ohne Downtime
Speed: Beispiel Bugfix, innert 2 Stunden von Discovery bis in Produktion
Technologie:
Plattform-/Service-basiert
Architektur
■ Cloud Native /
12-factor App
■ Modulare
Services
Architektur
■ Cloud Native /
12-factor App
■ Modulare
Services
Separat Verteilbare
Services
Architektur
■ Cloud Native /
12-factor App
■ Modulare
Services
Stateless Services,
Horizontal skalierbar
Architektur
■ Cloud Native /
12-factor App
■ Modulare
Services
Stateful TCP à HTTP
(Load Balanced)
Architektur
■ Cloud Native /
12-factor App
■ Modulare
Services
Rückwärtskompatible
Interfaces (JSON, iterative
Changes, Versionierung)
Architektur
■ Cloud Native /
12-factor App
■ Modulare
Services
Resilienz
(Retry, Timeout,
Healthcheck, ...)
Architektur
■ Cloud Native /
12-factor App
■ Modulare
Services
Gemeinsame Tools für
Dev & Ops
Automation
■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der
automatisierten Deployment Pipeline
Statische Code-Analyse zeigt Testlücken und Technical Debt auf
Automation
■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der
automatisierten Deployment Pipeline
Änderungen werden nach Pull Request gemergt, Build & Unit Tests getriggert
Automation
■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der
automatisierten Deployment Pipeline
Für jedes Feature werden Integrations- und/oder Feature-Tests entwickelt
und laufen in jeder Pipeline-Instanz durch
Automation
■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der
automatisierten Deployment Pipeline
Binaries werden 1x gebaut und von Test bis Produktion 1:1 verwendet
Automation
■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der
automatisierten Deployment Pipeline
Die Laufzeitumgebung ist als Docker-Container versioniert und erhält
die Umgebungskonfiguration zur Laufzeit (1:1 selber Container von
Test bis Produktion)
Automation
■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der
automatisierten Deployment Pipeline
Rollendes Deployment der neuen Version automatisch & kontinuierlich
auf die Entwicklungsumgebung. Nach hochfahren des Containers wird
geprüft ob die Anwendung korrekt läuft, sonst wird das Deployment
abgebrochen. Die alte Version wird nach & nach heruntergefahren.
Automation
■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der
automatisierten Deployment Pipeline
Deployment-Automatisierung auf Staging und Produktion gleich wie
auf Development. Je nach Bedarf manuelle Q/A-Checks auf Staging.
Trigger auf Staging und Prod noch manuell. Keine Downtime durch
rollendes Deployment, tagsüber jederzeit möglich.
Automation
■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der
automatisierten Deployment Pipeline
Monitoring und Log-Aggregation als SaaS-Lösung bezogen.
Geringer Aufwand fürs Entwicklungsteam, trotzdem
gute UX für Dev & Ops.
Automation
■ Infrastructure as Code
Ops kann die Laufzeitumgebung mit Limiten, Verrechnung
etc. im Self-Service einrichten
Automation
■ Infrastructure as Code
Dev/Ops beschreiben nötige Endpoints, Skalierung,
Network, Konfiguration, Container-Builds als versionierte
Deklaration (OpenShift & Docker).
Automation
■ Infrastructure as Code
Infrastruktur-Setup automatisiert mittels Deklaration. Jede
Umgebung erhält ihre spezifische Konfiguration, das
restliche Setup ist identisch von Entwicklung bis Produktion.
Automation
■ Infrastructure as Code
Initiales Setup des gesamten Prozesses mit Lernkurve in 2
Tagen. Setup einer zusätzlichen Anwendung in 2 Stunden.
Lessons Learned
■ Architektur und Automatisierung machen schnelle, kleine Deployments
tagsüber ohne Downtime möglich
■ Monitoring/Logging als SaaS-Lösung eingesetzt und mit wenig Aufwand
integriert – gemeinsame Tools für Dev & Ops
■ Cloud-Plattform ermöglicht die Konzentration auf fachliche Entwicklung
und stellt Ops standardisierte Infrastruktur zur Verfügung
Fazit
■ Die Vorteile von DevOps lassen sich nur mit konsequenter Automatisierung
wirklich realisieren – Refactor your Processes
■ Die Architektur muss diese Automatisierung erlauben und unterstützen

Weitere ähnliche Inhalte

Was ist angesagt?

Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...Jürgen Gutsch
 
Cloud Native Computing & DevOps
Cloud Native Computing & DevOpsCloud Native Computing & DevOps
Cloud Native Computing & DevOpsAarno Aukia
 
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
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudAarno Aukia
 
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/DockerAlternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/DockerOPITZ CONSULTING Deutschland
 
DevOps - Mehr Geschwindigkeit auf der Schiene
DevOps - Mehr Geschwindigkeit auf der SchieneDevOps - Mehr Geschwindigkeit auf der Schiene
DevOps - Mehr Geschwindigkeit auf der SchieneVorname Nachname
 
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
 
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...Marc Müller
 
Devops ohne root
Devops ohne rootDevops ohne root
Devops ohne rootcusy GmbH
 
Kaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment RoadmapKaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment RoadmapStephan Kaps
 
Source2Image - Vom Code zum fertigen Image mit einer Build-Chain basierend au...
Source2Image - Vom Code zum fertigen Image mit einer Build-Chain basierend au...Source2Image - Vom Code zum fertigen Image mit einer Build-Chain basierend au...
Source2Image - Vom Code zum fertigen Image mit einer Build-Chain basierend au...Matthias Fauter
 
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
 
Warum gRPC? – und wie in Python implementieren?
Warum gRPC? – und wie in Python implementieren?Warum gRPC? – und wie in Python implementieren?
Warum gRPC? – und wie in Python implementieren?cusy GmbH
 
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
 
Webcast Azure Integration Migration - Von BizTalk in die Cloud
Webcast Azure Integration Migration - Von BizTalk in die CloudWebcast Azure Integration Migration - Von BizTalk in die Cloud
Webcast Azure Integration Migration - Von BizTalk in die CloudQUIBIQ Hamburg
 
Cusy Developer-Baukasten
Cusy Developer-BaukastenCusy Developer-Baukasten
Cusy Developer-Baukastencusy 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
 

Was ist angesagt? (20)

Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
 
Cloud Native Computing & DevOps
Cloud Native Computing & DevOpsCloud Native Computing & DevOps
Cloud Native Computing & DevOps
 
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
 
Cloud-Native ohne Vendor Lock-in mit Kubernetes
Cloud-Native ohne Vendor Lock-in mit KubernetesCloud-Native ohne Vendor Lock-in mit Kubernetes
Cloud-Native ohne Vendor Lock-in mit Kubernetes
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
 
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/DockerAlternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOps
 
DevOps - Mehr Geschwindigkeit auf der Schiene
DevOps - Mehr Geschwindigkeit auf der SchieneDevOps - Mehr Geschwindigkeit auf der Schiene
DevOps - Mehr Geschwindigkeit auf der Schiene
 
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
 
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
 
Devops ohne root
Devops ohne rootDevops ohne root
Devops ohne root
 
Kaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment RoadmapKaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment Roadmap
 
Source2Image - Vom Code zum fertigen Image mit einer Build-Chain basierend au...
Source2Image - Vom Code zum fertigen Image mit einer Build-Chain basierend au...Source2Image - Vom Code zum fertigen Image mit einer Build-Chain basierend au...
Source2Image - Vom Code zum fertigen Image mit einer Build-Chain basierend au...
 
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
 
Gestern OWB, heute ODI
Gestern OWB, heute ODIGestern OWB, heute ODI
Gestern OWB, heute ODI
 
Warum gRPC? – und wie in Python implementieren?
Warum gRPC? – und wie in Python implementieren?Warum gRPC? – und wie in Python implementieren?
Warum gRPC? – und wie in Python implementieren?
 
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 Normal
 
Webcast Azure Integration Migration - Von BizTalk in die Cloud
Webcast Azure Integration Migration - Von BizTalk in die CloudWebcast Azure Integration Migration - Von BizTalk in die Cloud
Webcast Azure Integration Migration - Von BizTalk in die Cloud
 
Cusy Developer-Baukasten
Cusy Developer-BaukastenCusy Developer-Baukasten
Cusy Developer-Baukasten
 
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
 

Ähnlich wie Architektur und Automation als Enabler für DevOps

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
 
Continuous Delivery as a Way of Life
Continuous Delivery as a Way of LifeContinuous Delivery as a Way of Life
Continuous Delivery as a Way of LifeKremer Consulting
 
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 CloudCANCOM
 
CLOUDSERVICES FÜR ISVs
CLOUDSERVICES FÜR ISVsCLOUDSERVICES FÜR ISVs
CLOUDSERVICES FÜR ISVsacentrix GmbH
 
Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...
Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...
Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...Digicomp Academy AG
 
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 EvolutionQAware GmbH
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
Modernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesenModernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesenenpit GmbH & Co. KG
 
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
 
Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013NETWAYS
 
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“OPEN KNOWLEDGE GmbH
 
Migration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformMigration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformQAware GmbH
 
Serverless Application Framework
Serverless Application FrameworkServerless Application Framework
Serverless Application FrameworkBATbern
 
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzenAWS Germany
 
Wir arbeiten in der Cloud – eine Herausforderung für das IT Management?
Wir arbeiten in der Cloud – eine Herausforderung für das IT Management?Wir arbeiten in der Cloud – eine Herausforderung für das IT Management?
Wir arbeiten in der Cloud – eine Herausforderung für das IT Management?Aarno Aukia
 
Basta 2016 - Test- und Releaseumgebungen in der Cloud
Basta 2016 - Test- und Releaseumgebungen in der CloudBasta 2016 - Test- und Releaseumgebungen in der Cloud
Basta 2016 - Test- und Releaseumgebungen in der CloudMarc Müller
 
Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114Georg Klauser
 
Nanoservice Architekturen
Nanoservice ArchitekturenNanoservice Architekturen
Nanoservice ArchitekturenLeo Lindhorst
 
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
 

Ähnlich wie Architektur und Automation als Enabler für DevOps (20)

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.
 
Continuous Delivery as a Way of Life
Continuous Delivery as a Way of LifeContinuous Delivery as a Way of Life
Continuous Delivery as a Way of Life
 
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
 
CLOUDSERVICES FÜR ISVs
CLOUDSERVICES FÜR ISVsCLOUDSERVICES FÜR ISVs
CLOUDSERVICES FÜR ISVs
 
Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...
Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...
Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...
 
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
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Modernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesenModernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesen
 
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
 
Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013
 
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
 
Migration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformMigration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud Plattform
 
Serverless Application Framework
Serverless Application FrameworkServerless Application Framework
Serverless Application Framework
 
Citrix Day 2014: APPDNA
Citrix Day 2014: APPDNACitrix Day 2014: APPDNA
Citrix Day 2014: APPDNA
 
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
 
Wir arbeiten in der Cloud – eine Herausforderung für das IT Management?
Wir arbeiten in der Cloud – eine Herausforderung für das IT Management?Wir arbeiten in der Cloud – eine Herausforderung für das IT Management?
Wir arbeiten in der Cloud – eine Herausforderung für das IT Management?
 
Basta 2016 - Test- und Releaseumgebungen in der Cloud
Basta 2016 - Test- und Releaseumgebungen in der CloudBasta 2016 - Test- und Releaseumgebungen in der Cloud
Basta 2016 - Test- und Releaseumgebungen in der Cloud
 
Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114
 
Nanoservice Architekturen
Nanoservice ArchitekturenNanoservice Architekturen
Nanoservice Architekturen
 
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
 

Architektur und Automation als Enabler für DevOps

  • 1. Architektur und Automatisierung als Enabler für DevOps 1. DevOps Meetup Bern, 29. Mai 2017 Matthias Fritschi, Software Architect & Consultant, avega IT AG
  • 2. Themen ■ Was haben Architektur & Automation mit DevOps zu tun? ■ Case Study I: Online- & Cross-Channel Systems Dev 🚧 Ops ■ Case Study II: Customer Information System Dev 💚 Ops ■ Fazit
  • 4. „You Can‘t Buy DevOps“ ... aber es gibt gewisse Enabler welche die Transformation begünstigen Zusammenarbeit Architektur Automation Kurze Feedbackzyklen Plattformen SystemdenkenOrganisation Gemeinsame Verantwortung Technologie Continuous Everything Kultur Transparenz
  • 5. „You Can‘t Buy DevOps“ ... aber es gibt gewisse Enabler welche die Transformation begünstigen Architektur Automation
  • 6. Architektur As I observed, large organizations using DevOps “have thousands of developers, but their architecture and practices enable small teams to still be incredibly productive, as if they were a startup“. -- Randy Shoup, A Director Of Engineering At Google [...] In this scenario, everyone feels productive - the architecture allows small teams to work safely and architecturally decoupled from the work of other teams, using self-service platforms that leverage the collective experience of Operations and Information Security. -- Gene Kim, „The DevOps Handbook“
  • 7. Cloud-Native & 12-factor Apps 12 Factor Apps • Eine versionierte Codebasis • Explizite Deklaration von Abhängigkeiten • Konfiguration als Teil der Umgebung • Backends als Ressourcen behandeln • Build, Release, Run - Separiert • Prozesse sind Stateless • Service-Exposition über Ports • Skalierung übers Prozessmodell • „Wegwerf“-Prozesse: Kurzer Startup/Shutdown • Dev & Prod gleich aufgesetzt • Logs als Event-Streams • Admin-Tasks als einmal-Prozess
  • 8. Cloud-Native & 12-factor Apps Infrastruktur innert Minuten aufgesetzt Infrastruktur-Provisionierung und Konfiguration automatisierbar 1 Binary – viele Umgebungen Schnelleres Testumgebungssetup Konfiguration, Infrastruktur versioniert Skalierbarkeit Parität Dev/Prod Standardisierung Unterbruchsfreies Deployment
  • 10. Modularisierung Einfacheres Rollback Unabhängige Releases Wartbare, fokussierte Tests Schnellere Builds & Tests Forcierte Entkopplung Unabhängige Skalierbarkeit Separater Lifecycle Resilienz Komplexität managen
  • 11. Automation “Speed is the ultimate defense” -- Elon Musk on being faster than anyone else
  • 12. Automation “Automate everything and make those parts that can’t be automated a self-service” -- Gregor Hohpe on how corporate IT can remain competive
  • 13. Automation Statische Code-Analyse, Coverage Continuous Integration Test-Automation Release-Automation (Branching, Tagging, Artefakte) Deployment-Automation Infrastructure-as-Code Automatisiertes Mergen Monitoring, Alerting, Log Aggregation Transparente aktuelle KPIs für Dev & Ops
  • 14. Case Study I Online- & Cross-Channel Systems
  • 16. Architektur ■ Architektur-Initiative gestartet für Modularisierung, Standardisierung, Cloud-Transformation (Container/PaaS) der Online-Systeme mit dem langfristigen Ziel, DevOps & Continous Deployment einzuführen ❶ Blueprint für Anwendungen basierend auf 12-factor Apps ❷ Gap-Analyse Ist/Soll à Migrationsplan ❸ Umsetzung
  • 17. Architektur ■ Herausforderung Continous Deployment & Trennung Release/Deployment: Starke Abhängigkeiten durch nicht evolutions-/versionsfähige Schnittstellen 🔒
  • 18. Automation ■ Beschleunigung des Infrastruktur-Setups von Monaten zu Minuten
  • 19. Automation ■ Beschleunigung des Infrastruktur-Setups von Monaten zu Minuten Projektdauer / Zeit bis Infastruktur produktiv 6 Monate
  • 20. Automation ■ Beschleunigung des Infrastruktur-Setups von Monaten zu Minuten Zeitdauer für Infrastruktur-Setup Minuten Projektdauer / Zeit bis Infastruktur produktiv 6 Monate
  • 21. Automation ■ End-to-End Business Process Monitoring entlang des User Journeys für Dev & Ops & & & &➡ ➡ ➡ ⏱💥✅
  • 22. Lessons Learned ■ Viel schnellere Provisionierung von Infrastruktur und OS mit dynamischer Infrastruktur & Container ■ Modularisierung bringt Flexibilität und Autonomie, aber Komplexität muss gemanagt werden ■ Gemeinsame Tools, Prozesse führen zu gemeinsamer Verantwortung
  • 23. Case Study II Transportation Information System
  • 24. Kontext Deployment von neuen Features ohne Downtime Speed: Beispiel Bugfix, innert 2 Stunden von Discovery bis in Produktion Technologie: Plattform-/Service-basiert
  • 25. Architektur ■ Cloud Native / 12-factor App ■ Modulare Services
  • 26. Architektur ■ Cloud Native / 12-factor App ■ Modulare Services Separat Verteilbare Services
  • 27. Architektur ■ Cloud Native / 12-factor App ■ Modulare Services Stateless Services, Horizontal skalierbar
  • 28. Architektur ■ Cloud Native / 12-factor App ■ Modulare Services Stateful TCP à HTTP (Load Balanced)
  • 29. Architektur ■ Cloud Native / 12-factor App ■ Modulare Services Rückwärtskompatible Interfaces (JSON, iterative Changes, Versionierung)
  • 30. Architektur ■ Cloud Native / 12-factor App ■ Modulare Services Resilienz (Retry, Timeout, Healthcheck, ...)
  • 31. Architektur ■ Cloud Native / 12-factor App ■ Modulare Services Gemeinsame Tools für Dev & Ops
  • 32. Automation ■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der automatisierten Deployment Pipeline Statische Code-Analyse zeigt Testlücken und Technical Debt auf
  • 33. Automation ■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der automatisierten Deployment Pipeline Änderungen werden nach Pull Request gemergt, Build & Unit Tests getriggert
  • 34. Automation ■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der automatisierten Deployment Pipeline Für jedes Feature werden Integrations- und/oder Feature-Tests entwickelt und laufen in jeder Pipeline-Instanz durch
  • 35. Automation ■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der automatisierten Deployment Pipeline Binaries werden 1x gebaut und von Test bis Produktion 1:1 verwendet
  • 36. Automation ■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der automatisierten Deployment Pipeline Die Laufzeitumgebung ist als Docker-Container versioniert und erhält die Umgebungskonfiguration zur Laufzeit (1:1 selber Container von Test bis Produktion)
  • 37. Automation ■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der automatisierten Deployment Pipeline Rollendes Deployment der neuen Version automatisch & kontinuierlich auf die Entwicklungsumgebung. Nach hochfahren des Containers wird geprüft ob die Anwendung korrekt läuft, sonst wird das Deployment abgebrochen. Die alte Version wird nach & nach heruntergefahren.
  • 38. Automation ■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der automatisierten Deployment Pipeline Deployment-Automatisierung auf Staging und Produktion gleich wie auf Development. Je nach Bedarf manuelle Q/A-Checks auf Staging. Trigger auf Staging und Prod noch manuell. Keine Downtime durch rollendes Deployment, tagsüber jederzeit möglich.
  • 39. Automation ■ Standardisierte PaaS-Cloud-Infrastruktur ermöglichte den Aufbau der automatisierten Deployment Pipeline Monitoring und Log-Aggregation als SaaS-Lösung bezogen. Geringer Aufwand fürs Entwicklungsteam, trotzdem gute UX für Dev & Ops.
  • 40. Automation ■ Infrastructure as Code Ops kann die Laufzeitumgebung mit Limiten, Verrechnung etc. im Self-Service einrichten
  • 41. Automation ■ Infrastructure as Code Dev/Ops beschreiben nötige Endpoints, Skalierung, Network, Konfiguration, Container-Builds als versionierte Deklaration (OpenShift & Docker).
  • 42. Automation ■ Infrastructure as Code Infrastruktur-Setup automatisiert mittels Deklaration. Jede Umgebung erhält ihre spezifische Konfiguration, das restliche Setup ist identisch von Entwicklung bis Produktion.
  • 43. Automation ■ Infrastructure as Code Initiales Setup des gesamten Prozesses mit Lernkurve in 2 Tagen. Setup einer zusätzlichen Anwendung in 2 Stunden.
  • 44. Lessons Learned ■ Architektur und Automatisierung machen schnelle, kleine Deployments tagsüber ohne Downtime möglich ■ Monitoring/Logging als SaaS-Lösung eingesetzt und mit wenig Aufwand integriert – gemeinsame Tools für Dev & Ops ■ Cloud-Plattform ermöglicht die Konzentration auf fachliche Entwicklung und stellt Ops standardisierte Infrastruktur zur Verfügung
  • 45. Fazit ■ Die Vorteile von DevOps lassen sich nur mit konsequenter Automatisierung wirklich realisieren – Refactor your Processes ■ Die Architektur muss diese Automatisierung erlauben und unterstützen