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ć.
/flickr/ / / 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 Boocha). Inżynier wprowadził koncepcję CI w ramach własnej praktyki rozwojowej - . 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 „„Powiedział, że celem tej metodologii jest przyspieszenie wydawania „wewnętrznych wersji”.
Historia
W 1996 roku twórcy metodologii przyjęli CI (XP) - (Kenta Becka) i (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). 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 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 ], 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:

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 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 tylko za wykorzystane zasoby, co pozwala zaoszczędzić na infrastrukturze.
Według badań [str. 14 ], 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.

/flickr/ /
Kto używa
Giganci IT jako jedni z pierwszych docenili zalety metodyki. Google 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:
- 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 . Regularnie sprawdza gałąź Git przeznaczoną do testów.
- — 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.
- 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.
- 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 Kontenery Docker, które pomagają izolować od siebie różne procesy.
- 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
