Що таке CI/CD?

CI/CD (Continuous Integration / Continuous Deployment або Delivery) — це набір практик та методологій у розробці програмного забезпечення. Вони автоматизують процеси впровадження коду на середовище, а також тестування та розгортання цього коду.

Історія появи CI/CD

Термін «безперервна інтеграція» (CI) вперше використав Грейді Буч ще у 1991 році, а потім зробив це повторно в 1994 році. І хоч термін вже існував, але це був лише перший етап пошуку такого рішення. Він значно відрізнявся від того CI, який ми знаємо зараз.

Але вже у 1997 році Кент Бек чітко сформулював концепцію безперервної інтеграції. Це був практичний підхід, який передбачає регулярне злиття змін в основну гілку коду.

Ідею CI охопив розвиток в наступні роки. У 2000-х роках почали з’являтись перші інструменти, такі як CruiseControl чи Hudson (пізніше Jenkins). Це ще більше привернуло увагу до нової концепції.

Коли Continuous Integration стало стандартом, наступним кроком у розвитку процесу розробки було розгортання оновлень. Принцип безперервного постачання (CD) вперше було описано Девідом Фарлі та Джезом Хамблом у книзі «Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation» у 2010 році. Після цього CI та CD стали двома компонентами одної концепції. Вони продовжують розвиватись та набирати популярність, особливо в часи популяризації DevOps. 

Основні принципи CI/CD

  1. Зниження ризиків у процесі.
  2. Організація середовища для всіх, хто в ньому працює.
  3. Швидкий зворотний зв’язок через автоматизацію процесів та мінімізацію посередників.
  4. Рівномірний розподіл відповідальності між працівниками.

Основні процеси в CI/CD

  • Розробники пишуть код або вносять зміни у функціонал.
  • Новий код об’єднується з основною кодовою базою (безперервна інтеграція). Це допомагає виявляти помилки на ранніх етапах.
  • Виконуються різні типи тестів для перевірки працездатності змін. Якщо тести не пройдені, код повертається на доопрацювання.
  • Далі код збирається в контейнер. В цей момент перевіряються залежності, коректність конфігурацій та сумісність з іншими компонентами системи.
  • Протестований код автоматично, або з мінімальним втручанням розробників, розгортається у тестовому середовищі. Якщо все стабільно працює, то далі код направляється на продакшн та автоматично оновлюється до останніх версій (безперервне розгортання)
  • Після розгортання ведеться спостереження за роботою системи, аналіз логів, продуктивності та виправлення багів.

CI/CD в DevOps

Головна мета DevOps — це допомогти створювати й оновлювати ПЗ. Саме це і пропонує методологія CI/CD. Завдяки автоматизації та безперервним процесам, вона усуває розрив між розробкою (Dev) та операційними частинами (Ops). 

Переваги CI/CD

CI/CD забезпечує швидке й стабільне впровадження змін у ПЗ. Автоматизація дозволяє розгортати оновлення без затримок, що скорочує час виведення продукту на ринок.

Постійне тестування зменшує кількість ризиків і допомагає виявляти помилки ще до моменту випуску. Крім того, автоматизація оптимізує витрати й знижує потребу у ручному втручанні. В результаті код виходить у програму передбачуваним, контрольованим та безпечним.

Інструменти CI/CD

Корисні посилання

Залишити відповідь

Дякуємо, що поділились