33
Feedback aus der Produktion Ein Blick in den DevOps-Baukasten 1 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt Peter Roßbach, bee42 solutions GmbH Andreas Schmidt, Cassini Consulting

JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Feedback aus der Produktion Ein Blick in den DevOps-Baukasten

1 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Peter Roßbach, bee42 solutions GmbH

Andreas Schmidt, Cassini Consulting

Page 2: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Vorstellung

2 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Foto Peter

Andreas Schmidt

Cassini Consulting

[email protected]

Twitter @aschmidt75

Peter Roßbach

bee42 solutions gmbh

http://www.bee42.com

[email protected]

Page 3: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

3 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Wie bekommen wir

die richtigen Informationen

aus den relevanten Systemen

in den richtigen Kopf?

Page 4: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

4 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Phasen

4 30.04.2013

Startup-

phase

Go-Live

Skalierungs-

phase

Optimierungs-

phase

Page 5: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Im Betrieb müssen laufend Entscheidungen getroffen werden!

Soll/Muss eine Komponente neu gestartet werden?

Benötigt Sie mehr Ressourcen (CPU, Speicher, …)?

Ist eine Komponente am Verarbeitungslimit

oder kann sie mehr leisten?

Ist Multithreading korrekt implementiert?

Liegt ein Sicherheitsvorfall vor? Sollen/Müssen ggf. Teile

des Systems abgeschaltet werden?

Welche Variante einer Webseite (A/B) bringt mehr Klicks?

War das Refactoring eines Anwendungsteils erfolgreich

(z.B. in Bezug auf Performance)?

5 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Page 6: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

6 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Metriken

Deployment

Page 7: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Entwicklung an Betrieb an Entwicklung an …

7 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Entwicklung neuer

Funktionalitäten

Entwicklung der

passenden Metrik(en)

Sammeln der Metriken

Auswertung der Daten

Erstellen der Basis für

Entscheidungsfindung

1 4

2 3

Optimierung

Problemlösung

ggf. Entwicklung

zusätzlicher Metriken

Validierung der

Optimierung

Page 8: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Metriken

8 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Page 9: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Herausforderungen

9 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Messen des Verhalten eines Systems

Nutzung der Ressourcen unter realen

Bedingungen analysieren

Messungen von Effekten

nach Veränderung der Software

Feststellen von Störungen, die Ausfälle oder

Fehlverhalten bedingen

Einschätzung von Kapazitäten und Trends

Beweis des geschäftlichen Fortschritts

Kontrolle von Zusagen (SLAs)

Page 10: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Was muss hergestellt werden?

10 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Welche richtigen Informationen müssen

bereitgestellt werden?

Welche Transformationen und Kombinationen

von Werten liefern Aussagen?

Welche Darstellungen werden benötigt?

Welche Entscheidungen wollen wir aus

den Daten ableiten?

Welche Monitoringlösung muss realisiert werden?

Page 11: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

OODA Loop

11 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

4

2 3

1

Observe

Orient

Decide

Act

Metrik erheben

Metrik sammeln

und ordnen

Metrik anzeigen

und analysieren

System

verändern

Page 12: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

12 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Deployment |

Change

System

Fact Event Metrik

Collector

Analyse Visualisierung

Filter

Log

Eskalation

Automatismus

Page 13: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Konstruktion einer Metrik

13 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Masseinheit

Eindeutiger Name und Quelle

Abtastfrequenz

Umrechungsfunktion

Schwellwerte, gültige Wertebereiche

Page 14: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Guardian System

14 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

http://www.guardian.co.uk/info/developer-blog/2012/oct/04/winning-the-metrics-battle

Page 15: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Datadog

15 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt http://www.datadoghq.com/product/

Page 16: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Monitoring-Systeme bestehen aus vielen Komponenten

Beispiel: Kibana

16 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

http://kibana.org/infrastructure.html

Page 17: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Aufbau eines Log System

17 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Logstash (GROK)

Systems with log

File Syslog GELF

Shipper

Redis || RabbitMQ

Logstash (Filter)

ElasticSearch

Broker / Queue

I ndexer

Storage&Search

Kibana

Graylog2

statsd

graphite

Analyse

M etrik

Page 18: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Lösungsansätze und Werkzeuge

18 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Wertebereitstellung

Collector

Storage

Charts

Profiler

Events

JMX, Metrics, JavaSimon, Jolokia

Collectd, statsd, Graphite

NewRelic, Datadog

RRDtools, RRD4j, MongoDB,

OpenTSDB, Hadoop

Munin, Cacti, Ppn4Nagios,

Graphite, Ganglia, NewRelic, Datadog

Dynatrace, AppDynamics, NewRelic,

Boundary

Nagios, Icinga, Zabbix, OMD, OpenNMS,

