JAX 2013: Feedback aus der Produktion. Ein Blick in den DevOps-Baukasten
-
Upload
andreas-schmidt -
Category
Technology
-
view
306 -
download
2
description
Transcript of 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
Vorstellung
2 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt
Foto Peter
Andreas Schmidt
Cassini Consulting
Twitter @aschmidt75
Peter Roßbach
bee42 solutions gmbh
http://www.bee42.com
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?
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
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
6 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt
Metriken
Deployment
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
Metriken
8 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt
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)
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?
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
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
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
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
Datadog
15 30.04.2013 JAX2013 | Feedback aus der Produktion | P.Roßbach, A.Schmidt http://www.datadoghq.com/product/
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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)
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
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?
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.
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
Andreas Schmidt, Cassini Consulting
https://www.xing.com/profile/Andreas_Schmidt38
Twitter @aschmidt75