Pomoc: co to jest ciągłe dostarczanie

Wcześniej my powiedział o Ciągłej Integracji (CI). Kontynuujmy dostarczanie ciągłe. Jest to zestaw metod tworzenia oprogramowania. Pomaga upewnić się, że Twój kod jest gotowy do wdrożenia.

Pomoc: co to jest ciągłe dostarczanie
/Pixabay/ błękitny budgie / PL

Historia

Wyrażenie ciągłe dostarczanie można ponownie zobaczyć zwinny manifest z 2001 roku na początku listy podstawowych zasad: „Priorytetem jest rozwiązywanie problemów klientów poprzez ciągłe dostarczanie aktualnego oprogramowania”.

W 2010 roku ukazał się album Jez Humble i Davida Farleya книгу poprzez dostawę ciągłą. Według autorów CD uzupełnia to podejście Ciągła integracja i pozwala uprościć przygotowanie kodu do wdrożenia.

Po opublikowaniu książki podejście to zaczęło zyskiwać na popularności i w ciągu zaledwie kilku lat zostało niemal powszechnie zaakceptowane. Według ankieta, przeprowadzonego wśród ponad 600 programistów i menedżerów IT w 2014 roku, 97% menedżerów technicznych i 84% programistów znało Continuous Delivery.

Teraz to podejście pozostaje jednym z najpopularniejszych. Według badania przeprowadzonego w 2018 roku z udziałem społeczności IT DevOps i Jenkins Community, to używa połowa z ponad tysiąca ankietowanych respondentów.

Jak działa ciągłe dostarczanie?

Podstawą CD jest gotowość kodu do wdrożenia. Aby zrealizować to zadanie wykorzystuje się automatyzację procesu przygotowania oprogramowania do wydania. Powinien być standardem w różnych środowiskach programistycznych, co pomoże szybko znaleźć słabe punkty i je zoptymalizować. Na przykład przyspiesz testowanie.

Przykład procesu Continuous Delivery wygląda następująco:

Pomoc: co to jest ciągłe dostarczanie

Jeśli podejście Continuous Integration odpowiada za automatyzację pierwszych dwóch etapów, to Continuous Delivery odpowiada za dwa kolejne. Stabilność procesu zapewniają m.in. systemy Zarządzanie konfiguracją. Monitorują zmiany w infrastrukturze, bazach danych i zależnościach. Samo wdrożenie może zostać zautomatyzowane lub wykonane ręcznie.

Na proces nakładane są następujące wymagania:

  • Dostępność informacji o gotowości do wejścia na środowisko produkcyjne i gotowości do natychmiastowego wydania (narzędzia CD testują kod i pozwalają ocenić efekt zmian w wydaniu).
  • Całkowita odpowiedzialność za produkt końcowy. Zespół produktowy – menedżerowie, programiści, testerzy – myślą o wyniku, a nie tylko o swoim obszarze odpowiedzialności (rezultatem jest działające wydanie, które jest dostępne dla użytkowników produktu).

Na płytach CD jest zwykle używany Przegląd koduoraz zbierania opinii klientów – zasada ciemne uruchomienie. Nowa funkcja jest najpierw udostępniana niewielkiej grupie użytkowników – ich doświadczenie w interakcji z produktem pomaga znaleźć niedociągnięcia i błędy, które nie zostały zauważone podczas wewnętrznych testów.

Jaka jest korzyść

Continuous Delivery pomaga uprościć wdrażanie kodu, co pozytywnie wpływa na produktywność i zmniejsza prawdopodobieństwo wypalenia pracowników. Ostatecznie zmniejsza to ogólne koszty rozwoju. Na przykład firma CD pomogła jednemu z zespołów HP zredukować takie koszty o 40%.

Ponadto, według badania z 2016 roku (s. 28 dokument) - firmy, które wdrożyły CD, rozwiązują problemy związane z bezpieczeństwem informacji o 50% szybciej niż te, które nie stosują tego podejścia. W pewnym stopniu różnicę tę można wytłumaczyć wydajnością narzędzi do automatyzacji procesów.

Kolejnym plusem jest przyspieszenie wydań. Ciągłe dostawy w fińskim studiu deweloperskim pomógł zwiększyć szybkość tworzenia kodu o 25%.

Potencjalne trudności

Pierwszym i głównym problemem jest konieczność przebudowy znanych procesów. Aby pokazać korzyści płynące z nowego podejścia, warto stopniowo przestawiać się na CD, zaczynając od nie najbardziej pracochłonnych aplikacji.

Drugim potencjalnym problemem jest duża liczba gałęzi kodu. Konsekwencją „rozgałęzienia” są częste konflikty i dalsza strata dużej ilości czasu. Możliwe rozwiązanie - podejście żadnych gałęzi.

W szczególności w niektórych firmach główne trudności pojawiają się przy testowaniu - zajmuje to zbyt dużo czasu. Wyniki testów często trzeba analizować ręcznie, ale możliwym rozwiązaniem może być zrównoleglenie testów na wczesnych etapach wdrażania CD.

Warto także przeszkolić pracowników do pracy z nowymi narzędziami – wstępny program edukacyjny pozwoli zaoszczędzić czas i wysiłek programistów.

Pomoc: co to jest ciągłe dostarczanie
/flickr/ h.ger1969 / CC BY-SA

Narzędzia

Oto kilka otwartych narzędzi do ciągłego dostarczania:

  • GoCD — serwer do ciągłego dostarczania w języku Java i JRuby on Rails. Pozwala kontrolować cały proces dostarczania aplikacji: kompilacja – test – wydanie. Narzędzie dystrybuowane jest na licencji Apache 2.0. Można go znaleźć na oficjalnej stronie internetowej przewodnik konfiguracji.
  • Kapistrano — framework do tworzenia skryptów automatyzujących wdrażanie aplikacji w językach Ruby, Java lub PHP. Capistrano może wykonywać polecenia na zdalnej maszynie, łącząc się z nią przez SSH. Współpracuje z innymi narzędziami do ciągłej integracji i dostarczania, takimi jak serwer Integrity CI.
  • Gradle to wieloplatformowe narzędzie automatyzujące cały cykl tworzenia aplikacji. Gradle współpracuje z Java, Python, C/C++, Scala itp. Istnieje integracja z Eclipse, IntelliJ i Jenkins.
  • Warkot - Platforma CD w języku Go. Dron można wdrożyć lokalnie lub w chmurze. Narzędzie jest zbudowane na kontenerach i do zarządzania nimi wykorzystuje pliki YAML.
  • Spinaker — platforma do ciągłego dostarczania kodu w systemach wielochmurowych. Opracowane przez Netflix, inżynierowie Google odegrali dużą rolę w rozwoju narzędzia. Instrukcje Instalacji znajdź go na oficjalnej stronie internetowej.

Co warto przeczytać na naszym firmowym blogu:

Źródło: www.habr.com

Dodaj komentarz