Ciągłe dostarczanie a ciągłe wdrażanie

Przyśpiesz dostarczanie wysokiej jakości kodu klientom dzięki tym dwóm sposobom automatyzacji.

Co to jest ciągłe dostarczanie i ciągłe wdrażanie?

Wraz z ciągłą integracją, ciągłym dostarczaniem i ciągłym wdrażaniem są to praktyki, które automatyzują fazy dostarczania oprogramowania. Te praktyki umożliwiają zespołom programistycznym wydawanie nowych funkcji, ulepszeń i poprawek z większą szybkością, dokładnością i produktywnością.

Ciągłe dostarczanie i ciągłe wdrażanie mają wiele wspólnego. Aby zrozumieć różnice między tymi praktykami i dowiedzieć się, którą z nich chcesz zaimplementować, musimy określić fazy dostarczania oprogramowania, które możemy zautomatyzować.

Automatyzowanie procesu dostarczania oprogramowania

Konsumenci żądają coraz większej personalizacji i zabezpieczeń produktów. Aby spełnić te wymagania i zapewnić szybsze i bardziej niezawodne dostarczanie oprogramowania, zespoły programistyczne mogą przyjąć kulturę DevOps.

Kultura DevOps przełamuje odizolowane dyscypliny i jednoczy ludzi, procesy i technologie w celu poprawy współpracy i koordynacji. W efekcie zmiany kodu docierają do środowiska produkcyjnego — a nowa wartość do klienta — tak szybko, jak to możliwe.

Mimo że w ramach metodyki DevOps zespół programistyczny, zespół ds. operacji IT, zespół ds. inżynierii jakości i zespół ds. zabezpieczeń ściśle ze sobą współpracują, proces dostarczania oprogramowania pozostaje równie skomplikowany. Metodyka DevOps dzieli dostarczanie oprogramowania na następujące fazy: planowanie, opracowywanie, dostarczanie, wdrażanie i obsługiwanie.

Dostarczanie oprogramowania w metodyce DevOps

Bez automatyzacji zespoły programistyczne muszą ręcznie kompilować, testować i wdrażać oprogramowanie, co obejmuje następujące etapy:

  • Ewidencjonowanie, testowanie i weryfikowanie kodu.
  • Scalanie zmian kodu w gałęzi głównej.
  • Przygotowywanie kodu do udostępnienia.
  • Tworzenie artefaktu możliwego do wdrożenia.
  • Wypychanie kodu do środowiska produkcyjnego.

Fazy automatyzacji

Ciągła integracja, ciągłe dostarczanie i ciągłe wdrażanie to praktyki, które automatyzują aspekty faz opracowywania i dostarczania. Każda z tych praktyk, poczynając od ciągłej integracji, to kolejny krok na drodze do pełnej automatyzacji.

Różnica między ciągłym dostarczaniem i ciągłym wdrażaniem

Integracja ciągła

Aby opisać ciągłe dostarczanie i ciągłe wdrażanie, zaczniemy od ciągłej integracji. W przypadku ciągłej integracji faza opracowywania — kompilowanie i testowanie kodu — jest w pełni zautomatyzowana. Za każdym razem, gdy zatwierdzisz kod, zmiany są weryfikowane i scalane z gałęzią główną, a kod jest pakowany jako artefakt kompilacji.

Ciągłe dostarczanie

Ciągłe dostarczanie automatyzuje następną fazę: dostarczenie. W przypadku ciągłego dostarczania za każdym razem, gdy jest dostępny nowy artefakt kompilacji, jest on automatycznie umieszczany w żądanym środowisku i wdrażany.

Ciągła integracja i ciągłe dostarczanie (CI/CD)

