Eksplorowanie cyklu życia aplikacji DevOps

Zakończone

Chociaż praktyki DevOps mają ogromny zakres, ich głównym celem jest optymalizacja zarządzania cyklem życia aplikacji. W fikcyjnym przykładzie firmy migracja z istniejącej aplikacji do nowej aplikacji ze zaktualizowanymi funkcjami wymaga ponownego przejrzenia każdej fazy cyklu życia aplikacji. W związku z tym dowiedz się, w jaki sposób zasady metodyki DevOps mogą znacząco zmieniać sposób wdrażania poszczególnych faz, od planowania, programowania i dostarczania po operacje. W tej jednostce przejdziemy przez ogólny przegląd tych implementacji.

Fazy cyklu życia aplikacji

Fazy cyklu życia aplikacji obejmują planowanie, programowanie, dostarczanie i operacje.

Zrzut ekranu przedstawiający cykl życia metodyki DevOps i aplikacji.

Planowanie

Faza planowania obejmuje przegląd potrzeb klientów w celu określenia i zdefiniowania funkcji i możliwości oprogramowania do opracowania. Takie oprogramowanie może obejmować od poszczególnych mikrousług po portfolio składające się z wielu produktów. Wynik definiuje wymagania, zakres i kamienie milowe dotyczące programowania i wdrażania aplikacji. Z perspektywy metodyki DevOps podstawowe zagadnienia w tej fazie obejmują elastyczność, fokus skoncentrowany na kliencie, wyrównanie i widoczność.

Rozwój

Faza programowania obejmuje wszystkie aspekty tworzenia kodu aplikacji. Te aspekty obejmują programowanie, testowanie i przeglądy kodu. Aby zapewnić zgodność z praktykami devOps, kod powinien znajdować się w systemie kontroli źródła, który ułatwia współpracę i obsługuje przechowywanie wersji. Działająca wersja kodu służy do kompilowania artefaktów odpowiednich do późniejszego dostarczania. Takie artefakty mogą mieć postać plików binarnych wykonywalnych, bibliotek oprogramowania, obrazów kontenerów, pakietów instalatora, plików konfiguracji, skryptów wdrażania, a nawet dokumentacji.

Zmiany w tej fazie powinny być stosowane w małych przyrostach za pośrednictwem zautomatyzowanego testowania i kompilacji, określanego jako ciągła integracja(CI), co przyspiesza proces programowania i zwiększa elastyczność.

Dostawa

Dostarczanie to proces wdrażania artefaktów utworzonych na etapie programowania w środowiskach produkcyjnych w spójny i niezawodny sposób. Chociaż ostatecznym celem tej fazy jest pełna automatyzacja za pośrednictwem ciągłego dostarczania (CD), niektóre organizacje, szczególnie we wczesnych etapach wdrażania metodyki DevOps, mogą zdecydować się na zaimplementowanie ręcznych zatwierdzeń lub kontroli. Wraz ze wzrostem zaufania do praktyk DevOps zwykle jest możliwe pełne zautomatyzowanie tych testów. Na przykład pomyślna, nienadzorowana weryfikacja wdrożenia w środowisku przejściowym może służyć jako podstawa przejścia do środowiska produkcyjnego. Automatyzacja pomaga zapewnić skalowalność, powtarzalne i bardziej odporne procesy dostarczania (minimalizując możliwość wystąpienia błędu ludzkiego). Kluczem do pomyślnej implementacji takiego podejścia jest przestrzeganie praktyk Metodyki DevOps, w tym odpowiedniego testowania, używania obserwowanych pomiarów i ciągłego uczenia.

Dostarczanie powinno również uwzględniać aprowizowanie i konfigurowanie infrastruktury środowiska docelowego za pośrednictwem IaC. Traktowanie infrastruktury jako kodu oferuje szereg korzyści, w tym spójność, powtarzalność i elastyczność.

Operacji

Faza operacji obejmuje obsługę, monitorowanie i rozwiązywanie problemów z aplikacjami w środowiskach produkcyjnych. Z perspektywy metodyki DevOps główne cele na tym etapie to stabilność i niezawodność, szybka reakcja na zdarzenia, bezpieczeństwo i zgodność oraz zadowolenie klientów. W pewnym stopniu osiągnięcie tych celów zależy od prawidłowego wdrożenia mierzalnych wyników. Procesy Metodyki DevOps opierają się również na tak zwanej pętli opinii , które dostarczają dane odzwierciedlające bieżący stan wdrożonej aplikacji, takie jak metryki wydajności, czas odpowiedzi i ogólne środowisko użytkownika, w tym ulepszone lub obniżone działanie.

W tej fazie ważne jest zapewnienie maksymalnego poziomu współpracy między zespołami deweloperów, operacji i zabezpieczeń. Ta faza służy również jako podstawowe źródło ciągłego uczenia się.

Jaki jest ostatni etap cyklu życia aplikacji?

Jak wskazuje nazwa i obraz na początku tej lekcji ilustruje, cykl życia aplikacji jest zgodnie z projektem procesem cyklicznym. Istnieje deterministyczny początek i koniec cyklu życia aplikacji określany przez jej powstanie i wycofanie z użytku. Jednak po początkowym wdrożeniu (lub nawet wcześniej) opinie użytkowników i dane monitorowania informują o kolejnych aktualizacjach i ewolucji aplikacji.

Notatka

Należy pamiętać, że mimo że zabezpieczenia zostały wymienione tylko kilka razy w tej lekcji, zgodnie z zasadami DevSecOps, jej rola jest wszechobecna w całym cyklu życia aplikacji. W rzeczywistości należy uwzględnić zagadnienia związane z zabezpieczeniami w każdej fazie, począwszy od samego początku początkowego planowania.