Рубрики
Uncategorized

CI/CD: непрерывная интеграция и доставка Объяснил

CI/CD позволяет лучшим командам разработчиков улучшать свои продукты много раз в день. Вот что вам нужно знать, чтобы сделать то же самое. Tagged CICD, производительность, DevOps.

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

Что такое CI/CD?

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

«CI/CD» означает комбинированные практики непрерывной интеграции (CI) и непрерывной доставки (CD).

Непрерывная интеграция является обязательным условием для CI/CD и требует:

  • Разработчики, чтобы объединить свои изменения в основной филиал кода много раз в день.
  • Каждый код объединяется, чтобы запустить автоматическую сборку кода и последовательность тестирования. Разработчики в идеале получают результаты менее чем за 10 минут, чтобы они могли сосредоточиться на своей работе.

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

В практике Непрерывная доставка Изменения кода также постоянно развернуты, хотя развертывание запускается вручную. Если весь процесс перемещения кода от хранилища источника к производству полностью автоматизирован, процесс называется Непрерывное развертывание Анкет

Длительный процесс развертывания подвержен ошибкам и отвлекает. Разработчики расстроены процессом, который ощущается как избыток. Команды торгуют небольшими итерациями для рискованных выпусков Big-Bang. Они также могут быть приведены, чтобы вообще не делать небольших улучшений.

Цель CI/CD — сделать развертывание достаточно легким, безопасным и быстрым. В таком контексте вероятность введения основных ошибок низкая. Когда происходит что -то плохое, легко доставить исправление или вернуть изменения.

Лакмусовый тест для выполнения CI/CD

Если какой -либо разработчик в вашей команде может прекратить то, что они делают прямо сейчас, и отправить текущую версию кода разработки на производство за 20 минут или меньше, и никто не подчеркивает, что может произойти — поздравляю, вы делаете CI/CD!

Принципы CI/CD

Непрерывная практика доставки делает CI дальше, описывая принципы успешного развертывания производства:

  • Архитектор системы таким образом, чтобы поддержать итеративные выпуски Анкет Избегайте тесной связи между компонентами. Реализуйте метрики, которые помогают обнаружить проблемы в режиме реального времени.
  • Всегда держите код в развертываемом состоянии Анкет Поддерживайте комплексный и здоровый автоматизированный тестовый набор. Стройте мониторинг, регистрацию и сбои с помощью дизайна.
  • Работать в небольших итерациях Анкет Например, если вы разрабатываете в филиалах функций, они должны жить не более дня. Если вам нужно больше времени для разработки новых функций, используйте флаги функций.
  • Разработчики могут Подтолкнуть код в производственные условия для постановки . Это гарантирует, что новая версия программного обеспечения будет работать, когда оно попадет в руки пользователей.
  • Любой может развернуть любую версию программного обеспечения в любую среду по требованию, нажав кнопку . Если вам нужно проконсультироваться с вики о том, как развернуться, это игра.
  • Если вы построите его, вы запускаете это Анкет Автономные инженерные команды должны нести ответственность за качество и стабильность программного обеспечения, которое они создают. Это разрушает бункеры между традиционными разработчиками и операционными группами, поскольку они работают вместе для достижения целей высокого уровня.

Чтобы сделать CI/CD реальностью, вам нужно автоматизировать все, что вы можете в процессе доставки программного обеспечения и запустить его в CI/CD Pipeline Анкет

Пример рабочих процессов CI/CD

Вот простой пример полностью автоматизированного конвейера CI/CD (непрерывного развертывания). Ничто не должно быть более сложным, чем необходимо!

В этом примере каждое изменение в отделении Master GIT выполняет следующие шаги на Семфор :

  • Создайте код и веб -активы при повторном использовании кэша зависимостей.
  • Запустите автоматический тестовый набор. Это приложение JavaScript/node.js, поэтому тесты написаны с шутками.
  • Если тесты проходят, развертывает блок обновления производственного кода, который работает в облаке.

CI/CD с ручными шагами

Вот рабочий процесс CI/CD для контейнеров и Kubernetes, который включает в себя больше шагов:

В этом примере каждое изменение автоматически выполняет эти шаги:

  • Создайте приложение из исходного кода и зависимостей.
  • Запустите автоматический тестовый набор.
  • Если тесты проходят, автоматически создайте изображение контейнера Docker и выложите его в частный реестр.

В конце конвейера Docker Build у нас есть рабочий артефакт, изображение контейнера. Разработчик, или, более формально, менеджер релиза, может решить вручную триггер:

  • Развертывание для постановки или производства, которые могут включать тесты на дым, чтобы проверить никаких серьезных проблем.
  • Метка изображения контейнера как артефакт, который был представлен для производства, для включения аудитов и откатов.

Хочу больше? Прочитайте о преимуществах CI/CD и о том, как выглядит типичное путешествие по усыновлению, в том числе, когда это кажется невозможным — на сайте Semaphore Анкет

Оригинал: «https://dev.to/semaphore/ci-cd-continuous-integration-delivery-explained-75l»