Czym jest Ocena dojrzałości DevOps?
Ocena dojrzałości DevOps obejmuje całą drogę od commita do produkcji w pięciu grupach: Potok CI/CD, Wydania i wdrożenia, Niezawodność i operacje, Automatyzacja bezpieczeństwa i zgodności oraz Platforma i infrastruktura. Zespół ocenia 15 obszarów, takich jak częstotliwość integracji, ograniczanie ryzyka wdrożeń, zrównoważone dyżury czy zgodność jako kod, na pięciostopniowej skali od poziomu Ad hoc do poziomu Zoptymalizowany. Zespoły, które rzadko wydają oprogramowanie, zwykle dobrze znają objawy: ręczne kroki przy każdym wydaniu i dyżury, które wyczerpują ludzi. Oceny pokazują, który obszar jest prawdziwym wąskim gardłem. Ponieważ każdy poziom ma swój opis, programiści, inżynierowie SRE i osoby odpowiedzialne za produkt oceniają ten sam obszar według tych samych kryteriów, a różnice w ich ocenach wskazują, od czego zacząć.
Wymiary
Potok CI/CD
Jak skutecznie zespół buduje oprogramowanie, integruje zmiany i otrzymuje informację zwrotną dzięki zautomatyzowanym potokom.
Automatyzacja buildów
Jak niezawodnie i automatycznie oprogramowanie jest budowane i weryfikowane.
- Ad hocBuildy są ręczne, powolne i podatne na błędy.
- Rozwijający sięIstnieje podstawowa automatyzacja, ale jest krucha lub niekompletna.
- ZdefiniowanyBuildy działają niezawodnie przy umiarkowanym poziomie automatyzacji.
- ZarządzanyBuildy są w wysokim stopniu zautomatyzowane, a informacja zwrotna jest szybka i wiarygodna.
- ZoptymalizowanyAutomatyzacja buildów działa płynnie i stabilnie, jest stale optymalizowana, a awarie zdarzają się niemal wcale.
Częstotliwość integracji
Jak często programiści integrują zmiany ze wspólną bazą kodu.
- Ad hocIntegracja odbywa się rzadko, co prowadzi do dużych i ryzykownych scaleń.
- Rozwijający sięZespół próbuje integrować zmiany częściej, ale wciąż brakuje konsekwencji.
- ZdefiniowanyCodzienna integracja jest powszechna i ogranicza konflikty przy scalaniu.
- ZarządzanyIntegracja jest ciągła i stabilna w całym zespole.
- ZoptymalizowanyIntegracja niemal w czasie rzeczywistym, małymi i bezpiecznymi porcjami zmian, zapewnia szybki przepływ pracy.
Informacja zwrotna z potoku
Szybkość i przejrzystość informacji, które potok przekazuje programistom.
- Ad hocInformacja zwrotna jest powolna, niejasna lub niewiarygodna.
- Rozwijający sięInformacja zwrotna istnieje, ale często jest opóźniona lub zaszumiona.
- ZdefiniowanyInformacja zwrotna z potoku pojawia się w miarę szybko i pozwala podjąć działania.
- ZarządzanyInformacja zwrotna jest szybka, jasna i wspiera sprawne iteracje programistów.
- ZoptymalizowanyInformacja zwrotna jest natychmiastowa i precyzyjna, co pozwala pracować w tempie najlepszych zespołów.
Wydania i wdrożenia
Jak bezpiecznie, przewidywalnie i często zespół dostarcza zmiany użytkownikom.
Automatyzacja wdrożeń
Poziom automatyzacji i powtarzalności wdrożeń.
- Ad hocWdrożenia są ręczne, ryzykowne i podatne na błędy.
- Rozwijający sięWprowadzono pewną automatyzację, ale stosuje się ją niekonsekwentnie.
- ZdefiniowanyWdrożenia są w większości zautomatyzowane i przewidywalne.
- ZarządzanyWdrożenia są w pełni zautomatyzowane, a niepowodzenia zdarzają się rzadko.
- ZoptymalizowanyCiągłe wdrażanie zapewnia bezpieczne, szybkie i odwracalne wydania.
Ograniczanie ryzyka wdrożeń
Jak skutecznie zespół minimalizuje ryzyko podczas wydań.
- Ad hocWydania to ryzykowne wdrożenia typu „big bang”.
- Rozwijający sięZespół w pewnym stopniu ogranicza ryzyko, ale w niewielkim zakresie.
- ZdefiniowanyFlagi funkcji i stopniowe wdrażanie są stosowane regularnie.
- ZarządzanyWydania są mało ryzykowne dzięki solidnym zabezpieczeniom i monitorowaniu.
- ZoptymalizowanyZaawansowane strategie wydań zapobiegają awariom i umożliwiają natychmiastowe wycofanie zmian.
Częstotliwość dostarczania
Jak często wartość trafia do użytkowników.
- Ad hocWydania są rzadkie, nieprzewidywalne i bardzo nieregularne.
- Rozwijający sięRytm wydań się poprawia, ale wciąż jest nierówny.
- ZdefiniowanyZespół wydaje zmiany według przewidywalnego harmonogramu.
- ZarządzanyCykle wydań są częste i niezawodne.
- ZoptymalizowanyCiągłe dostarczanie zapewnia szybki i bezpieczny przepływ wartości.
Niezawodność i operacje
Jak dobrze zespół obserwuje działające systemy, reaguje na problemy i dba o ich kondycję.
Monitorowanie i obserwowalność
Jak dobrze zespół rozumie kondycję i zachowanie systemu.
- Ad hocMonitorowanie jest ograniczone lub reaktywne, a problemy są wykrywane za późno.
- Rozwijający sięIstnieją podstawowe dashboardy, ale w widoczności są poważne luki.
- ZdefiniowanyMonitorowanie zapewnia wystarczającą widoczność większości komponentów.
- ZarządzanyRozbudowana obserwowalność oparta na logach, metrykach i śladach umożliwia szybką diagnozę.
- ZoptymalizowanyKompleksowa obserwowalność zapewnia predykcyjne wnioski i automatyczne wykrywanie problemów.
Reagowanie na incydenty
Jak sprawnie zespół reaguje na incydenty i je rozwiązuje.
- Ad hocObsługa incydentów jest chaotyczna, a odpowiedzialność niejasna.
- Rozwijający sięProcesy są coraz lepiej uporządkowane, ale rozwiązywanie incydentów wciąż bywa nierówne.
- ZdefiniowanyIncydenty są obsługiwane metodycznie, z umiarkowaną sprawnością.
- ZarządzanyReakcja jest szybka i skoordynowana, a MTTR niski.
- ZoptymalizowanyBardzo dojrzałe zarządzanie incydentami z postmortemami nastawionymi na wyciąganie wniosków.
Zrównoważone dyżury
Sprawiedliwość i skuteczność procesów dyżurowych.
- Ad hocDyżury są uciążliwe, nieprzewidywalne lub niesprawiedliwe.
- Rozwijający sięObciążenie staje się łatwiejsze do opanowania, ale problemy nie znikają.
- ZdefiniowanyRotacja jest sprawiedliwa, a liczba alertów rozsądna.
- ZarządzanyDobra higiena dyżurów, dobrze dostrojone alerty i odpowiednie narzędzia.
- ZoptymalizowanyAlerty po godzinach pracy zdarzają się sporadycznie, a większość problemów obsługuje automatyzacja.
Automatyzacja bezpieczeństwa i zgodności
Jak głęboko bezpieczeństwo i zgodność są zautomatyzowane i wbudowane w cały potok dostarczania.
Integracja bezpieczeństwa
Jak skutecznie praktyki bezpieczeństwa są wbudowane w procesy wytwarzania oprogramowania.
- Ad hocKontrole bezpieczeństwa są ręczne lub odbywają się późno w procesie.
- Rozwijający sięIstnieją podstawowe automatyczne skany, ale mają wąski zakres.
- ZdefiniowanyBezpieczeństwo jest zintegrowane z CI/CD, a skanowanie odbywa się konsekwentnie.
- ZarządzanyKompleksowe, zautomatyzowane kontrole bezpieczeństwa obejmują cały potok.
- ZoptymalizowanyCiągłe, inteligentne zabezpieczenia zapobiegają podatnościom na wczesnym etapie.
Zarządzanie podatnościami
Jak szybko i skutecznie podatności są wykrywane i usuwane.
- Ad hocPodatności są wykrywane późno, a ich usuwanie trwa długo.
- Rozwijający sięProcesy się poprawiają, ale wciąż są niespójne.
- ZdefiniowanyReagowanie na podatności jest przewidywalne i mierzone.
- ZarządzanyPodatności są usuwane szybko i sprawnie, a zespół proaktywnie im zapobiega.
- ZoptymalizowanyWykrywanie, priorytetyzacja i usuwanie podatności są zautomatyzowane i działają na dużą skalę.
Zgodność jako kod
Wykorzystanie automatyzacji do egzekwowania wymogów regulacyjnych, wymagań bezpieczeństwa i polityk.
- Ad hocZadania związane ze zgodnością są ręczne i reaktywne.
- Rozwijający sięWprowadzono niektóre automatyczne kontrole.
- ZdefiniowanyKluczowe polityki są zintegrowane z procesami automatyzacji.
- ZarządzanyZgodność jest rutynowo weryfikowana za pomocą automatycznych kontroli.
- ZoptymalizowanyZgodność jest zapewniana w sposób ciągły i egzekwowana w czasie rzeczywistym.
Platforma i infrastruktura
Na ile zautomatyzowana, spójna i odporna jest platforma oraz infrastruktura, na której działają systemy.
Automatyzacja infrastruktury
Jak infrastruktura jest przygotowywana, zarządzana i skalowana.
- Ad hocInfrastruktura jest przygotowywana ręcznie, z dużym ryzykiem rozjazdu konfiguracji.
- Rozwijający sięCzęściowa automatyzacja za pomocą skryptów lub narzędzi.
- ZdefiniowanyInfrastruktura jako kod jest wdrożona w kluczowych obszarach.
- ZarządzanyW pełni zautomatyzowana infrastruktura zapewnia spójne i powtarzalne środowiska.
- ZoptymalizowanySamonaprawiająca się, w pełni orkiestrowana infrastruktura skaluje się inteligentnie.
Spójność środowisk
Na ile spójne są środowiska deweloperskie, przedprodukcyjne i produkcyjne.
- Ad hocŚrodowiska znacznie się różnią, a problemy często występują tylko w jednym z nich.
- Rozwijający sięŚrodowiska są częściowo ustandaryzowane, ale niespójności pozostają.
- ZdefiniowanyŚrodowiska są w większości ujednolicone i zachowują się przewidywalnie.
- ZarządzanyŚrodowiska są bardzo spójne i zarządzane za pomocą automatyzacji.
- ZoptymalizowanyWszystkie środowiska są w pełni odtwarzalne, skonteneryzowane i stabilne.
Niezawodność platformy
Dostępność, odporność i tolerancja systemu na błędy.
- Ad hocAwarie są częste, a praktyki dbania o niezawodność ograniczone.
- Rozwijający sięNiezawodność nieznacznie się poprawia, ale problemy nie ustępują.
- ZdefiniowanyNiezawodność jest akceptowalna, a usprawnienia są w toku.
- ZarządzanyWysoka niezawodność dzięki solidnym działaniom zapobiegawczym.
- ZoptymalizowanyWyjątkowa odporność dzięki automatycznemu przywracaniu działania i architekturom odpornym na awarie.
Kiedy należy skorzystać z tej kontroli stanu zdrowia
- Aby ustalić punkt wyjścia dla kompetencji zespołu w zakresie DevOps i ciągłego dostarczania.
- Podczas planowania prac inżynieryjnych, aby zdecydować, czy następna w kolejce jest automatyzacja, niezawodność czy bezpieczeństwo.
- Aby śledzić w czasie dojrzałość DevOps w poszczególnych zespołach lub w całej organizacji.
- Gdy tworzycie lub rozwijacie praktyki inżynierii platformowej i SRE.
- Podczas transformacji DevOps, aby dać zespołom wspólną mapę usprawnień.
Porady i wskazówki
- Poproście inżynierów, specjalistów SRE i interesariuszy produktowych o samodzielne oceny, aby ujawniły się różne spojrzenia na dojrzałość.
- Zacznijcie od obszarów, w których oceny najbardziej się rozchodzą. Często wskazują wąskie gardła, których nikt dotąd nie nazwał.
- Dla każdego nisko ocenionego obszaru uzgodnijcie jeden krok w stronę kolejnego poziomu. Nie próbujcie od razu osiągnąć poziomu Zoptymalizowany wszędzie.
- Powtarzajcie ocenę co kwartał, aby widzieć nawet niewielkie postępy.
- Zanim zaczniecie dyskutować o ocenach, przeczytajcie wspólnie opisy poziomów, aby wszyscy zgadzali się co do tego, jak wygląda dobry stan.