@leonidpetrosian

Является ли Multistage build Docker образов заменой CI Pipeline?

Стандартный пайплайн любого проекта выглядит примерно так:
build -> lint -> test -> doсker -> deploy
С multistage же сборкой большую часть шагов мы можем выполнить при билде Docker образа, прописав их в Dockerfile. Тогда какой вид обретает CI пайплайн?
docker -> deploy?
Насколько это репрезентативно?
Когда лучше использовать каждый из подходов?
Что является ”Best Practices“?
А также, что используете вы на проекте?
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 3
@vitaly_il1
DevOps Consulting
build не включает все - есть тесты разных видов (от unit до end-to-end), static code scanner, и т.п.
Так что CI/CD не исчерпывается docker build.
Ответ написан
Комментировать
@Akela_wolf
Extreme Programmer
Тут главная идея в том, чтобы получать как можно большое обратной связи от каждого stage
Вот, скажем, сломался у нас build - мы должны узнать об этом как можно раньше и со всеми подробностями: где, как и почему сломался.
Аналогично lint - где, как и почему у нас нарушается code guideline.
Аналогично test - какой тест и как именно рухнул.

Если build docker даст вам такую же точную диагностику где что и как сломалось - собственно почему бы и да? Но лично я бы разделил на отдельные шаги, по принципу unix way. Так проще всем этим управлять будет.
Ответ написан
Комментировать
Viji
@Viji
Associate DevOps Engineer
еще не забывайте про security tests - кроме того часто в CI/CD устанавливают Step Gates - например, чтобы выводить warning при низком покрытии кода unit tests или большом кол-ве vulnerabilities в пакетах. Часто используют сторонние сканеры для этого, которые обеспечивают интеграцию с JIRA или др проектным софтом. В докере это не всегда возможно или затруднительно - а часто еще и медленно !
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы