Cztery poziomy dojrzałości

DevOps umożliwia skrócenie czasu wdrażania o 70% i redukcję testów regresyjnych z 5 dni do 5 godzin. Osiągnięcie takich rezultatów wymaga jednak stałego doskonalenia i rozszerzenia praktyk zalecanych przez tę metodologię.

Podejście DevOps nakazuje bliską współpracę pionów rozwoju i operacji, co ma na celu usprawnienie przebiegu procesów wiodących oraz poprawę jakości produktu. Wspierane jest to przez automatyzację infrastruktury i procesów oraz ciągłe mierzenie wydajności wprowadzanych zmian. Jednocześnie wymaga ujednolicenia ośrodków odpowiedzialności oraz edukowania pionów IT, że wspólnie można łatwiej i szybciej osiągać zamierzone cele. Wprowadzanie praktyk DevOps wiąże się jednak z szeregiem zmian organizacyjnych i kulturowych, a dojście do perfekcji wymaga czasu.

Poziomy dojrzałości DevOps w organizacjach
Stosowany Niektóre zespoły wykonują czynności związane z DevOps, ale praktyki te są niespójne.Przedsiębiorstwo nie ma zdefiniowanych standardów procesowych. Automatyzacjajest stosowana, ale nie zawsze zgodnie z,modelem.
Powtarzalny(spójny) Przedsiębiorstwo ma zdefiniowane standardy pracy. Niektóre zespoły wykonują czynności związane zmetodyką, stosując wyznaczone standardy. Brak zespołu dedykowanego lub COEpomagających we wdrażaniu praktyk DevOps. Automatyzacja, jeśli używana, jeststosowana według standardów przedsiębiorstwa.
Niezawodny Istnieją mechanizmy wspierania praktyk DevOps, które jednocześnie zapewniająprzestrzeganie wyznaczonych norm. W firmie działa zespół mentorów, który pomagawe wprowadzaniu najlepszych praktyk i ulepszeniu oraz zajmuje się edukacją.
Skalowalny Wdrażanie praktyk DevOps jest usystematyzowane w całym przedsiębiorstwie. Funkcje zespółDevOps będący integralną częścią firmy, którego zadaniem jest wprowadzanieciągłych udoskonaleń. Dobre praktyki są wprowadzane w całym przedsiębiorstwie.Informacje zwrotne są wykorzystywane do poprawy standardów.

Tabela przedstawia cztery poziomy rozwoju i doskonalenia procesów ciągłej dostawy oprogramowania. Poziomy te odnoszą się do czterech etapów procesu dostarczania oprogramowania: (1) planowania i pomiaru, (2) programowania i testowania, (3) wdrażania (4) monitoringu i optymalizacji. Mając wiedzę na temat dojrzałości własnej organizacji, można przyspieszyć adaptację DevOps, aby osiągać coraz większe korzyści, jednocześnie unikając kosztownych pomyłek.

Chcąc osiągać kolejne poziomy dojrzałości, organizacja musi zadbać nie tylko o poszczególne etapy procesu dostarczania oprogramowania, ale również o powiązane z tym etapem praktyki i operacje. Na przykład, do skutecznego wdrożenia ciągłości w testowaniu rozwiązań, potrzebna jest jednocześnie zdolność ciągłej integracji i kompilacji aplikacji, jak i zdolność stałego wdrażania zmian w środowisku testowym. Na każdym z czterech etapów dostarczania oprogramowania organizacja może niezależnie osiągać kolejne poziomy dojrzałości, a w każdym etapie ścieżka rozwoju wygląda nieco inaczej.

Planowanie i pomiar

Na poziomie stosowanym organizacja określa cele biznesowe w dokumentacji do każdego projektu, aby były zgodne ze strategią, ale zarządzanie zasobami odbywa się na poziomie działów. Wraz z dojrzewaniem organizacji potrzeby biznesowe są dokumentowane z uwzględnieniem korporacyjnego kontekstu i mierzone pod kątem zgodności z oczekiwaniami klienta. Te potrzeby otrzymają następnie priorytety i są przydzielane do realizacji oraz łączone z wymaganiami projektu. Zmiany dotyczące projektu lub zakresu prac są zarządzane na poziomie całego portfolio.

Programowanie i testowanie

Na poziomie stosowanym zespoły projektowe i programistyczne realizują wiele cykli tworzenia oprogramowania w formie dokumentów mających przedstawiać ich wymagania, projekty czy plan testów. Zmiany w kodzie czy kolejne kompilacje aplikacji są przeprowadzane periodycznie, aby zapewnić zasoby potrzebne do realizacji zadań. Wraz z dojrzewaniem organizacji cykle deweloperskie są powiązywane ze sobą na poziomie obiektów, aby poprawić współpracę w ramach poszczególnych zadań. Dostarczanie aplikacji, integracja i kompilacja z testami jednostkowymi są przeprowadzane rutynowo i ciągle dla poszczególnych programistów, zespołów, aplikacji i produktów.

Wdrożenie

Na poziomie stosowanym wdrożenia są planowane w cyklu rocznym. Krytyczne poprawki czy inne nieplanowane wersje są wprowadzane, jeśli pojawi się taka potrzeba. Wszystkie są zarządzane z wykorzystaniem arkusza aktualizowanego podczas bezpośrednich spotkań. Analiza wpływu zmian jest prowadzona ręcznie. Wraz z doskonaleniem praktyk nowe wersje oprogramowania są zarządzane centralnie, z użyciem automatycznych mechanizmów śledzenie statusu poszczególnych aplikacji. Wdrożenia stają się zautomatyzowane, podobnie jak dostarczanie zasobów infrastruktury.

Monitoring i optymalizacja

Na poziomie stosowanym wdrożone zasoby są monitorowane, a reakcja na problemy ma miejsce w momencie ich wystąpienia i odbywa się bez uwzględnienia kontekstu aplikacji, której dotyczą. Koordynacja między zespołami rozwoju i operacji ma z reguły nieformalny charakter. Informacje zwrotne od użytkowników są zbierane poprzez sformalizowane programy. Wraz z dojrzewaniem organizacji monitoring jest realizowany z uwzględnieniem kontekstu aplikacji, optymalizacja następuje już w środowisku QA, aby poprawić stabilność, dostępność I ogólną wydajność. Opinie użytkowników są monitorowane, aby optymalizować aplikacje, co jest częścią programu ciągłego poprawiania.