Я читал о двух подходах (возможно, их больше) для реализации конвейеров непрерывной доставки в GCP:
- Скаффолд
- Спинакер + Конструктор контейнеров
Я немного поработал с обоими в Quiklabs. Если у кого-то есть реальный опыт работы с ними обоими, не могли бы вы поделиться их плюсами и минусами по сравнению друг с другом? Почему вы предпочли одно другому?
Конвейер с использованием Skaffold (из документации https://skaffold.dev/docs/pipeline-stages/ а>):
- Обнаружение изменений исходного кода
- Строить артефакты
- Тестовые артефакты
- Артефакты тегов
- Отрисовка манифестов
- Развернуть манифесты
- Хвостовые журналы и форвардные порты
- Очистить изображения и ресурсы
Конвейер с использованием Spinnaker + Cloud Builder:
- Developer:
- Change code
- Создайте тег git и нажмите на репо
- Container Builder:
- Detect new git tag
- Создать образ Docker
- Запустить модульные тесты
- Отправить образ Docker
- Spinnaker (from the docs https://www.spinnaker.io/concepts/):
- Detect new image
- Развернуть Canary
- Подтверждение переключения вручную
- Развернуть PROD (синий / зеленый)
- Снесите канарейку
- Уничтожьте старый ПРОД