devops die evolution agiler softwareentwicklung · devops –die evolution agiler...

Post on 24-Aug-2020

8 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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: marc.mueller@4tecture.chWebseite: http://www.4tecture.ch Schulungen: http://4tecture.ch/trainings Blog: http://4tecture.ch/blog Twitter: @muellermarc

top related