55
DevOps Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH [email protected]

DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH [email protected]

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

DevOps – Die Evolution agiler Softwareentwicklung

Marc Müller

Principal Consultant

4tecture GmbH

[email protected]

Page 3: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

3

Agenda

Intro

DevOps in der Praxis

Q&A

Page 4: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

4

Intro

Page 5: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

„Schon bis 2017 wird jedes vierte Unternehmen seine derzeitige Marktposition aus Gründen „Digitaler Inkompetenz“ verlieren.“ (Gartner)

Page 6: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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

Page 7: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

„if you can't measure it, you can't manage it”(Robert S. Kaplan)

Page 8: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

8

Build, Measure, Learn

Idee

ProgrammAnalysedaten

BUILD

MEASURE

LEARN

Page 9: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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

Page 10: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

10

Wir benötigen Feedback…

funktionales Feedback Customer / Stakeholder

nicht-funktionales Feedback

Product Owner Tester

zeitnahe

reproduzierbar

automatisiert

Dev, Testing, Live

Page 11: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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

Page 12: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

Flow of Customer Value

• Automated Testing• Continuous Integration• Continuous Deployment• Release Management

Page 13: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

Team Autonomy & Enterprise Alignment

• Enterprise Agile• Continuous Integration• Continuous Deployment• Release Management

Page 14: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

BACKLOG refined with LEARNING

• Usage Monitoring• Telemetry Collection• Testing in Production• Stakeholder Feedback

Page 15: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

EVIDENCE gathered in PRODUCTION

• Testing in Production• Usage Monitoring• User Telemetry• Stakeholder feedback• Feature flags

Page 16: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

MANAGED TECHNICAL DEBT

• Code Reviews• Automated Testing• Continuous Measurement

Page 17: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

PRODUCTION FIRST MINDSET

• Application Performance Management• Infrastructure as Code• Continuous Delivery• Release Management• Configuration Management• Automated Recovery

Page 18: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

INFRASTRUCTURE is a FLEXIBLE RESOURCE

• Application Performance Management• Infrastructure as Code• Continuous Deployment• Release Management • Configuration Management • Automated Recovery

Page 19: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

19

Praxis

Page 20: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

20

Write CodeCustomer use

the code

Write CodeCustomer use

the code

Page 21: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

21

Enterprise Alignment and Team Autonomy

Organization

Roles

Teams

Cadence

Taxonomy

Plan

Practices

Alignment

Autonomy

Vision

Epics

Features

PBI / Bugs

Tasks

Page 22: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

100 Deploymentspro Tag!

Page 23: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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

Page 24: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

24

«Modern» Emergent Architecture

Each Sprint: Working Software

Page 25: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

25

Monolithische Architektur

Orders

Products

DAL

OrderData

ProductData

BL

Order Logic

ProductSearch

ProductLogic

UI

Admin UI

Page 26: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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

Page 27: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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»

Page 28: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

28

Hybrid Development & Feature Isolation

RI

RI

main

RI

FIB

FIFIB

Page 29: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

“Your branch distance from main is

equal to your level of insanity” - anonymous

Page 30: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

30

Feature Branch vs Feature Toggle

Feature Branch

Komplette Isolierung

Eher komplexe Integration / Merge

Feature Toggle

Schalter in der Software

Entwicklung im selben Branch

Page 31: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

Git Flow

Page 32: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

Ein Pull-Request ein Konzept um Änderungen

kontrolliert in ein Git-Repository zu bringen.

Page 33: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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?

Page 34: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

Automatisierung ist der Schlüssel zur

Effizienzsteigerung!

...darum sollte diese so einfach wie möglich

implementiert werden können.

Page 35: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch
Page 36: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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

Page 37: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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

Page 38: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

38

Release Cycle

Page 39: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

39

Sprintorientierte Testplanung

Sprint 1 Sprint 2 Sprint 3 Sprint 4

Repository v 1.0CopyCopyCopy Copy

Page 40: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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

Page 41: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

41

Testautomatisierung in der Praxis

Testpyramide

Automation by Code / Page Object Pattern

UI Automation Engineer und Tester

Richtig vorbereitet ist halb getestet

Page 42: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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): …

Page 43: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

43

Learn

Measure

Build

Feedback anhand von Experimenten

New FeatureOld Feature

Page 44: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

44

Überwachung mehrere Dimensionen

Page 45: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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

Page 46: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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, …)

Page 47: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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?

Page 48: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

48

Auswertung – Metric Explorer ( 1 / 2 )

Page 49: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

49

Proactive Detection

Page 50: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

50

Page 51: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

51

Application Insights Analytics - Beispiele

Page 52: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

52

Application Insights

Power BI

Business-Sicht

Integration in

SharePoint und

Webseiten

Page 53: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

53

Q & A

Page 54: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch

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

Page 55: DevOps Die Evolution agiler Softwareentwicklung · DevOps –Die Evolution agiler Softwareentwicklung Marc Müller Principal Consultant 4tecture GmbH marc.mueller@4tecture.ch