Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich...

Preview:

Citation preview

Ein Unternehmen der Daimler AG

CHAOS ENGINEERING

BUGRA DERRE, SENIOR SOFTWARE ENGINEER

AGENDA

• Warum Chaos Engineering?

• Ebenen des Chaos Engineering

• Beispiele für Chaos Engineering

• Denkfallen

04.07.2019 2Chaos Engineering | Daimler TSS

DER SOFTWARE ENGINEER

DER AFFE

[Pcworld 2011]

SYSTEMAUSFÄLLE

04.07.2019

[Netflix 2012]

5Chaos Engineering | Daimler TSS

SYSTEMAUSFÄLLE

04.07.2019

[Heise 2018]

6Chaos Engineering | Daimler TSS

SYSTEMAUSFÄLLE

04.07.2019 7Chaos Engineering | Daimler TSS

[Pixa 2019]

“A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.”Leslie Lamport

SYSTEMAUSFÄLLE ALS REGEL

04.07.2019 8Chaos Engineering | Daimler TSS

EBENEN DES CHAOS

04.07.2019

Personen

Prozesse

Infrastruktur

Plattformen

Applikationen

9Chaos Engineering | Daimler TSS

DIE VERSCHIEDENEN SICHTWEISEN

04.07.2019

• Produkt geht

live?

• DevOps steht

an?

Engineer

10Chaos Engineering | Daimler TSS

DIE VERSCHIEDENEN SICHTWEISEN

04.07.2019

• Teameinsätze

reduzieren?

• Selbstbe-

wusstsein

stärken?• Produkt geht

live?

• DevOps steht

an?

Engineer

Teammanager

11Chaos Engineering | Daimler TSS

DIE VERSCHIEDENEN SICHTWEISEN

04.07.2019

• Teameinsätze

reduzieren?

• Selbstbe-

wusstsein

stärken?• UX ist

wichtig?

• Produkt an

den Markt?

• Produkt geht

live?

• DevOps steht

an?

Engineer

Teammanager

Auftraggeber

12Chaos Engineering | Daimler TSS

TRAINIERE DAS CHAOS

“Chaos doesn’t cause problems, it reveals them.”Nora Jones, Leading Chaos Engineering at Netflix Slack

TRAINIERE DAS CHAOS

04.07.2019 14Chaos Engineering | Daimler TSS

DIE PHASEN DES CHAOS

04.07.2019 15Chaos Engineering | Daimler TSS

Hypothesis for

Steady State

BehaviorExperiment

Adjust Verify & Learn

TRAINIERE DAS CHAOS. DIE WERKZEUGE.

04.07.2019Chaos Engineering | Daimler TSS 16

Open Source Einschränkungen Plattformen Ebenen des Chaos

Chaos Toolkit Ja Die Erweiterungen

sind die

Einschränkungen

Azure, GCE, AWS,

Service Fabric, K8s,

Pivotal etc.

Applikation,

Infrastruktur,

Plattform

Simian Army

(reloaded)

Ja AWS only /

(Spinnaker required)

AWS (AWS, GCE,

K8s)

Infrastruktur

Pumba Ja Docker Docker Plattform

Gremlin Nein Agenten laufen auf

dem Host

Egal Infrastruktur

BEISPIEL

HYPOTHESE

04.07.2019 18Chaos Engineering | Daimler TSS

„Der Webshop erhält den Warenkorb und das Bezahlsystem für den Kunden.“

Hypothesis Experiment

AdjustVerify &

Learn

Dein Dienst wartet auf eine Antwort. Aber: Kommt die Antwort pünktlich?

EXPERIMENT: LATENZEN

04.07.2019 19Chaos Engineering | Daimler TSS

Hypothesis Experiment

AdjustVerify &

Learn

• Verzögerte Antworten

• Kaskadierende Fehler

VERIFY & LEARN: LATENZEN

04.07.2019 20Chaos Engineering | Daimler TSS

Hypothesis Experiment

AdjustVerify &

Learn

• Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster.

• Entdecke wiederkehrende Verbindungsfehler.

• Blockiere den Zugriff für eine vorgegebene Zeit statt noch mehr Last auf den

Dienst auszuüben.

ADJUST: KONTROLLIERE LATENZENMIT DEM CIRCUIT BREAKER PATTERN

04.07.2019 21Chaos Engineering | Daimler TSS

Hypothesis Experiment

AdjustVerify &

Learn

CIRCUIT BREAKER PATTERN

04.07.2019 22

