Poznaj ciągłe dostarczanie
Ciągła integracja (CI) i ciągłe dostarczanie (CD) to ściśle powiązane koncepcje metodyki DevOps, reprezentujące dwa odrębne etapy procesu dostarczania oprogramowania. Jak wiesz z poprzedniego modułu, celem integracji ciągłej (CI) jest kompilowanie i testowanie artefaktów oprogramowania. Usługa CD automatyzuje proces dostarczania tych artefaktów do zamierzonych adresatów. Implementując dysk CD, organizacje, takie jak opisane w przykładowym scenariuszu, mogą wyeliminować ręczne nakłady pracy związane z wdrażaniem aplikacji. W tej jednostce poznasz cechy i zalety CD.
Co to jest ciągłe dostarczanie?
Ciągłe dostarczanie obejmuje rozwiązania, które automatyzują generowanie wydań oprogramowania, zapewniają, że są w stanie wdrażania i udostępniają je konsumentom. Koncentruje się on na zminimalizowaniu czasu na wdrożenie oraz czasu na ograniczenie(TTM), znanego również jako czas na korygowanie (TTR). Ten ostatni odnosi się do scenariuszy, w których nowo wydana wersja aplikacji dociera do środowiska produkcyjnego i musi zostać wycofana.
Ciągłe dostarczanie zwykle jest procesem iteracyjnym, w którym ten sam artefakt, reprezentujący najnowszą wersję oprogramowania, przechodzi przez kilka środowisk, które są dedykowane, na przykład do testowania akceptacyjnego użytkownika, środowiska stagingowego i produkcji. Zapewnia to możliwość weryfikacji jej funkcjonalności i stabilności.
Warto zauważyć, że nomenklatura DevOps zawiera dwa ściśle powiązane terminy, które mają podobne nazwy i ten sam akronim — ciągłe dostarczanie i ciągłe wdrażanie. Obie zajmują się automatyzowaniem i usprawnianie procesu dostarczania oprogramowania. Główną różnicą między nimi jest to, że ten ostatni dąży do wdrożenia pełnej automatyzacji, w tym środowiska produkcyjnego, podczas gdy w przypadku pierwszego, ostateczne dostarczanie wymaga ręcznego zatwierdzenia.
Podobnie jak CI, automatyzacja opiera się na definicjach wydania utworzonych przez deweloperów i zaimplementowanych na platformie do hostingu repozytorium. Na przykład usługa GitHub oferuje w tym celu przepływ pracy funkcji GitHub Actions, podczas gdy usługa Azure DevOps korzysta z usługi Azure Pipelines.
Jakie są zalety ciągłego dostarczania?
Korzyści związane z ciągłym dostarczaniem są bezpośrednimi wynikami automatyzacji i podejścia shift-left. Najbardziej istotne są następujące:
- Przyspieszone Cykle Wydania: Organizacje mogą zwiększyć szybkość dostarczania nowych funkcji, ulepszeń i poprawek błędów, co przekłada się na skrócenie czasu wprowadzenia na rynek, co ostatecznie przynosi korzyści klientom.
- zwiększona odporność: testowanie automatyczne umożliwia wykrywanie problemów na wczesnym etapie procesu dostarczania. Wdrożenie automatyczne zapewnia spójność w środowiskach i minimalizuje potencjalny wpływ błędów ludzkich. Automatyzacja ma również tendencję do znacznego uproszczenia procesu wycofywania w przypadku konieczności powrotu do poprzedniej wersji oprogramowania. Wdrażanie przyrostowe (które omówimy w dalszej części tego modułu) ułatwia odnajdywanie wszelkich potencjalnych problemów, zanim będą miały one szerszy wpływ na skalę. Szybkie sprzężenia zwrotne skracają czas odpowiedzi w przypadku wykrycia problemu.
- Ulepszona współpraca: CD promuje interakcję między zespołami deweloperów, operacji i zabezpieczeń dzięki integracji z CI, co skutkuje jednym spójnym procesem obejmującym budowanie, testowanie i dostarczanie.
- Efektywne wykorzystanie zasobów: automatyzacja ma tendencję do minimalizowania czasu poświęcanego na zadania ręczne, powtarzalne i czasochłonne, co skutkuje zoptymalizowanym użyciem zasobów ludzkich.