Gdy zespoły implementują zarówno ciągłą integrację, jak i ciągłe dostarczanie (CI/CD), fazy opracowywania i dostarczania są zautomatyzowane. Kod pozostaje gotowy do produkcji w dowolnym momencie. Wszystko, co zespoły muszą zrobić, to ręczne wyzwolenie przejścia z fazy programowania do fazy wdrożenia — udostępniając automatyczny artefakt kompilacji do automatycznego wdrożenia — co można zrobić za pomocą naciśnięcia przycisku.

Ciągłe wdrażanie

Ciągłe wdrażanie umożliwia automatyzację całego procesu — od zatwierdzenia kodu do produkcji. Wyzwalacz między fazami opracowywania i dostarczania jest automatyczny, więc zmiany kodu są wypychane na żywo, gdy tylko zostaną zweryfikowane i przejdą pomyślnie wszystkie testy. Oznacza to, że klienci otrzymują ulepszenia, jak tylko stają się one dostępne.

Ciągłe dostarczanie a ciągłe wdrażanie: co należy wybrać?

Niezależnie od tego, czy zastosujesz ciągłe dostarczanie, czy ciągłe programowanie, znajdziesz narzędzia, które Ci w tym pomogą.

Zanim podejmiesz decyzję, którą z tych praktyk zastosować, ustal, czy Twoja organizacja ma kulturę DevOps, która może je wspierać. Ponadto, ponieważ zespoły DevOps dążą do zautomatyzowania całego procesu dostarczania oprogramowania, pytanie nie brzmi „co jest lepsze?”. Zamiast tego należy zapytać „czy potrzebny nam jest ręczny wyzwalacz między ciągłą integracją i ciągłym dostarczaniem?”.

Szukając odpowiedzi, skorzystaj z następujących pytań:

  • Czy możesz wdrażać bez zatwierdzenia uczestników projektu?
  • Czy Twoje wymagania dotyczące systemu i kontroli umożliwiają kompleksową automatyzację?
  • Czy możesz stopniowo uwidaczniać zmiany produkcyjne swoim klientom?
  • Czy Twoja organizacja szybko reaguje na błędy w środowisku produkcyjnym?

Jeśli wszystkie odpowiedzi są twierdzące, warto rozważyć kompleksowe zastosowanie ciągłego wdrażania i automatycznego dostarczania oprogramowania — od zatwierdzenia kodu do produkcji.

Jeśli choć jedna odpowiedź była negatywna, prawdopodobnie warto zacząć od ciągłej integracji i ciągłego dostarczania (CI/CD). Zautomatyzujesz tworzenie kodu gotowego do produkcji, który zawsze jest o jedno zatwierdzenie ręczne od wdrożenia. Z czasem możesz zacząć wprowadzać ciągłe wdrażanie i pełną automatyzację procesu dostarczania oprogramowania.

W każdym przypadku skorzystasz ze wspólnych zalet poszczególnych rozwiązań:

  • Zmiany są automatycznie kompilowane, weryfikowane i testowane.
  • Kod jest zawsze możliwy do wdrożenia — koniec z nerwami w dniu wydania.
  • Wersje są szybciej oceniane przez uczestników projektu i klientów.
  • Deweloperzy są wydajniejsi, ponieważ mają mniej zadań ręcznych i administracyjnych.
  • Ze względu na to, że zmiany są małe i częste, błędy zdarzają się rzadko i powodują minimalną niestabilność.

Narzędzia do ciągłej integracji, ciągłego dostarczania i ciągłego wdrażania

W kwestii automatyzowania dostarczania oprogramowania zespoły DevOps polegają na łańcuchach narzędzi — szeregu połączonych programów do opracowywania oprogramowania. Narzędzia, których użyjesz, zależą od wybranej metody automatyzacji i etapów, które ta metoda automatyzuje. Oto kilka przykładów.

Zacznij korzystać z metodyki DevOps na platformie Azure

Odkryj narzędzia do ciągłego dostarczania i ciągłego programowania — a także narzędzia ułatwiające inne praktyki metodyki DevOps w chmurze.