Erfolgreich

Erfolgreich

Fehler

Timeout

Fehler

Chaos Engineering | Daimler TSS

Geschlossen

Offen

Halboffen

• Behandlung von Timeouts

• Behandlung mehrfacher Aufrufe

• Disaster Recovery Management

• …

VERIFY & LEARN

04.07.2019 23

[Beyer 2016, Hamilton 2007, Hanmer 2007, HornsbyBlog, Nygard 2018, Pragmatic 2018, Tanenbaum 2016]

Chaos Engineering | Daimler TSS

Empfehlung: “Release It!”

von Michael T. Nygard

DENKFALLEN

INSPIRED BY NORA JONES

„You can measure your success with

Chaos Engineering by counting the

number of vulnerabilities you find.“

DENKFALLE 1

04.07.2019 25Chaos Engineering | Daimler TSS

[Jones 2019]

„You can measure your success with

Chaos Engineering by counting the

number of vulnerabilities you find.“

„You don‘t know much about safety, simply by

counting errors.“Dr. Robert L. Wears

DENKFALLE 1

04.07.2019 26Chaos Engineering | Daimler TSS

[Jones 2019]

„It‘s not ‚real‘ Chaos Engineering unless you

move beyond gamedays and experimenting

in sandbox environments.“

DENKFALLE 2

04.07.2019 27Chaos Engineering | Daimler TSS

[Jones 2019]

„It‘s not ‚real‘ Chaos Engineering unless you

move beyond gamedays and experimenting

in sandbox environments.“

Please practice at first on a sandbox experiment

before you bring down productive systems.

DENKFALLE 2

04.07.2019 28Chaos Engineering | Daimler TSS

[Jones 2019]

„The most important part of Chaos Engineering

is running the experiment.“

DENKFALLE 3

29Chaos Engineering | Daimler TSS 04.07.2019

[Jones 2019]

„The most important part of Chaos Engineering

is running the experiment.“

„Before the experiment,

during the experiment,

after the experiment.“

– all phases deserve the same attention.

DENKFALLE 3

04.07.2019 30Chaos Engineering | Daimler TSS

[Jones 2019]

FAZIT

• Warum man Chaos Engineering

trainieren sollte.

• Wie und wo man Chaos

trainieren kann.

• Beispielexperiment

• Was man beim Chaos

Engineering lieber nicht denken

sollte.

04.07.2019 31Chaos Engineering | Daimler TSS

• [Beyer 2016] Site Reliability Engineering: How Google Runs Production Systems, O’Reilly

• [Hamilton 2007] On Designing and Deploying Internet-Scale Services, Usenix

• [Hanmer 2007] Patterns for Fault Tolerant Software, Wiley

• [Heise 2018] https://www.heise.de/newsticker/meldung/Blitzschlag-in-den-USA-stoert-Azure-Active-Directory-4155496.html

• [Hornsby] https://de.slideshare.net/hornsby/chaos-engineering-why-breaking-things-should-be-practised-93761039

• [HornsbyBlog] https://medium.com/@adhorn

• [Hystrix 2019] https://github.com/Netflix/Hystrix/wiki/How-it-Works

• [Jones 2019] https://medium.com/@njones_18523/chaos-engineering-traps-e3486c526059

• [Netflix 2012] https://medium.com/netflix-techblog/a-closer-look-at-the-christmas-eve-outage-d7b409a529ee

• [Nygard 2018] Release It!: Design and Deploy Production-Ready Software

• [Pcworld 2011] https://images.pcworld.com/images/article/2011/11/fb-monkey-5241520.jpg

• [Pragmatic 2018] https://pragprog.com/book/mnee2/release-it-second-edition

• [Pixa 2019] https://pixabay.com/de/photos/technologie-computer-schwarz-code-1283624/

• [Tanenbaum 2016] Distributed Systems: Principles and Paradigms

QUELLENVERZEICHNIS

04.07.2019 32Chaos Engineering | Daimler TSS

Daimler TSS GmbH

Wilhelm-Runge-Straße 11, 89081 Ulm / Telefon +49 731 505-06 / Fax +49 731 505-65 99

tss@daimler.com / Internet: www.daimler-tss.com/ Intranet-Portal-Code: @TSS

Sitz und Registergericht: Ulm / HRB-Nr.: 3844 / Geschäftsführung: Martin Haselbach (Vorsitzender), Steffen Bäuerle

© Daimler TSS I Template Revision

THANKS FOR HAVING ME!

Recommended