Odniesienie: jak działa proces Ciągłej Integracji

Dziś przyjrzymy się historii tego terminu, omówimy trudności związane z wdrażaniem CI i przedstawimy kilka popularnych narzędzi, które pomogą Ci z nim pracować.

Odniesienie: jak działa proces Ciągłej Integracji
/flickr/ Altug Karakoc / CC BY / Zdjęcie zmodyfikowane

termin

Ciągła integracja to podejście do tworzenia aplikacji, które obejmuje częste budowanie projektów i testowanie kodu.

Celem jest zapewnienie przewidywalności procesu integracji oraz wykrycie potencjalnych błędów i błędów na wczesnym etapie, aby było więcej czasu na ich naprawę.

Termin „ciągła integracja” pojawił się po raz pierwszy w 1991 r. Został wprowadzony przez twórcę języka UML Grady’ego Butcha (Grady’ego Boocha). Inżynier wprowadził koncepcję CI w ramach własnej praktyki rozwojowej - Metoda Boocha. Oznaczało to stopniowe udoskonalanie architektury podczas projektowania systemów obiektowych. Gradi nie opisał żadnych wymagań dotyczących ciągłej integracji. Ale później w swojej książce „Analiza zorientowana obiektowo i projektowanie z aplikacjami„Powiedział, że celem tej metodologii jest przyspieszenie wydawania „wewnętrznych wersji”.

Historia

W 1996 roku twórcy metodologii przyjęli CI ekstremalne programowanie (XP) - Kenta Becka (Kenta Becka) i Rona Jeffriesa (Ron Jeffries). Ciągła integracja stała się jedną z dwunastu kluczowych zasad ich podejścia. Założyciele XP wyjaśnili wymagania dotyczące metodologii CI i zwrócili uwagę na potrzebę budowania projektu kilka razy dziennie.

Na początku XXI wieku jeden z założycieli Agile Alliance zaczął promować metodologię ciągłej integracji Martina Fowlera (Martina Fowlera). Jego eksperymenty z CI doprowadziły do ​​powstania pierwszego narzędzia programowego w tej dziedzinie – CruiseControl. Narzędzie zostało stworzone przez kolegę Martina, Matthew Foemmela.

Cykl kompilacji w narzędziu zaimplementowany jest w formie demona okresowo sprawdzającego system kontroli wersji pod kątem zmian w bazie kodu. Rozwiązanie można pobrać już dziś - to dystrybuowane przez na licencji podobnej do BSD.

Wraz z pojawieniem się oprogramowania dla CI coraz więcej firm zaczęło stosować tę praktykę. Według badań firmy Forrester [strona 5 raport], w 2009 roku 86% z pięćdziesięciu ankietowanych firm technologicznych stosowało lub wdrożyło metody CI.

Dziś praktykę Ciągłej Integracji wykorzystują organizacje z najróżniejszych branż. W 2018 roku duży dostawca usług chmurowych przeprowadził badanie wśród specjalistów IT z firm z sektora usług, edukacji i finansów. Spośród sześciu tysięcy respondentów 58% stwierdziło, że w swojej pracy wykorzystuje narzędzia i zasady CI.

Jak to działa

Ciągła integracja opiera się na dwóch narzędziach: systemie kontroli wersji oraz serwerze CI. To ostatnie może być urządzeniem fizycznym lub maszyną wirtualną w środowisku chmurowym. Programiści przesyłają nowy kod raz lub kilka razy dziennie. Serwer CI automatycznie kopiuje go ze wszystkimi zależnościami i buduje. Następnie przeprowadza testy integracyjne i jednostkowe. Jeśli testy zakończą się pomyślnie, system CI wdraża kod.

Ogólny diagram procesu można przedstawić w następujący sposób:

Odniesienie: jak działa proces Ciągłej Integracji