Jboss-RHQ, HypericHQ

Logs Splunk, Graylog2, Kibana/logstash,

loggly

Page 19: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Resümee

19 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Entwickler sollten konsequent Metriken

bereitstellen.

Entwickler, Produktmanager und Administration

sollten ein gemeinsames System nutzen.

Metriken können jederzeit neu in das System

eingebracht werden.

Monitoringsysteme bestehen aus viele einzelnen Teilen,

die ein komplexe Zusammenspiel besitzen.

Selbstadpation und Automatisierung sind notwendig.

Page 20: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

20 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Die richtigen Informationen die in ein System zur

Visualisierung und Analyse eingebracht werden,

bringt Ihnen die Kontrolle über das Produkt.

Schnelle Reaktion auf Veränderungen von

Metriken schafft Feedback für Entwickler und

Administratoren.

Page 21: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

21 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Feedback

Das automatische und schnelle Ausrollen von

Softwareupdates ist für eine agile

Produktentwicklung entscheidend.

Deployment

Page 22: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

22 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Die „Straße in die Produktion“ kann lang sein.

Entwicklungs-

umgebung

Integrations-

umgebung

Test-

umgebung Produktions-nahe

Referenzumgebung

Live-System

Page 23: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

23 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

An den Übergabepunkten findet der wichtige Austausch statt.

Entwicklungs-

umgebung

Integrations-

umgebung

Test-

umgebung Produktions-nahe

Referenzumgebung

Live-System

Entwicklungsabteilung Test-

abteilung

Betriebs-

abteilung

Page 24: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Herausforderungen und Lösungsansätze

24 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

„Ich muss meine Applikation konfigurieren.“ Konfigurationsmanagement

„Die Installationsroutinen sind nicht

immer bzw. überall gleich“ Deployment Management

„Ich muss Teile meines System in

bestimmter Reihenfolge installieren.“

Server Orchestration

„Meine Server werden von Hand aufgesetzt.“ Automated Provisioning

„Ich merke Fehler in der Infrastruktur erst,

wenn die Applikation in Benutzung ist.“ Test Driven- / Behaviour

Driven Infrastructure

„Jeder Übergabepunkt ist irgendwie anders.“ Architektur von

Deployment Pipelines

Page 25: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Lösungsansätze und Werkzeuge

25 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Konfigurationsmanagement

Deployment Management

Server Orchestration

Automated Provisioning

Test Driven/Behaviour

Driven Infrastructure

Architektur von

Deployment Pipelines

CFEngine, Puppet, Chef

UC4, uDeploy, glu,

Etsy Deployinator, …

UC4, Nolio, Marionette

Collective, RunDeck, …

Kickstart, Vagrant, Cloud

environments…

Serverspec, rspec/Cucumber

(-nagios,-puppet,-chef,…)

Papier + Bleistift + die richtigen

Personen DevOps

Page 26: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Beispiel Deployment & Server Orchestration:

Abhängigkeiten zwischen Komponenten

26 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Web

App

Portal UI

App

Backend

App

Admin UI

Admin

Backend

Such-

index DB

Page 27: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Beispiel Deployment & Server Orchestration:

Skalierung

27 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Web

App

Portal UI

App

Backend

App

Admin UI

Admin

Backend

Such-

index DB

Page 28: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Die Bandbreite für die Toolunterstützung ist sehr groß.

28 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

„Secret

Sauce“

Unterstützende

Frameworks

Prozess-

basiert Produkte

Modell-

basiert

Page 29: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

29 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Eine Installations-Engine stellt einen nachvollziehbaren, eindeutigen

und qualitativ hochwertigen Weg in die Produktion dar.

Installations-

engine

Deployment-

Team

Entwicklungs-

umgebung

Live-System

Stage(s)

Page 30: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

30 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Eine durchdachte und funktionierende Deployment-

Architektur ist eine sehr gute Basis für agile

Produktentwicklung.

Kurze Iterationszyklen

von der Entwicklung

bis in Produktion

Page 31: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

31 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Wie bekommen wir

die richtigen Informationen

aus den relevanten Systemen

in den richtigen Kopf?

Page 32: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Fazit

32 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Automatisierung ist wichtig.

Früh beginnen, Metriken und

Automatismen zu etablieren.

Gemeinsam überlegen, welche Kennzahlen

und Informationen relevant sind.

Das Feedback-System muss die Fakten für die

zu treffenden Entscheidungen liefern.

Page 33: JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten

Feedback aus der Produktion Ein Blick in den DevOps-Baukasten

33 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt

Peter Roßbach, bee42 solutions GmbH

[email protected]

Andreas Schmidt, Cassini Consulting

[email protected]

https://www.xing.com/profile/Andreas_Schmidt38

Twitter @aschmidt75