DevOps ist derzeit in aller Munde und das IT-Buzzword schlecht hin. Doch was verbirgt sich genau hinter diesem Begriff? Es ist definitiv viel mehr als nur die verbesserte Zusammenarbeit zwischen Entwicklung und Betrieb. Agile Planung, kurze Releasezyklen, Automatisierung und das kontinuierliche Feedback sind zentrale Themen, mit denen sich jedes Entwicklungsteam heutzutage auseinandersetzen muss. Der Vortrag zeigt die Anforderungen und Herausforderungen an einen modernen und effizienten DevOps Prozess auf und untermauert diese mit Praxisbeispielen aus unserer langjährigen Beratertätigkeit.
8. „Schon bis 2017 wird jedes vierte
Unternehmen seine derzeitige
Marktposition aus Gründen
„Digitaler Inkompetenz“
verlieren.“ (Gartner)
9. 9
Was ist DevOps?
Bildquelle: https://en.wikipedia.org/wiki/Blind_men_and_an_elephant
Team
Automation
Development und
Operations
Zusammenarbeit
Schnelle und
kleinere Releases
Feedback aus
der Produktion
10. „if you can't measure it,
you can't manage it”
(Robert S. Kaplan)
24. 24
Enterprise Alignment and Team Autonomy
Organization
Roles
Teams
Cadence
Taxonomy
Plan
Practices
Alignment
Autonomy
Vision
Epics
Features
PBI / Bugs
Tasks
27. 27
Viele Deployments
verursachen Schmerzen, wenn
es manuell durchgeführt wird!
ein komplexer Monolith in einem Schritt
ausgerollt werden muss!
zu viele verschiedene Versionsstände
unterhalten werden müssen!
Wir bekämpfen den Schmerz in dem wir
Den kompletten Prozess
automatisieren
Den Monolith zerlegen
Microservices
Häufige kleine Releases einer Version,
Abstufung mittels Feature Flags
31. 31
Microservice?
Encapsulation
Automation
Business Domain Centric
Decentralization
Indepence
Fail-Safe
Observable
Scalable
Ein Teil einer Anwendung, der
unabhängig deployed werden kann.
«Do ONE thing and do
it good»
34. 34
Feature Branch vs Feature Toggle
Feature Branch
Komplette Isolierung
Eher komplexe Integration / Merge
Feature Toggle
Schalter in der Software
Entwicklung im selben Branch
38. Automatisierung ist der Schlüssel zur
Effizienzsteigerung!
...darum sollte diese so einfach wie möglich
implementiert werden können.
39.
40. 40
Package Management
Ziel:
Kleine isolierte Repositories
Nur Source-Code, keine Binärdateien
Umsetzung:
Artefakte als versionierte Pakete verwalten (z.B. Nuget)
Firmen- oder projektspezifische Feeds
Integration in Build Automatisierung
44. 44
Tools für Test Automatisierung
UI
Service
Unit / Component
Quelle: Mike Cohn
Unit Testing
Framework +
Isolation
Framework
Unit Testing +
Isolation
Framework
UI Test Frameworks
45. 45
Testautomatisierung in der Praxis
Testpyramide
Automation by Code / Page Object Pattern
UI Automation Engineer und Tester
Richtig vorbereitet ist halb getestet
46. 46
Experimente
Hyptothesis
Experiment
Learning
We believe {customer segment} wants {product/feature}
because {value prop}
To prove or disprove the above, the team will conduct the
following experiment(s): …
The above experiment(s) prove(s) the hypothesis by impacting
the following metric(s): …
49. 49
Beispiele für nicht-funktionale Metriken (Der Admin)
Ziel:
Primäre technische Kennzahlen vom Server
Beispiele:
CPU / Memory Utilization
Response Time
Transferred Data
Data Transfer Rate (e.g MBits/sec)
Connections
…
50. 50
Beispiel Funktional (Der Entwickler)
Ziel:
Primäre technische Kennzahlen aus der Applikation
Beispiele:
Exceptions Client
Exceptions Server
Stacktraces
Non responsive external Services (Salesforce, SAP,
CRM, Internal Services, …)
51. 51
Beispiel Business (Der Analyst)
Ziel:
Überwachung der (Business-)Prozesse
Beispiele:
Welche Features meiner Anwendung werden „tatsächlich“ genutzt?
Wie intensiv werden Features genutzt?
In welche Features müssen wir investieren?
Wird die Anwendung aus Kundenperspektive langsamer?