Metodologia CI stawia przed programistami szereg wymagań:

  • Natychmiast napraw problemy. Zasada ta przyszła do CI w wyniku programowania ekstremalnego. Naprawianie błędów jest najwyższym priorytetem programistów.
  • Automatyzuj procesy. Programiści i menedżerowie muszą stale szukać wąskich gardeł w procesie integracji i je eliminować. Na przykład często występuje wąskie gardło w integracji okazuje się testowanie.
  • Organizuj zgromadzenia tak często, jak to możliwe. Raz dziennie w celu synchronizacji pracy zespołu.

Trudności wdrożeniowe

Pierwszym problemem są wysokie koszty eksploatacji. Nawet jeśli firma korzysta z otwartych narzędzi CI (o czym porozmawiamy później), i tak będzie musiała wydać pieniądze na wsparcie infrastruktury. Rozwiązaniem mogą być jednak technologie chmurowe.

Upraszczają montaż konfiguracji komputerowych o różnej skali. Plus firmy płacić tylko za wykorzystane zasoby, co pozwala zaoszczędzić na infrastrukturze.

Według badań [str. 14 Artykuł], ciągła integracja zwiększa obciążenie pracowników firmy (przynajmniej na początku). Muszą uczyć się nowych narzędzi, a koledzy nie zawsze pomagają w szkoleniach. Dlatego musisz na bieżąco radzić sobie z nowymi frameworkami i usługami.

Trzecią trudnością są problemy z automatyzacją. Z tym problemem borykają się organizacje posiadające dużą ilość starszego kodu, który nie jest objęty testami automatycznymi. Prowadzi to do tego, że kod jest po prostu przepisywany przed pełną implementacją CI.

Odniesienie: jak działa proces Ciągłej Integracji
/flickr/ ich / CC BY-SA

Kto używa

Giganci IT jako jedni z pierwszych docenili zalety metodyki. Google używa ciągła integracja od połowy 2000 roku. CI został wdrożony, aby rozwiązać problem opóźnień w wyszukiwarce. Ciągła integracja pomogła szybko wykryć i rozwiązać problemy. Teraz z CI korzystają wszystkie działy giganta IT.

Ciągła integracja pomaga również małym firmom, a z narzędzi CI korzystają także organizacje finansowe i opieki zdrowotnej. Na przykład w Morningstar usługi ciągłej integracji pomogły w łataniu luk w zabezpieczeniach o 70% szybciej. Platformie medycznej Philips Healthcare udało się podwoić szybkość aktualizacji testów.

Narzędzia

Oto kilka popularnych narzędzi CI:

  • Jenkins to jeden z najpopularniejszych systemów CI. Obsługuje ponad tysiąc wtyczek do integracji z różnymi VCS, platformami chmurowymi i innymi usługami. Używamy również Jenkinsa w 1cloud: Tool zawarte w naszym systemie DevOps. Regularnie sprawdza gałąź Git przeznaczoną do testów.
  • Budujbota — framework Pythona do pisania własnych procesów ciągłej integracji. Początkowa konfiguracja narzędzia jest dość skomplikowana, ale rekompensują to szerokie opcje dostosowywania. Wśród zalet frameworku użytkownicy podkreślają jego niską intensywność wykorzystania zasobów.
  • Concourse CI to serwer firmy Pivotal korzystający z kontenerów Docker. Concourse CI integruje się z dowolnymi narzędziami i systemami kontroli wersji. Twórcy zauważają, że system nadaje się do pracy w firmach dowolnej wielkości.
  • Gitlab CI to narzędzie wbudowane w system kontroli wersji GitLab. Usługa działa w chmurze i do konfiguracji wykorzystuje pliki YAML. Podobnie jak Concourse, Gitlab CI dotyczy Kontenery Docker, które pomagają izolować od siebie różne procesy.
  • Kod pocztowy to serwer CI w chmurze, który współpracuje z GitHub, GitLab i BitBucket. Platforma nie wymaga długiej wstępnej konfiguracji – w Codeship dostępne są standardowe, preinstalowane procesy CI. W przypadku małych (do 100 kompilacji miesięcznie) i projektów typu open source Codeship jest dostępny bezpłatnie.

Materiały z naszego bloga firmowego:

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

Dodaj komentarz