Continuous Integration i Continuous Delivery to narzędzia automatyzujące proces tworzenia oprogramowania.
W procesie tworzenia oprogramowania można wyróżnić następujące etapy:
- tworzenie kodu;
- testy jednostkowe;
- testy integracyjne;
- budowanie i publikowanie aplikacji.
Continuous Integration (CI)
Polega na budowaniu, testowaniu jednostkowym i integracyjnym wszystkich źródeł kodu wchodzących w skład aplikacji.
Dlatego proces ten można wykonywać kilka razy dziennie, w zależności od potrzeb organizacji. Najczęściej jest on uruchamiany po każdorazowym push’u kodu do repozytorium. Następnie kod jest zaczytywany z repozytorium i przetwarzany przez CI.
Na przykład wspomniany CI buduje aplikacje w środowisku izolowanym, co eliminuje ryzyko, że programista zapomniał dodać zależności, przez który aplikacja lokalnie działa u niego prawidłowo, a na produkcji już nie.
W przypadku niepowodzenia testów system CI zgłosi ten fakt członkom zespołu/developerowi który zawinił – w zależności od ustawień systemu powiadomień.
Continuous Delivery
Stanowi przedłużenie CI. Oprócz budowania, testowania jednostkowego i integracyjnego, to dodatkowo przygotowuje paczkę wdrożeniową.
Następnie przygotowaną paczkę relase DevOps lub inna osoba odpowiadająca za wdrożenie może uruchomić na serwerach produkcyjnych. Innymi słowy Continuous Delivery znacznie skraca przygotowanie paczki, oraz wyklucza możliwość popełnienia błędu ludzkiego.
Continuous Deployment
Podobnie jak Continuous Delivery odpowiada za przygotowanie paczki jednak z dodatkowym automatycznym wdrożeniem nowej wersji oprogramowania na serwer produkcyjny. Jednak w tym procesie nie bierze udziału człowiek.
Podsumowując od samego początku do końca całość jest zautomatyzowana.
Zalety korzystania z CI/CD
- automatyzuje procesy;
- zmniejsza ryzyko popełnienia błędu;
- łatwiejsze wydawanie aplikacji;
Najpopularniejsze narzędzia CI/CD
- Jenkins;
- TeamCity;
- Hudson;
- Travis CI.
Kurs Continuous Integration
Jeśli chcesz rozpocząć naukę CI/CD to zapraszam Cię na mój kurs:
Kurs Continuous Integration | Continuous Delivery | Continuous Deployment
Pierwsze odcinki tego kuru są dostępne na moim kanale YouTube.