Eksplorowanie praktyk metodyki DevOps
Włączenie metodyki DevOps do cyklu życia aplikacji obejmuje zaimplementowanie szeregu praktyk DevOps. Możliwość maksymalizacji korzyści z metodyki DevOps jest bardzo zależna od zakresu, w jakim ta implementacja zakończyła się pomyślnie. W naszym przykładowym scenariuszu organizacja musiałaby wprowadzić znaczące zmiany w modelu operacyjnym, począwszy od promowania współpracy i komunikacji między zespołami deweloperów i operacyjnych, a także inwestowania w kontrolę wersji, automatyzację, ciągłą integrację, ciągłe testowanie, ciągłe dostarczanie i ciągłe monitorowanie. W tej jednostce zapoznasz się z tymi praktykami.
Kontrola wersji
Kontrola wersji to praktyka zarządzania aktualizacjami kodu przez przechowywanie ich w wyznaczonych repozytoriach, śledzenie poprawek i utrzymywanie historii zmian. Ułatwia to przeglądy kodu i możliwość odzyskiwania po błędach programowania. Ponadto systemy kontroli wersji (VCS), takie jak Git, umożliwiają współpracę w tworzeniu kodu między wieloma deweloperami za pośrednictwem takich funkcji jak klonowanie repozytorium, żądania ściągnięcia, scalanie zmian kodu, rozwiązywanie konfliktów i obsługa wycofywania. Korzystanie z kontroli wersji jest podstawową praktyką metodyki DevOps. Kontrola wersji jest również wymaganiem wstępnym dla takich rozwiązań, jak ciągła integracja i infrastruktura jako kod.
Ciągła integracja i ciągłe testowanie
Jedną z podstawowych praktyk metodyki DevOps jest automatyzacja. W takim przypadku automatyzacja ma zastosowanie do procesu scalania zmian kodu, testowania ich i tworzenia wynikowych artefaktów na wczesnym etapie cyklu życia aplikacji. Celem jest wykrycie wszelkich potencjalnych problemów w fazie opracowywania, ponieważ minimalizuje to nakład pracy i koszty związane z ich rozwiązaniem. Testy automatyczne sprawdzają, czy zmiany kodu nie wprowadziły błędów ani problemów z regresją.
Ciągłe dostarczanie (CD)
Ciągłe dostarczanie automatyzuje proces wdrażania artefaktów utworzonych w ramach ciągłej integracji, dzięki czemu są one dostępne dla użytkowników. Ciągłe wdrażanie automatyzuje postęp tych artefaktów za pośrednictwem różnych środowisk, takich jak testowanie, przemieszczanie i produkcja. Ciągła integracja i ciągłe dostarczanie (CI/CD) razem tworzą ujednolicony, usprawniony, kompleksowy proces tworzenia i dostarczania oprogramowania.
Ciągłe monitorowanie
Ciągłe monitorowanie zapewnia zautomatyzowany wgląd w kondycję i wydajność całego stosu aplikacji w czasie rzeczywistym, w tym jego podstawową infrastrukturę. To osiąga się poprzez zbieranie danych telemetrycznych, w tym dzienników i metryk, oraz dostosowywalne alerty, które dostarczają powiadomienia o nietypowym zachowaniu, ułatwiając szybkie działania naprawcze.
Ciągłe zabezpieczenia (DevSecOps)
Zabezpieczenia są istotną częścią każdej fazy cyklu życia aplikacji opartej na metodyce DevOps, co jest powodem tworzenia terminów DevSecOps. DevSecOps to rozszerzenie metodyki DevOps, które koncentruje się na integrowaniu praktyk zabezpieczeń na każdym etapie — od planowania, kodowania, testowania i wdrażania po operacje.
Infrastruktura jako kod (IaC)
Infrastruktura jako kod jest integralnym składnikiem nowoczesnych rozwiązań programistycznych i operacyjnych. Obejmuje ona użycie metod programowania do aprowizowania usług infrastruktury i zarządzania nimi. IaC definiuje składniki infrastruktury, takie jak serwery, urządzenia sieciowe i bazy danych, przy użyciu kodu. Taki kod zazwyczaj znajduje się w vcS, który zarządza i śledzi zmiany w konfiguracjach infrastruktury. Użycie kodu ułatwia zautomatyzowaną aprowizację i konfigurację infrastruktury, zwiększenie wydajności, spójności i skalowalności. Ponadto usługa IaC może być (i często jest) zintegrowana z ciągłą integracją i ciągłym wdrażaniem, tworząc kompleksową strategię dostarczania oprogramowania, łącząc dostarczanie infrastruktury z kompilacją aplikacji, testowaniem i wdrażaniem w jedną ciągłą, w pełni zautomatyzowaną sekwencję.