Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
DevOps – Die Evolution agiler Softwareentwicklung
Marc Müller
Principal Consultant
4tecture GmbH
Marc MüllerPrincipal Consultant@muellermarc
3
Agenda
Intro
DevOps in der Praxis
Q&A
4
Intro
„Schon bis 2017 wird jedes vierte Unternehmen seine derzeitige Marktposition aus Gründen „Digitaler Inkompetenz“ verlieren.“ (Gartner)
6
Was ist DevOps?
Bildquelle: https://en.wikipedia.org/wiki/Blind_men_and_an_elephant
TeamAutomation
Development und Operations
Zusammenarbeit
Schnelle und kleinere Releases
Feedback aus der Produktion
„if you can't measure it, you can't manage it”(Robert S. Kaplan)
8
Build, Measure, Learn
Idee
ProgrammAnalysedaten
BUILD
MEASURE
LEARN
ProductOwner
Stakeholder
Dev Team
ProductBacklog
Sprint Backlog Potentially
ShippableIncrement
Test Team
Release
Vision
Epics
Backlog Item
Agile Planning Tools
Build Automation
Release Automation
Test Automation Analytics
10
Wir benötigen Feedback…
funktionales Feedback Customer / Stakeholder
nicht-funktionales Feedback
Product Owner Tester
zeitnahe
reproduzierbar
automatisiert
Dev, Testing, Live
11
DevOps als gesamtheitliche StrategiePe
op
le • Zusammenarbeit
• Gemeinsame Ziele
• Fokus aufVerbesserung
• Mitarbeiterzusammenbringen
Pro
cess • Reduzierung von
“Waste”
• Bessere Effizienz
• KontinuierlichesFeedback
• Schneller einenMehrwehrt liefern
Too
ls • Produktivität
• Zusammenarbeit
• EinfachesExperimentieren
• Ausführung derDevOps Strategie
Flow of Customer Value
• Automated Testing• Continuous Integration• Continuous Deployment• Release Management
Team Autonomy & Enterprise Alignment
• Enterprise Agile• Continuous Integration• Continuous Deployment• Release Management
BACKLOG refined with LEARNING
• Usage Monitoring• Telemetry Collection• Testing in Production• Stakeholder Feedback
EVIDENCE gathered in PRODUCTION
• Testing in Production• Usage Monitoring• User Telemetry• Stakeholder feedback• Feature flags
MANAGED TECHNICAL DEBT
• Code Reviews• Automated Testing• Continuous Measurement
PRODUCTION FIRST MINDSET
• Application Performance Management• Infrastructure as Code• Continuous Delivery• Release Management• Configuration Management• Automated Recovery
INFRASTRUCTURE is a FLEXIBLE RESOURCE
• Application Performance Management• Infrastructure as Code• Continuous Deployment• Release Management • Configuration Management • Automated Recovery
19
Praxis
20
Write CodeCustomer use
the code
Write CodeCustomer use
the code
21
Enterprise Alignment and Team Autonomy
Organization
Roles
Teams
Cadence
Taxonomy
Plan
Practices
Alignment
Autonomy
Vision
Epics
Features
PBI / Bugs
Tasks
100 Deploymentspro Tag!
23
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
24
«Modern» Emergent Architecture
Each Sprint: Working Software
25
Monolithische Architektur
Orders
Products
DAL
OrderData
ProductData
BL
Order Logic
ProductSearch
ProductLogic
UI
Admin UI
26
API Gateway / Proxy
Order Service
OrdersOrderData
OrderLogic
Customer UI
Admin UI
Product Search Service
ProductsProduct
DataProductSearch
Product Service
ProductsProduct
DataProductSearch
Message Q
ue
ue
27
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»
28
Hybrid Development & Feature Isolation
RI
RI
main
RI
FIB
FIFIB
“Your branch distance from main is
equal to your level of insanity” - anonymous
30
Feature Branch vs Feature Toggle
Feature Branch
Komplette Isolierung
Eher komplexe Integration / Merge
Feature Toggle
Schalter in der Software
Entwicklung im selben Branch
Git Flow
Ein Pull-Request ein Konzept um Änderungen
kontrolliert in ein Git-Repository zu bringen.
Pull-Request
Assign Issue
Create Feature Branch
Develop and Commit
Push to Remote
Create Pull-Request
Notify team & wait for review
Develop and Commit
Approved?
Merge PR & delete branch
Finished?
Automatisierung ist der Schlüssel zur
Effizienzsteigerung!
...darum sollte diese so einfach wie möglich
implementiert werden können.
36
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
37
Fee
dB
uild
Re
po
A
Package Management (NuGet)
Source CodeNuget
Specification
Assemblies Package
Published Package
Re
po
B
Nuget Config
Bu
ild Package Restore
Package Config
38
Release Cycle
39
Sprintorientierte Testplanung
Sprint 1 Sprint 2 Sprint 3 Sprint 4
Repository v 1.0CopyCopyCopy Copy
40
Tools für Test Automatisierung
UI
Service
Unit / Component
Quelle: Mike Cohn
Unit Testing Framework + Isolation Framework
Unit Testing + Isolation Framework
UI Test Frameworks
41
Testautomatisierung in der Praxis
Testpyramide
Automation by Code / Page Object Pattern
UI Automation Engineer und Tester
Richtig vorbereitet ist halb getestet
42
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 impactingthe following metric(s): …
43
Learn
Measure
Build
Feedback anhand von Experimenten
New FeatureOld Feature
44
Überwachung mehrere Dimensionen
45
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
…
46
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, …)
47
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?
48
Auswertung – Metric Explorer ( 1 / 2 )
49
Proactive Detection
50
51
Application Insights Analytics - Beispiele
52
Application Insights
Power BI
Business-Sicht
Integration in
SharePoint und
Webseiten
53
Q & A
Marc Müller
Principal Consultant
für DevOps, ALM, TFS /VS, .NET
E-Mail: [email protected]: http://www.4tecture.ch Schulungen: http://4tecture.ch/trainings Blog: http://4tecture.ch/blog Twitter: @muellermarc