Kontrolowany chaos – Bartek Szulc – Notatka z nauki

przez | 11 kwietnia, 2021
Kontrolowany chaos: https://www.pexels.com/photo/assorted-stationery-scattered-in-wooden-drawer-4219101/

Na produkcji zdarzają się pożary, w zwinnej metodyce wytwarzania oprogramowania zmiany są na porządku dziennym. Ma się wrażenie, że pracujemy w ogromnym chaosie. Czasem ten chaos jest zły, ale kontrolowany chaos bywa dobry. Aby lepiej kontrolować mój chaos, zapoznałem się z materiałem: Boiling Frogs 2020 – Bart Szulc – Spokojnie, to tylko kontrolowany chaos.

W ramach rozwijania się oglądam i czytam różne materiały. Następnie wiedzę z nich umieszczam w Anki oraz w notatkach i uzupełniam własnymi przemyśleniami.

Notatka z materiału: Boiling Frogs 2020 – Bartek Szulc – Spokojnie, to tylko kontrolowany chaos

Zanotowałem z tego materiału:

  • Inżynieria chaosu – zestaw praktyk wykonywania kontrolowanych eksperymentów na budowanym systemie w celu nabrania pewności, że tworzony system jest w stanie wytrzymać nietypowe sytuacje na produkcji.
  • Prezentacja przedstawia system rozproszony składający się z wielu małych mikroserwisów.
  • Za każdy mikroserwis odpowiada niewielu programistów (1-3), którzy go stworzyli. Odpowiadają oni za nie 24h na dobę.
  • Techniki zwiększające przeżywalność serwisu, to np.
    • Retry
    • Cache
    • Ustawiony timout
    • Auto-scallling
    • Circuit breakers
    • Execution time limits
  • Implementacja rozwiązań dla problemów działa, ale gdy różne problemy występują razem często przestaje działać, np.
    • Feature flagi :
      • Pozwalają cofnąć nową funkcjonalność bez re-deploy’a.
      • Feature flagi trzeba skądś ściągnąć, co kosztuje. Można je wrzucić w cache, ale wtedy przełączenie feature flagi nie cofnie funkcjonalności w serwisie.
  • Cykl eksperymentowania w inżynierii chaosu:
    1. Steady state – stan metryk w normalnym stanie.
    2. Hipoteza – opis sytuacji, w której coś przestaje działać, ale system nadal jest w stanie Steady state.
    3. Eksperyment – sprawdzenie hipotezy i próba jej obalenia.
    4. Weryfikacja.
    5. Improve – wyciągnięcie wniosków, poprawienie oprogramowania, zapisanie eksperymentu, aby więcej już tego nie sprawdzać, jeżeli wszystko było ok. Można ten eksperyment zmienić w powtarzalny test i dołączyć do regularnych testów.
  • 4 fazy w inżynierii chaosu
    • Kreatywność – szukanie pomysłów na eksperymenty
      • Zastanawianie się nad możliwymi problemami
      • Lesson learned – wymiana wiedzy na temat:
        • Przeszłych problemów i ich rozwiązania.
        • Zrobionych eksperymentów i podjętych działaniach naprawczych.
      • Szukanie stwierdzeń: nigdy nam się nie zepsuje X. Sprawdź to.
    • Hamowanie się – szukanie realnych problemów, a nie takich problemów, których nasz system nie da rady w żaden sposób obsłużyć.
    • Zbieranie:
      • Potwierdzonych eksperymentów.
      • Ekspertów.
      • Narzędzi.
      • Testów i skryptów generujących eksperyment.
      • Rozwiązań problemów.
      • Logów i miar.
    • Nauka:
      • Monitorowanie.
      • Reagowanie.
      • Analizowanie.
      • Wyciąganie wniosków.
  • Szukaj nie tylko rozwiązania problemu, ale rozwiązania dla całej klasy problemów, do których należy zaistniały problem.
  • Ciekawe sposoby robienia eksperymentów przez zespoły (i całą firmę):
    • Przykłady:
      • Game Day.
      • War Games.
      • Chaos Bash.
      • Fire Drill.
    • Takie gry pozwalają nauczyć się opanować stres, ponieważ w kontrolowanych warunkach pojawiają się awarie.

Wszystkie posty związane z notatkami z nauki:

Źródła

Bestseller dnia w księgarni Złote Myśli

Obraz główny

Materiał Boiling Frogs 2020 – Bart Szulc – Spokojnie, to tylko kontrolowany chaos

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *