Doskonalenie praktyk DevOps: Jak wykorzystać metryki DORA do osiągania lepszych rezultatów
6 min czytania

Informacje o naszym produkcie i modelu dostarczania

Przegląd produktu / projektu

Freya Fusion to zaawansowana platforma technologii regulacyjnych, która wykorzystuje sztuczną inteligencję i rozwiązania typu Cloud-based w celu usprawnienia procesów zgodności z przepisami. Jej główne funkcje obejmują chmurę regulacyjną opartą na sztucznej inteligencji do inteligentnego nadzoru, kompozycyjność w zakresie danych, treści, aplikacji i interfejsów użytkownika zapewniającą elastyczność oraz dopasowane procesy regulacyjne wraz z planowaniem wielodziedzinowym. Platforma oferuje również zintegrowane rozwiązania w zakresie automatyzacjigraf wiedzy do pozyskiwania uporządkowanych informacji oraz konwersacyjny interfejs użytkownika poprawiający interakcję. Zaprojektowana z myślą o wydajności platforma Freya Fusion łączy nowoczesną technologię z wiedzą ekspercką z zakresu regulacji, aby upraszczać złożone przepływy pracy związane ze zgodnością.

Obecny proces i ekosystem dostarczania

Metodologia zwinna i narzędzia

W systemie Freya Fusion stosujemy metodologię zwinną połączoną z praktykami DevSecOps, aby zapewnić bezpieczeństwo, zgodność z przepisami i wydajność na każdym etapie – od kodu po wdrożenie. W naszym zwinnym frameworku funkcje służą jako główne elementy wydań. Wiele funkcji jest grupowanych i weryfikowanych razem, tworząc kandydata do wydania (RC), co zapewnia przyrostowe i kontrolowane dostarczanie wartości.

Azure DevOps (ADO) i integracje wtyczek

Przegląd potoku CI/CD

Potoki ciągłej integracji i ciągłego wdrażania (CI/CD) automatyzują proces dostarczania oprogramowania od fazy programowania do środowiska produkcyjnego, zapewniając szybsze wydaniastałą jakość oraz mniej błędów wynikających z czynnika ludzkiego.

Ciągła integracja (CI) – faza tworzenia i testowania wykorzystywana przez zespół sprintu

  • Zatwierdzenie kodu: Programiści przesyłają zmiany do wspólnego repozytorium (np. Azure Repos, GitHub).
  • Automatyczne tworzenie kompilacji: Potok kompiluje kod, rozwiązuje zależności i pakuje artefakty.
  • Automatyczne testowanie: Przeprowadzane są testy jednostkowe, testy integracyjne oraz skany bezpieczeństwa (SAST/DAST) w celu wczesnego wykrywania problemów.
  • Przechowywanie artefaktów: Zweryfikowane kompilacje są zapisywane w repozytoriach

Ciągłe wdrażanie (CD) – faza wydania wykorzystywana przez zespół wdrożeniowy

  • Środowiska etapowe: Kod przechodzi przez etupy DevSecOps → SQA → PreProd → Productionz zachowaniem punktów kontrolnych zatwierdzania.
  • Automatyczne wdrożenia: Wdrażanie odbywa się za pomocą potoków wydań przy minimalnych przestojach
  • Kontrole po wdrożeniu: Automatyczne testy dymne, monitorowanie wydajności oraz mechanizmy wycofywania zmian regulowane przez SOP.

Typy wydań: Główne, Mniejsze, Poprawki, Hotfix

Wydania dzielą się na główne, mniejsze, poprawki lub hotfixy w zależności od celu i funkcji wprowadzanych w danej wersji.

  • Główne – Oznacza pierwsze wydanie lub wydanie, w którym funkcje wpływają na funkcjonalność bez zachowania kompatybilności wstecznej
  • Mniejsze – Oznacza wydanie nowej funkcjonalności z zachowaniem kompatybilności wstecznej oraz ulepszeniami istniejących funkcji
  • Poprawka – Oznacza wydanie zawierające pakiet poprawek błędów, aktualizacji bezpieczeństwa i drobnych ulepszeń z zachowaniem kompatybilności wstecznej
  • Hotfix – Oznacza awaryjne wydanie mające na celu rozwiązanie krytycznych problemów zgłoszonych w środowisku produkcyjnym we wdrożonej wersji.

Kluczowe metryki, które mają znaczenie

Wyjaśnienie czterech wskaźników DORA:

Zgodnie ze standardami branżowymi istnieją 4 kluczowe wskaźniki, które należy monitorować i optymalizować w sprawnie działających organizacjach.

  1. Czas realizacji (Lead Time) (jak szybko wdrażamy oprogramowanie na produkcję)
  2. Częstotliwość wdrażania (Deployment Frequency) (jak często publikujesz zmiany).
  3. Wskaźnik awaryjności zmian (Change Failure Rate) (jak często wdrożenia kończą się niepowodzeniem).
  4. Średni czas przywracania usługi (MTTR) (jak szybko naprawiasz usterki).

Czas realizacji  to jeden z czterech kluczowych wskaźników organizacji DevOps Research and Assessment (DORA). Mierzy on czas potrzebny na przejście zmian w kodzie od commitu do wdrożenia na produkcję, odzwierciedlając efektywność procesu dostarczania oprogramowania. Wskaźnik ten określa średni czas trwania pomiędzy zatwierdzeniem zmian w kodzie a ich pomyślnym wdrożeniem na produkcję.

Czas realizacji wskazuje:

  • prędkość dostarczania oraz efektywność procesu.
  • Krótsze czasy realizacji wiążą się z szybszymi pętlami informacji zwrotnej oraz większą zwinnością.

Częstotliwość wdrażania śledzi, jak często zmiany w kodzie są pomyślnie wdrażane na produkcję. Odzwierciedla ona dynamikę i spójność Twojego procesu dostarczania oprogramowania

Częstotliwość wdrażania wskazuje:

  • Zwinność zespołu i dojrzałość procesową.
  • Częste wdrożenia zmniejszają ryzyko, umożliwiając wprowadzanie mniejszych, przyrostowych zmian (w przeciwieństwie do dużych, rzadkich wydań).
  • Wiąże się z szybszymi pętlami informacji zwrotnej oraz wyższym zadowoleniem klientów.

Średni czas przywracania usługi (MTTR) mierzy średni czas potrzebny na przywrócenie działania usługi po awarii (np. przestoju, spadku wydajności lub błędzie). Odzwierciedla on odporność zespołu i skuteczność reagowania na incydenty.

MTTR wskazuje:

  • Minimalizuje przestoje i negatywny wpływ na użytkowników.
  • Wysoki wskaźnik MTTR świadczy o powolnym usuwaniu błędów, słabym monitorowaniu lub nieefektownych procesach wycofywania zmian.
  • Wiąże się z zaufaniem klientów, kosztami operacyjnymi i stresem zespołu.

Wskaźnik awaryjności zmian (CFR) mierzy procent wdrożeń, które powodują awarie na produkcji i wymagają działań naprawczych (np. wycofania zmian, poprawek awaryjnych lub łatek). Odzwierciedla on stabilność i niezawodność procesu wydawniczego.

CFR wskazuje:

  • Informuje o tym, jak często wdrożenia wprowadzają defekty (błędy, przestoju, problemy z wydajnością).
  • Wysoki wskaźnik CFR sugeruje słabe testy, niewystarczające monitorowanie lub ryzykowne praktyki wydawnicze.
  • Wiąże się z wypaleniem zespołu, zaufaniem klientów i kosztami operacyjnymi.
WskaźnikDefinicjaWzór
Czas realizacjiŚredni czas ukończenia funkcjiSuma czasu realizacji / Liczba funkcji
Częstotliwość wdrażaniaJak często kod jest wdrażany na środowisko produkcyjne.Łączna liczba wdrożeń / Liczba miesięcy
Wskaźnik awarii zmian (CFR)Odsetek wdrożeń powodujących awarię.Liczba nieudanych zmian ÷ Całkowita liczba zmian × 100.
Średni czas przywracania (MTTR)Średni czas przywrócenia usługi po awarii.Suma czasów przywracania ÷ Liczba awarii (problem operacyjny / błąd / problem z danymi)

Dodatkowe wskaźniki pomocnicze:

  1. Praca w toku (WIP): Mierzy liczbę niedokończonych zadań (np. zmian w kodzie, funkcji, błędów) znajdujących się obecnie w procesie. Ten wskaźnik pomaga mierzyć wąskie gardła oraz potrzebę podziału funkcji lub historii użytkownika.
  2. Czas cyklu: Czas od rozpoczęcia pracy (np. utworzenia zgłoszenia) do jej ukończenia
  3. Liczba próśb o wciągnięcie zmian (Pull Request): wskaźnik śledzący liczbę utworzonych, połączonych lub odrzuconych PR-ów w danym okresie (np. dziennie, tygodniowo lub miesięcznie). Pomaga zespołom ocenić produktywność deweloperów, efektywność współpracy oraz wąskie gardła w przepływie pracy.
  4. Incydenty u klienta: Liczba incydentów produkcyjnych zgłoszonych przez klientów, wskazująca na jakość testów wewnętrznych
  5. Otwarte błędy: Ten wskaźnik śledzi liczbę nierozwiązanych usterek (błędów) w systemie w dowolnym momencie. Pomaga mierzyć jakość oprogramowania, dług technologiczny oraz efektywność zespołu w rozwiązywaniu problemów.
  6. Długo otwarte błędy: Długo otwarte błędy to usterki, które pozostają nierozwiązane przez dłuższy czas (zazwyczaj ponad 30 dni). Ich śledzenie pomaga zidentyfikować nieefektywność procesów, luki w ustalaniu priorytetów oraz dług technologiczny
  7. Odroczone błędy: Są to usterki, które zostały uznane, ale celowo odłożone na później do rozwiązania. Chociaż odroczenie może być uzasadnioną strategią, nadmierne odraczanie może wskazywać na gromadzenie się długu technologicznego, problemy z priorytetyzacją lub nieefektywność procesów.
  8. Stan kompilacji CI: Ten wskaźnik monitoruje stabilność i niezawodność potoku ciągłej integracji (CI) poprzez śledzenie wskaźnika sukcesu/porażki zautomatyzowanych kompilacji i testów. Prawidłowo działający system CI ma kluczowe znaczenie dla szybkich informacji zwrotnych, wysokiej jakości wydań i produktywności deweloperów
  9. Stan wydania CD: Ten wskaźnik monitoruje stabilność, szybkość i wskaźnik sukcesu zautomatyzowanego wdrażania. Prawidłowo działający system CD zapewnia niezawodne, częste i mało ryzykowne wydania.
  10. Testy integracyjne: Testy integracyjne potwierdzają, że niezależnie opracowane moduły, usługi lub systemy działają poprawnie po połączeniu. Jest to kluczowa faza w metodyce DevOps, pozwalająca wykryć problemy zanim dotrą one do środowiska produkcyjnego.
  11. Zestaw narzędzi do monitorowania produkcji: Zbiór narzędzi i praktyk służących do śledzenia stanu systemu, wykrywania anomalii oraz rozwiązywania problemów w czasie rzeczywistym w przypadku aplikacji działających w środowisku produkcyjnym. Jest to kluczowe dla zespołów SRE, DevOps i zespołów operacyjnych w celu utrzymania dostępności, wydajności oraz zadowolenia użytkowników.

Dlaczego wskaźniki mają znaczenie w dobrze funkcjonującej organizacji

Śledzenie wskaźników DevOps i operacyjnych (takich jak DORA, czas realizacji (Lead Time), częstotliwość wdrażania, MTTR, CFR, powiadomienia z monitorowania itp.) dostarcza praktycznych informacji, które napędzają sukces biznesowy, doskonałość techniczną i przewagę konkurencyjną.

  1. przyspieszyć wprowadzanie produktów na rynek
    • Wskaźniki: Czas realizacji (Lead Time), częstotliwość wdrażania, czas cyklu
    • Wpływ:
      • Szybsze wdrażanie nowych wersji → Szybsza reakcja na potrzeby rynku.
      • Krótsze pętle informacji zwrotnej → Szybsze wprowadzanie innowacji niż u konkurencji.
  2. Poprawa jakości i niezawodności oprogramowania
    • Wskaźniki: Wskaźnik awarii zmian (CFR), średni czas naprawy (MTTR), otwarte błędy
    • Wpływ:
      • Mniej awarii produkcyjnych → wyższy poziom zadowolenia klientów.
      • Szybsze rozwiązywanie incydentów → minimalizacja strat przychodów
  3. Redukcja kosztów i strat
    • Wskaźniki: Status kompilacji CI, błędy testów integracyjnych, niestabilne testy
    • Wpływ:
      • Wczesne wykrywanie błędów → niższy koszt naprawy w fazie rozwoju niż na produkcji
      • Wydajne potoki → oszczędność kosztów chmury/obliczeń
  4. Zwiększanie wydajności i morale zespołu
    • Metryki: Czas cyklu pull requesta, limity WIP, wskaźnik sukcesu wdrożeń
    • Wpływ:
      • Mniej wąskich gardeł → programiści poświęcają więcej czasu na pisanie kodu, a mniej na czekanie.
      • Automatyczne kontrole → zmniejszenie wypalenia zawodowego wynikającego z rutynowej pracy.
  5. Dopasowanie DevOps do celów biznesowych
    • Metryki: Dostarczanie jednostek sprzedażowych, wskaźnik incydentów u klientów, zobowiązania dotyczące czasu bezawaryjnej pracy
    • Wpływ:
      • Łączy działania inżynieryjne z przychodami, wzrostem liczby użytkowników i retencją.
  6. Podejmowanie decyzji w oparciu o dane
    • Metryki: Trendy w zakresie MTTR, starzenie się błędów, częstotliwość wdrożeń
    • Wpływ:
      • Nadawaj priorytet usprawnieniom o dużym wpływie
      • Uzasadnij inwestycje w automatyzację, szkolenia lub narzędzia za pomocą dowodów ROI.

Podsumowanie:

Poprzez automatyzację śledzenia i optymalizacji tych kluczowych metrów organizacje mogą uzyskać istotne korzyści, w tym:

  • Decyzje oparte na danych – wykorzystaj praktyczne wnioski do kierowania strategią i inwestycjami.
  • Doskonałość inżynieryjna – wspieraj ciągłe doskonalenie w praktykach programistycznych i operacyjnych.
  • Konkurencyjność rynkowa – dostosuj się do najlepszych w swojej klasie benchmarków (lub je przewyższaj).
  • Sukces klienta – dostarczaj niezawodne, wysokiej jakości rozwiązania, które spełniają oczekiwania użytkowników.
  • Zarządzanie i przywództwo – zapewnij przejrzystość i rozliczalność na wszystkich poziomach.

To uporządkowane podejście zapewnia inteligentniejsze procesy, lepszą wydajność i zrównoważony wzrost biznesowy.

Piśmiennictwo

  • przyspieszyć przez Forsgren, Humble & Kim
  • Dokumentacja Azure DevOps
  • Raporty z badań i oceny DevOps (DORA)

Subskrybuj bloga Freyr

Polityka prywatności