DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung

Marc Müller
Marc MüllerExperte für ALM & .NET Beratung um 4tecture GmbH
1
DevOps – Die Evolution agiler Softwareentwicklung
Marc Müller
Principal Consultant
4tecture GmbH
marc.mueller@4tecture.ch
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
Marc Müller
Principal Consultant
@muellermarc
6
Agenda
 Intro
 DevOps in der Praxis
 Q&A
7
Intro
„Schon bis 2017 wird jedes vierte
Unternehmen seine derzeitige
Marktposition aus Gründen
„Digitaler Inkompetenz“
verlieren.“ (Gartner)
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
„if you can't measure it,
you can't manage it”
(Robert S. Kaplan)
11
Build, Measure, Learn
Idee
ProgrammAnalysedaten
BUILD
MEASURE
LEARN
Product
Owner
Stakeholder
Dev Team
Product
Backlog
Sprint
Backlog Potentially
Shippable
Increment
Test Team
Release
Vision
Epics
Backlog Item
Agile Planning Tools
Build Automation
Release
Automation
Test Automation Analytics
13
Wir benötigen Feedback…
funktionales Feedback Customer / Stakeholder
nicht-funktionales Feedback
Product Owner Tester
zeitnahe
reproduzierbar
automatisiert
Dev, Testing, Live
14
DevOps als gesamtheitliche Strategie
People
•Zusammenarbeit
•Gemeinsame Ziele
•Fokus auf
Verbesserung
•Mitarbeiter
zusammenbringen
Process
•Reduzierung von
“Waste”
•Bessere Effizienz
•Kontinuierliches
Feedback
•Schneller einen
Mehrwehrt liefern
Tools
•Produktivität
•Zusammenarbeit
•Einfaches
Experimentieren
•Ausführung der
DevOps 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
22
Praxis
23
Write Code
Customer use
the code
Write Code
Customer use
the code
24
Enterprise Alignment and Team Autonomy
Organization
Roles
Teams
Cadence
Taxonomy
Plan
Practices
Alignment
Autonomy
Vision
Epics
Features
PBI / Bugs
Tasks
100 Deployments
pro Tag!
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
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
28
«Modern» Emergent Architecture
Each Sprint: Working Software
29
Monolithische Architektur
Orders
Products
DAL
Order
Data
Product
Data
BL
Order
Logic
Product
Search
Product
Logic
UI
Admin UI
30
API
Gateway
/ Proxy
Order Service
Orders
Order
Data
Order
Logic
Customer
UI
Admin UI
Product Search Service
Products
Product
Data
Product
Search
Product Service
Products
Product
Data
Product
Search
MessageQueue
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»
32
Hybrid Development & Feature Isolation
RI
RI
main
RI
FIB
FIFIB
“Your branch distance from main is
equal to your level of insanity”
- anonymous
34
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.
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
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
41
FeedBuildRepoA
Package Management (NuGet)
Source Code
Nuget
Specification
Assemblies Package
Published
Package
RepoB
Nuget Config
Build
Package
Restore
Package
Config
42
Release Cycle
43
Sprintorientierte Testplanung
Sprint 1 Sprint 2 Sprint 3 Sprint 4
Repository v 1.0 CopyCopyCopy Copy
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
Testautomatisierung in der Praxis
Testpyramide
Automation by Code / Page Object Pattern
UI Automation Engineer und Tester
Richtig vorbereitet ist halb getestet
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): …
47
Learn
Measure
Build
Feedback anhand von Experimenten
New FeatureOld Feature
48
Überwachung mehrere Dimensionen
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
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
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?
52
Auswertung – Metric Explorer ( 1 / 2 )
53
Proactive Detection
54
55
Application Insights Analytics - Beispiele
56
Application Insights
 Power BI
 Business-Sicht
 Integration in
SharePoint und
Webseiten
57
Q & A
Marc Müller
Principal Consultant
für DevOps, ALM, TFS /VS, .NET
E-Mail: marc.mueller@4tecture.ch
Webseite: http://www.4tecture.ch
Schulungen: http://4tecture.ch/trainings
Blog: http://4tecture.ch/blog
Twitter: @muellermarc
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
1 von 59

Más contenido relacionado

Similar a DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung(20)

Más de Marc Müller(20)

DWX 2022 - DevSecOps mit GitHubDWX 2022 - DevSecOps mit GitHub
DWX 2022 - DevSecOps mit GitHub
Marc Müller27 views
Helm introductionHelm introduction
Helm introduction
Marc Müller84 views

DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung