KraQA #39

Czy was też dopadł już wakacyjny nastrój? Jako, że ekipa KraQA utożsamia się z tym uczuciem ponad wszystko wracamy do was z nieco spóźnioną relacją #38 edycji! Dla miłośników szeroko pojętych tematów Software Delivery, Continuous Integration/Delivery oraz Infrastructure as a Code to bardzo dobry czas na KraQA. Po niedawnej prezentacji “Your delivery pipelines as code – Jenkins Pipelines in action!” tym razem (zaledwie miesiąc później) odwiedził nas Rafał Sztwiorok z prezentacją mocno zahaczającą o DevOps-owe podejście – “Jak testować tool do testów? – Buddy CI/CD”

Dla niewtajemniczonych Buddy to narzędzie CI/CD (Continuous Integration/Continuous Delivery) as a service. Więcej szczegółów możecie sprawdzić tutaj. Sama prezentacja oparta została o popularny (chociaż lekko zmodyfikowany) model […] → Build → TEST →  deploy → MEASURE → REPEAT → […] oraz jednym z założeń manifestu programowania zwinnego:

“Najwyższy priorytet ma dla nas zadowolenie klienta
dzięki wczesnemu i ciągłemu wdrażaniu
wartościowego oprogramowania.”

Podstawowe zasady i dobre praktyki budowania środowiska CI/CD zostały przedstawione w 7 jasnych i spójnych punktach:

1) Jakość

  • Budowanie jakości w testowaniu nie jest fazą.
  • Testowanie nie jest domeną testerów.

2) Automatyzacja

  • Automatyzuj wszystko (prawie wszystko)
  • Są takie same rzeczy, których nie można zautomatyzować.

3) Zarządzanie zmianą/kodem

  • Zachowaj wszystkie zmiany w systemie kontroli wersji
  • Sukcesem jest zbudowanie efektywnego modelu zarządzania kodem (git branching model)
  • Warto skorzystać ze sprawdzonego modelu (dostępny tutaj)

4) Środowisko

  • Testuj na środowiskach możliwie zbliżonych do środowiska produkcyjnego

5) Utrzymywanie:

  • Stwórz proces delivery najzwyczajniej nudnym do utrzymywania

6) Częstotliwość:

  • Zrób to częściej, jeśli coś jest trudne lub bolesne.
  • Testy są ważne, ale nie dają 100% pewności
  • Częstotliwość zmniejsza ryzyko związane z dostarczaniem kodu

7) Ciągłe doskonalenie

  • Planuj, rób, studiuj, działaj wraz z rozwijaniem wszystkich procesów. 
  • Pierwsze wydanie aplikacji to dopiero pierwszy etap w jej życiu

Podsumowaniem całości była odpowiedź na pytanie dlaczego powinniśmy się troszczyć o podejście Continuous Delivery:

  • Redukcja błędów
  • Zmniejszenie stresu
  • Dostarczenie feedbacku
    • “Gdybyśmy zapytali klientów czego potrzebują, to powiedzieliby, że szybszego konia, ponieważ nie wiedzieli czym właściwie jest samochód” → Henry Ford
    • “Ludzie nie wiedzą, czego chcą, dopóki im tego nie pokażesz” → Steve Jobs

Na sam koniec do polecenia dwie lektury:

  • “Ciągłe dostarczanie oprogramowania. Automatyzacja kompilacji, testowania i wdrażania” → Jez Humble, David Farley
  • “Metoda Lean Startup. Wykorzystaj innowacyjne narzędzia i stwórz firmę, która zdobędzie rynek” → Eric Ries