Size: a a a

DevOps — русскоговорящее сообщество

2020 August 30

XN

Xeon Null in DevOps — русскоговорящее сообщество
Daryl
это да
но как cd скрипт на сервере поймет что надо только сбилдить фронт?
миллион и один способ, зависящие от специфики)
источник

KM

Kirill Muhin in DevOps — русскоговорящее сообщество
Daryl
это да
но как cd скрипт на сервере поймет что надо только сбилдить фронт?
научи скрипт проверять текущую версию, если не изменилась, ничего не делать
источник

XN

Xeon Null in DevOps — русскоговорящее сообщество
да хоть файлик с хешем от коммита сабмодуля записывай и чекай перед обновлением
источник

D

Daryl in DevOps — русскоговорящее сообщество
Xeon Null
миллион и один способ, зависящие от специфики)
к примеру

- репо backend
- репо frontend
- репо project (submodule backend; submodule frontend; deploy/cd.sh)

принимаются pr's в отдельных ветках
далее в "project" обновляют сабмодули в отдельном pr'е
далее стартует CD (изменения в мастере)
CD чекает хеши отдельных сабмодулей?

и допустим если изменился хеш только фронта, то в CD передаем параметр (мол онли фронт билд), верно?
источник

XN

Xeon Null in DevOps — русскоговорящее сообщество
Daryl
к примеру

- репо backend
- репо frontend
- репо project (submodule backend; submodule frontend; deploy/cd.sh)

принимаются pr's в отдельных ветках
далее в "project" обновляют сабмодули в отдельном pr'е
далее стартует CD (изменения в мастере)
CD чекает хеши отдельных сабмодулей?

и допустим если изменился хеш только фронта, то в CD передаем параметр (мол онли фронт билд), верно?
как вариант
источник

D

Daryl in DevOps — русскоговорящее сообщество
Xeon Null
как вариант
нормальной практикой считается?
источник

D

Daryl in DevOps — русскоговорящее сообщество
или костыльно?)
источник

XN

Xeon Null in DevOps — русскоговорящее сообщество
нормальная практика это версионирование апи на бэке)
источник

XN

Xeon Null in DevOps — русскоговорящее сообщество
а не вот это вот все)
источник

D

Daryl in DevOps — русскоговорящее сообщество
Xeon Null
нормальная практика это версионирование апи на бэке)
я понял, да, так и думал
чтобы лайтово в любое время выкатывать фронт и не думать, что апи на беке уже изменено
источник

D

Daryl in DevOps — русскоговорящее сообщество
но скажем что специфика бизнеса такая🤪
источник

D

Daryl in DevOps — русскоговорящее сообщество
там на самом деле не везде можно сделать версионирование
логика чего-то может измениться прям сильно и никак не поддержать то, что было, иначе бизнес сгорит
источник

D

Daryl in DevOps — русскоговорящее сообщество
но я понял, @xeonnull @kirill_muhin спасибо вам
источник

DS

Dmitry Sergeev in DevOps — русскоговорящее сообщество
Daryl
к примеру

- репо backend
- репо frontend
- репо project (submodule backend; submodule frontend; deploy/cd.sh)

принимаются pr's в отдельных ветках
далее в "project" обновляют сабмодули в отдельном pr'е
далее стартует CD (изменения в мастере)
CD чекает хеши отдельных сабмодулей?

и допустим если изменился хеш только фронта, то в CD передаем параметр (мол онли фронт билд), верно?
можно просто CD разделить, и выкатывать независимо фронт с бэком
источник

D

Daryl in DevOps — русскоговорящее сообщество
Dmitry Sergeev
можно просто CD разделить, и выкатывать независимо фронт с бэком
условие задачи другое)
важно чтобы фронт и бек были обновлены в одно время
источник

DS

Dmitry Sergeev in DevOps — русскоговорящее сообщество
Daryl
условие задачи другое)
важно чтобы фронт и бек были обновлены в одно время
а как это обеспечивается? Каким образом гарантируется, что новые файлы на фронте появятся в ту же секунду когда поднимется новый бэкенд?
источник

DS

Dmitry Sergeev in DevOps — русскоговорящее сообщество
А что делать со старыми пользователями, которые загрузили фронт за 10 секунд до апдейта, если такое условие, то получается у этих людей ничего не будет работать пока они не обновят страницу, так как старый фронт не работает с новым бэком
источник

DS

Dmitry Sergeev in DevOps — русскоговорящее сообщество
> логика чего-то может измениться прям сильно и никак не поддержать то, что было, иначе бизнес сгорит
Бизнес не сгорает, от того что при апдейтах у многих пользователей ломается приложение?
источник

DS

Dmitry Sergeev in DevOps — русскоговорящее сообщество
Daryl
к примеру

- репо backend
- репо frontend
- репо project (submodule backend; submodule frontend; deploy/cd.sh)

принимаются pr's в отдельных ветках
далее в "project" обновляют сабмодули в отдельном pr'е
далее стартует CD (изменения в мастере)
CD чекает хеши отдельных сабмодулей?

и допустим если изменился хеш только фронта, то в CD передаем параметр (мол онли фронт билд), верно?
а в этой схеме, как проверяется что хэш изменился? Получается надо знать какой был старый хэш при посдеднем запуске CD? Где хранится эта инфа? Если храним его локально в файлах на агенте сборок, получается если мы перенакатим агент, и потеряем файл, то получим передеплой обоих сервисов, но не факт что в них что-то изменилось?
источник

V

Vladimir in DevOps — русскоговорящее сообщество
Dmitry Sergeev
а в этой схеме, как проверяется что хэш изменился? Получается надо знать какой был старый хэш при посдеднем запуске CD? Где хранится эта инфа? Если храним его локально в файлах на агенте сборок, получается если мы перенакатим агент, и потеряем файл, то получим передеплой обоих сервисов, но не факт что в них что-то изменилось?
Почему бы просто постоянно не деплоить мастер?
источник