1. Прототипирование
2. Запуск на малом объеме реальных данных (пробный запуск)
3. Стейджинг (или препродакшен)
4. Канареечное тестирование (частичный запуск)
5. Частичное развертывание на «боевом» окружении
6. Развертывание на всем «боевом» окружении
Принципы построения релизов:
- воспроизводимые сборки
- автоматизированные сборки
- автоматизированные тесты
- автоматизированные публикации
- небольшие развертывания
В цикле выше важный этап – это канареечное тестирование, когда деплой выполняется на ограниченное количество ресурсов и может быть ограничен по времени, так же предполагается возможность быстрого отката. Для эффективного канареечного тестирования нужно реализовать принципы построения релизов. В конечном итоге это ложится в модель CI/CD
При выполнении канареечного тестирования нужно подобрать время и ресурсы, которые с одной стороны обеспечат необходимый объем тестирования, с другой стороны (в случае сбоя) риски будут минимизированы. Для проведения канареечного тестирования важно выбрать набор репрезентативных метрик, которые могут наглядно показать, что развертывание прошло успешно.
Варианты канареечного развёртывания:
- Синее/зеленое развертывание – зеленые – куда реально идет трафик и выполняется развертывание, синее – резерв куда можно перейти, если найдены ошибки в релизе
- искусственная генерация данных – вместо реальной среды канарейка помещается под нагрузку, но с синтезированными данными
- теневое копирование – когда канарейка развертывается в тестовой среде, но с копией реальных данных
Выводы: Книга глубоко рассматривает выстраивание рабочего процесса на базе SRE, приведено очень много примеров и разъяснений, которые помогают «нащупать» основные моменты реализуемые в стандарте и наметить путь внедрения SRE. Но при этом эта одна из тех книг, которые требуют повторного прочтения и переосмысления. Особенно удобно использовать книгу в процессе реального развертывания SRE. Рекомендую к прочтению все кто занимается организационными вопросами в командах разработчиков.
Post #765
1.72K