Chaos Engineering – Hitta bristerna innan de blir avbrott

Globala molnleverantörer som Amazon Web Services (AWS), Microsoft Azure och Google Cloud har gjort det enklare än någonsin att bygga storskaliga, avancerade och globala tjänster. När Internettjänster och molnarkitekturer har blivit alltmer komplexa genom microservices och distribuerade system som sträcker sig över flera datacenter eller regioner har systemfel blivit svårare att förutse samtidigt som vårt beroende av dessa tjänster ökat. Avbrott och störningar genom den typen av fel står för en ökande kostnad hos företag genom förlorad produktivitet, kunder som inte kan använda deras tjänster och andra kostsamma följder.

För att förhindra dessa fel krävs att vi alla är proaktiva i våra ansträngningar att lära från, istället för att vänta på nästa, kostsamma avbrott och störningar. Fler och fler företag vänder sig till Chaos Engineering som en lösning på utmaningen.

Chaos Engineering är ett metodiskt tillvägagångssätt för att identifiera felkällor innan de blir avbrott. Genom att testa hur ett system svarar under stress kan fel identifieras och åtgärdas proaktivt istället för reaktivt och en jämförelse mellan vad som tros ske och vad som egentligen sker kan göras. Ha sönder saker med flit för att kunna bygga mer motståndskraftiga system!

Principerna bakom Chaos Engineering

Den vedertagna beskrivningen av Chaos Engineering är som följer:

“Chaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in the system’s capability to withstand turbulent conditions in production.”

Enkelt översatt handlar det om att kontrollerat experimentera i en miljö för att bygga förtroende för systemets förmåga att motstå avbrott. Detta görs genom att genomföra noggrant planerade experiment som lär oss hur systemen beter sig vid fel. Experimenten följer dessa fyra steg:

1. Definiera normalläge
Ett system som agerar normalt blir mätpunkten för normalläge.

2. Planera experimentet
Börja med att skapa en hypotes kring hur ett system ska bete sig när något går fel.

3. Begränsa sprängradien
Genomför minsta möjliga test som det går att lära från.

4. Skala upp eller avbryt
Upptäcktes ett problem? Avbryt och lär från detta. Skala annars upp sprängradien i omgångar till full skala.

När experimentet är över finns en bättre förståelse för systemets verkliga beteende. Lärdomarna används för att bygga system och arkitekturer som bättre kan hantera fel, störningar och avbrott.

Netflix var pionjärer inom Chaos Engineering

Många stora företag använder idag Chaos Engineering för att bättre kunna förstå sina system och förutse fel. Exempel är Microsoft, Google, Amazon, Facebook, LinkedIn och inte minst Netflix.

Redan 2010 skapade ett team på Netflix det som kallades Chaos Monkey, vilket var ett sätt att testa streamingtjänsterna så att de fungerade även om enstaka instanser slutade fungera. Detta vidareutvecklade de genom Simian Army för att kunna göra mer komplexa tester och 2012 släpptes koden till Chaos Monkey öppet på Github. Dan Woods, då Senior Software Engineer på Netflix, lanserade 2014 rollen Chaos Engineer genom en platsannons på Twitter.

Idag används Chaos Engineering av företag inom alla möjliga branscher och traditionella industrier som bank och finans, där avbrott och störningar helt enkelt inte får finnas, har anammat tillvägagångssättet.

Varför ska Chaos Engineering användas?

Genom att identifiera och åtgärda brister och svagheter innan de manifesterar sig som störningar eller avbrott i hela systemet kan vi undvika problem som både skapar en negativ upplevelse för användarna och i slutändan kostar pengar. Chaos Engineering brukar jämföras med ett vaccin då det injicerar en liten mängd av något skadligt för att förhindra framtida sjukdom.

Att använda Chaos Engineering har även fördelen att de olika teamen inblandade i systemet får möjlighet att under verkliga förhållanden agera på problem, störningar och avbrott. Jämför det med en brandövning där regelbundna övningar nöter in hur alla ska agera vid en brand och eventuella brister visas vid övningstillfället istället för i skarpt läge.

Vill du veta mer om Chaos Engineering?

Vi bokar gärna in ett förutsättningslöst möte där vi tillsammans ser på anpassningsbara lösningar för just er verksamhet och hur vi kan arbeta för att metodiskt hitta brister innan de blir avbrott.

Hälsningar

Gunnar Grosch

Cloud Evangelist – Opsio
gunnar.grosch@opsio.se