🤔 Что такое CD (Continuous Delivery / Continuous Deployment)?
Это практика автоматизации и оптимизации процессов доставки приложений и их обновлений в рабочую среду. Она является частью DevOps-подхода и тесно связана с CI (Continuous Integration).
🚩Два основных значения CD
🟠Continuous Delivery (Непрерывная доставка)
Continuous Delivery подразумевает автоматизацию процессов сборки, тестирования и подготовки приложения к выпуску в продакшн. Однако процесс развертывания остаётся ручным, чтобы команда могла контролировать его выполнение. Ключевые особенности:
Автоматическое развертывание приложения в тестовые и предрелизные среды.
Возможность развернуть приложение в продакшн в любой момент с минимальными усилиями.
Финальное решение о развертывании принимает человек.
Цель: Быть готовым к безопасному и быстрому выпуску обновлений в любой момент.
Пример использования:
В интернет-магазине обновление функционала сначала разворачивается в тестовой среде. После успешной проверки QA-командой или бизнес-менеджером приложение вручную переносится в продакшн.
🟠Continuous Deployment (Непрерывное развертывание)
Continuous Deployment идёт дальше Continuous Delivery, автоматически развертывая обновления в продакшн после успешного прохождения всех тестов. Процесс полностью автоматизирован и исключает ручное вмешательство. Ключевые особенности:
Абсолютная автоматизация — каждый подтверждённый код (коммит) автоматически попадает в продакшн.
Постоянный выпуск обновлений, минимизирующий разницу между разработкой и рабочей средой.
Цель: Сократить время доставки функционала и исправлений до продакшна, обеспечивая быстрые релизы.
Пример использования:
В приложении социальной сети любые изменения (например, исправление ошибки или добавление нового поста) автоматически проходят через CI/CD pipeline и попадают в продакшн.
🚩Ключевые элементы CD
🟠CI/CD Pipeline
Автоматизированный процесс, включающий сборку, тестирование, развертывание.
🟠Тестирование
Юнит-тесты.
Интеграционные тесты.
Нагрузочные тесты.
Проверка безопасности.
🟠Оркестрация и управление
Использование инструментов (Jenkins, GitLab CI/CD, CircleCI, GitHub Actions). Контейнеризация (Docker, Kubernetes).
🟠Мониторинг
Автоматическое отслеживание работоспособности приложений (Prometheus, Grafana).
🚩Плюсы
➕Скорость
Ускоряет доставку новых функций и исправлений.
➕Качество
Раннее выявление ошибок благодаря автоматическим тестам.
➕Прозрачность
Процесс развертывания становится понятным для всей команды.
➕Гибкость
Возможность быстро реагировать на изменения требований.
Ставь 👍 и забирай 📚 Базу знаний
Post #1673
256
- 👍 1