Презентация

CI/CD: как доводить код до продакшна без ручной рутины

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

О чем этот материал

Что такое CI и CD, как выглядит типичный pipeline и какие инструменты используют команды.

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

Что внутри

Ниже краткий план материала. По нему удобно понять, в каком порядке разбирать тему.

  1. Что такое CI/CD
  2. Зачем?
  3. Инструменты
  4. Плюсы и минусы

AC/DC CI/CD continuous integration and continuous delivery/deployment

CI/CD

CI (Continuous Integration):

разработчиков в общий проект.

CD (Continuous Delivery/Deployment):

(тестовую, продакшн).

  • Автоматизация интеграции изменений кода от нескольких
  • Постоянная проверка и сборка кода при каждом изменении.
  • Автоматизация доставки проверенного кода в различные среды
  • Обеспечение готовности кода к развертыванию в любое время.

Зачем

рутинных задач.

тесты.

изменений.

приложения.

  • Ускорение разработки благодаря автоматизации
  • Быстрое обнаружение ошибок через автоматические
  • Упрощение командной работы при объединении
  • Повышение качества кода и надежности

А если без этого

поздних этапах.

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

Как работает CI

версий (например, Git).

проверки кода.

тестирования.

  • Коммит изменений в систему контроля
  • Автоматический запуск сборки проекта.~
  • Запуск автоматических тестов для
  • Получение отчета о результате сборки и

Как работает CD

доставке.

или продакшн-среду.

стабильности.

  • После успешной интеграции код готов к
  • Автоматическое развертывание в тестовую
  • Мониторинг приложения для обеспечения

Преимущества CI/CD

кода.

  • Экономия времени на ручных процессах
  • Своевременная обратная связь о качестве
  • Снижение числа ошибок в продакшене.
  • Более частые и стабильные релизы.

Популярные инструменты CI/CD

Jenkins

  • Описание:
  • Открытый и бесплатный инструмент для автоматизации.
  • Широко используется и имеет большое сообщество.
  • Особенности:
  • Множество плагинов для расширения функциональности.
  • Гибкая настройка под любые проекты.

GitLab CI/CD

  • Описание:
  • Интегрированная система CI/CD в GitLab.
  • Позволяет управлять кодом и процессами в одном месте.
  • Особенности:
  • Простая конфигурация через файл .gitlab-ci.yml.
  • Хорошо подходит для проектов, размещенных на GitLab.
Эту часть лучше читать как рабочую инструкцию: цель не выучить команды наизусть, а понять, какую проблему каждая из них решает.

GitHub Actions

Описание:

развертывания.

Особенности:

Шаги:

  • Инструмент автоматизации от GitHub.
  • Позволяет создавать workflows для сборки, тестирования и
  • Глубокая интеграция с репозиториями GitHub.
  • Большое количество готовых действий от сообщества.
  • Создать каталог .github/
  • Добавить файл ci.yml с
  • Коммитить и пушить изменения
Эту часть лучше читать как рабочую инструкцию: цель не выучить команды наизусть, а понять, какую проблему каждая из них решает.

Контейнеризация

Технология, которая позволяет упаковать приложение и все его зависимости в изолированный контейнер.

Контейнеры обеспечивают:

машинами.

  • Повторяемость среды для разработки и продакшена.
  • Легкую переносимость между разными серверами и облаками.
  • Меньшую потребность в ресурсах по сравнению с виртуальными

Docker

— наиболее популярный инструмент для контейнеризации.

Особенности:

развертывания контейнеров.

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

Kubernetes (K8s)

— это система для управления контейнеризированными приложениями.

Основные функции K8s:

перезапускает).

  • Автоматическое развертывание и масштабирование контейнеров.
  • Управление состоянием приложения (если контейнер падает, K8s его
  • Балансировка нагрузки и распределение ресурсов.
В этом блоке важно уловить общую роль инструмента в цепочке поставки, а не пытаться сразу запомнить все детали синтаксиса.

ArgoCD это инструмент для автоматизированного развертывания приложений на Kubernetes через GitOps.

GitOps: Подход, при котором конфигурации приложения и инфраструктуры хранятся в репозиториях Git, а изменения автоматически применяются на кластере.

Преимущества ArgoCD:

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

ArgoCD

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

Заключение

на рутинных задачах.

внесении изменений

  • CI/CD — ключ к эффективной и современной разработке.
  • Автоматизация помогает сосредоточиться на написании кода, а не
  • Автоматизация помогает не перепроверять все приложение при
  • Освоение CI/CD повышает вашу ценность как разработчика.
  • Для вашего первого Pet проекта вам скорее всего не надо :)
  • Но знать все надо, потому что на собеседованиях точно спросят