Cztery poziomy dojrzałości
Materiał promocyjny 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.