33
Ein Unternehmen der Daimler AG CHAOS ENGINEERING BUGRA DERRE, SENIOR SOFTWARE ENGINEER

Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

Ein Unternehmen der Daimler AG

CHAOS ENGINEERING

BUGRA DERRE, SENIOR SOFTWARE ENGINEER

Page 2: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

AGENDA

• Warum Chaos Engineering?

• Ebenen des Chaos Engineering

• Beispiele für Chaos Engineering

• Denkfallen

04.07.2019 2Chaos Engineering | Daimler TSS

Page 3: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

DER SOFTWARE ENGINEER

Page 4: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

DER AFFE

[Pcworld 2011]

Page 5: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

SYSTEMAUSFÄLLE

04.07.2019

[Netflix 2012]

5Chaos Engineering | Daimler TSS

Page 6: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

SYSTEMAUSFÄLLE

04.07.2019

[Heise 2018]

6Chaos Engineering | Daimler TSS

Page 7: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

SYSTEMAUSFÄLLE

04.07.2019 7Chaos Engineering | Daimler TSS

[Pixa 2019]

Page 8: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

“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

Page 9: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

EBENEN DES CHAOS

04.07.2019

Personen

Prozesse

Infrastruktur

Plattformen

Applikationen

9Chaos Engineering | Daimler TSS

Page 10: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

DIE VERSCHIEDENEN SICHTWEISEN

04.07.2019

• Produkt geht

live?

• DevOps steht

an?

Engineer

10Chaos Engineering | Daimler TSS

Page 11: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

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

Page 12: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

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

Page 13: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

TRAINIERE DAS CHAOS

Page 14: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

“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

Page 15: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

DIE PHASEN DES CHAOS

04.07.2019 15Chaos Engineering | Daimler TSS

Hypothesis for

Steady State

BehaviorExperiment

Adjust Verify & Learn

Page 16: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

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

Page 17: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

BEISPIEL

Page 18: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

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

Page 19: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

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

Page 20: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

• Verzögerte Antworten

• Kaskadierende Fehler

VERIFY & LEARN: LATENZEN

04.07.2019 20Chaos Engineering | Daimler TSS

Hypothesis Experiment

AdjustVerify &

Learn

Page 21: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

• 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

Page 22: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

CIRCUIT BREAKER PATTERN

04.07.2019 22

Erfolgreich

Erfolgreich

Fehler

Timeout

Fehler

Chaos Engineering | Daimler TSS

Geschlossen

Offen

Halboffen

Page 23: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

• 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

Page 24: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

DENKFALLEN

INSPIRED BY NORA JONES

Page 25: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

„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]

Page 26: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

„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]

Page 27: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

„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]

Page 28: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

„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]

Page 29: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

„The most important part of Chaos Engineering

is running the experiment.“

DENKFALLE 3

29Chaos Engineering | Daimler TSS 04.07.2019

[Jones 2019]

Page 30: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

„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]

Page 31: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

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

Page 32: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

• [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

Page 33: Chaos Engineering - Java Forum Stuttgart 2020Apr 07, 2019  · • Circuit Breaker: Wahrscheinlich das am meisten zitierte Resilienzmuster. • Entdecke wiederkehrende Verbindungsfehler

Daimler TSS GmbH

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

[email protected] / 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!