CI/CD

Содержание статьи
Что такое CI/CD
CI
CD

Что такое CI/CD

В разработке ПО, CI/CD или CICD — это комбинация непрерывной интеграции (CI) и непрерывного развертывания (CD) программного обеспечения в процессе разработки.

CI/CD объединяет разработку , развёртывание и команду, ускоряя процесс сборки, тестирования и развёртывания приложения.

В настоящий момент DevOps-программисты стремятся применять CI/CD практически для всех задач

Continuous Integration

Непрерывная интеграция — практика разработки программного обеспечения, которая заключается в постоянном слиянии рабочих копий в общую основную ветвь разработки (до нескольких раз в день) и выполнении частых автоматизированных сборок проекта для скорейшего выявления потенциальных дефектов и решения интеграционных проблем.

В обычном проекте, где над разными частями системы разработчики трудятся независимо, стадия интеграции является заключительной.

Она может непредсказуемо задержать окончание работ. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счёт наиболее раннего обнаружения и устранения ошибок и противоречий, но основным преимуществом является сокращение стоимости исправления дефекта, за счёт раннего его выявления.

Впервые концептуализирована и предложена Гради Бучем в 1991 году. Является одним из основных элементов практики экстремального программирования.

Организация CI

Для применения практики необходимо выполнение ряда базовых требований к проекту разработки.

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

Для организации процесса непрерывной интеграции на выделенном сервере запускается служба, в задачи которой входят:

Локальная сборка может осуществляться по внешнему запросу, по расписанию, по факту обновления репозитория и по другим критериям.

Сборки по расписанию (англ. daily build — ежедневная сборка), как правило, проводятся в нерабочее время, ночью (англ. nightly build), планируются таким образом, чтобы к началу очередного рабочего дня были готовы результаты тестирования.

Для различия дополнительно вводится система нумерации сборок — обычно, каждая сборка нумеруется натуральным числом, которое увеличивается с каждой новой сборкой.

Исходные тексты и другие исходные данные при взятии их из репозитория (хранилища) системы контроля версий помечаются номером сборки.

Благодаря этому, точно такая же сборка может быть точно воспроизведена в будущем — достаточно взять исходные данные по нужной метке и запустить процесс снова.

Это даёт возможность повторно выпускать даже очень старые версии программы с небольшими исправлениями.

Преимущества и недостатки

К преимуществам непрерывной интеграции относятся следующие моменты:

При этом, практика не лишена недостатков, в частности:

Кроме того, немедленный эффект от неполного или неработающего кода отучает разработчиков от выполнения периодических резервных включений кода в репозиторий, но в случае использования системы управления версиями исходного кода с поддержкой ветвления, эта проблема может решаться созданием отдельной «ветки» (англ. branch) проекта для внесения крупных изменений (код, разработка которого до работоспособного варианта займет несколько дней, но желательно более частое сохранение результата в репозиторий).

По окончании разработки и индивидуального тестирования такой ветки, она может быть объединена (merge) с основным кодом или «стволом» (trunk) проекта.

Continuous delivery

Непрерывная доставка — это подход к разработке программного обеспечения, при котором программное обеспечение производится короткими итерациями, гарантируя, что ПО является стабильным и может быть передано в эксплуатацию в любое время, а передача его происходит вручную.

Целью является сборка, тестирование и релиз программного обеспечения с большей скоростью и частотой.

Подход позволяет уменьшить стоимость, время и риски внесения изменений путём более частных мелких обновлений в продакшн-приложение.

CD отличается от непрерывного развёртывания, в котором ПО также производится короткими циклами через автоматическое развёртывание, в противоположность ручному.

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@eth1.ru если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: