Доставка приложения CI/CD

Описание
CI/CD - («Continuous Integration/Continuous Delivery» - «непрерывная интеграция/непрерывная доставка») - подход к разработке, при котором задачи сборки, публикации, тестирования продукта полностью или частично автоматизированы. Каждую итерацию цикла разработки можно ускорить с помощью автоматизации разных процессов. В мире веб-разработки это системы «системы сборки», «менеджеры пакетов» и инструменты для тестирования.
Этапы интеграции и доставки приложений
Работа системы инструментов CI/CD основана на цикличности. Цикл применения инструментов состоит из следующих этапов:

  • написание кода;
  • сборка;
  • Тестирование;
  • релиз;
  • развёртывание;
  • поддержка и мониторинг;
  • планирование.
Написание кода
На данном этапе важным инструментом является СИСТЕМА КОНТРОЛЯ ВЕРСИЙ.

Обычно используется система GIT, она позволяет:

  • Делать копии проектов на различных этапов
  • Разветвлять процесс разработки и делать запросы на слияние
  • Позволяет фиксировать запросы на изменения и обсуждать
  • Исправлять проблемы кода при слиянии версий
  • Объединять версии кода
Сборка
Для сборки часто используют Docker-контейнеры. Docker — это технология, которая позволяет создавать и использовать приложения в указанном окружении. Подробнее о Doker

Для автоматизации сборки могут использоваться различные системы. Например Jenkins
тестирование
Широко применяются интеграционные тесты, E2E-тесты, ручное и автоматизированное тестирование UI/UX.

Для этого могут использоваться различные инструменты. Например, Selenium или Postman и т. д.
Релиз
Инструменты CI/CD на этом этапе отвечают за сбор различной статистической информации.

Например пользовательские метрики (например, Яндекс.Метрика или Google Analytics),или метрики, принятые внутри команды для отслеживания эффективности того или иного члена команды (Jira, Wrike или Trello).
развертывание
Сложность развёртывания продукта связана со сложностью инфраструктуры:

  • Архитектура построения серверов
  • Оптимизациями загрузки и работы приложения
  • Кэширование
  • и т. д.
поддержка и мониторинг
Сюда входят инструменты поддержки пользователей, их очень много: телефония, мессенджеры, чаты, электронная почта, рассылка, подготовка отчетов, чат-боты, голосовые помощники.

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