Паттерны отката изменения rollback
Зачем
- Возможность автоматизации процесса отката на предыдущую версию на уровне
- контейнеров
- бэкапов
- кода
- паттернов Deploy
Подходы Deploy
- Blue Green Deployment - одновременно работает и старая (green), и новая (blue) версия, но весь трафик направляет на новую, а если с ней возникают проблемы – то можно переключиться обратно на первую.
Blue Green Deployment
Плюсы:
- Downtime сокращается
- Простота внедрения для stateless ИС (микросервисной архитектуры)
- Необходимо применение автоматизированных подходов CI-CD и контейнеризации (k8s, ingress controler (Istio))
Минусы:
- Сложность поддержки на уровне statefull компонентов ИС - БД двух версий (Миграция БД) - поддержка новой, старой версии модели данных, чтения\записи по старой\новой модели данных
- Рекомендуется разворачивать одну БД с поддержкой двух версий модели данных
- Возможны задержки на уровне БД при миграции модели БД онлайн - увеличение Downtime
- Необходимость поддержки на уровне компонентов ИС отката
- рост трудозатрат на тестирования
- рост трудозатрат разработки на поддержку подходов к проектированию БД
- применение решений вида: Liquibase
- It automates database schema changes management
- allows versioning of those changes, easily roll back all the previously performed modifications of your schema
- применение решений вида: Liquibase
- Необходимость поддержки на уровне зависимых API ИС отката
- Версионирование API для поддержки обратной совместимости
- Автоматизация разворачивания всех зависимых ИС дает ожидаемое снижение Downtime при обновление\откате
Технологии
- argo-rollouts (k8s helm)
- Liquibase