Size: a a a

2020 March 16

ЕО

Евгений Омельченко in DevOps
Если вы автокоммитите в гит, то почему бы вам cow-базу не взять просто?
источник

DS

Dmitry Sergeev in DevOps
Let Eat Bee
знаете конечно. пайплайн в репе с кодом создает коммит в инфра репе, конечно он знает какой комит создал
прочитай выше. Условие @elemir90 : нельзя автоматически комитить в инфра репу.
источник

як

я никуда не тороплюсь когда напьюсь тогда напьюсь in DevOps
Let Eat Bee
задеплоить тег из репы приложения == сказать "я хочу видеть это в кластере". это желание запускает процесс деплоя через инфра репу, где из коммита тега приложения и других комитов (скажем какие-то универсальные хелм чарты отдельно лежат) рендерятся финальные манифесты готовые к kubectl apply. в них делаются штуки вроде резолва докер тэга в sha256 чтоб вообще все максимально до мельчайших деталей описано было. когда в инфра репе появился комит он деплоится в кластер. если деплой неудачный то в инфра репе создается revert и деплоится снова.
Почитать бы про это - с примерами всего кода и картинками.
источник

як

я никуда не тороплюсь когда напьюсь тогда напьюсь in DevOps
Let Eat Bee
задеплоить тег из репы приложения == сказать "я хочу видеть это в кластере". это желание запускает процесс деплоя через инфра репу, где из коммита тега приложения и других комитов (скажем какие-то универсальные хелм чарты отдельно лежат) рендерятся финальные манифесты готовые к kubectl apply. в них делаются штуки вроде резолва докер тэга в sha256 чтоб вообще все максимально до мельчайших деталей описано было. когда в инфра репе появился комит он деплоится в кластер. если деплой неудачный то в инфра репе создается revert и деплоится снова.
+
источник

LB

Let Eat Bee in DevOps
Dmitry Sergeev
да ничем не плохо. Но это вообше не то. Мы не про способ деплоя говорим.
А про инфра репу, которая никак не версионируется вместе с кодовой репой. И мы не знаем какая версия кода с какой версией инфра репы работает
я не способ инстала, а про то что из одно комита репы кода можно несколько деплоев сделать. т.е. одна версия кода, но несколько версий в инфре
источник

ЕО

Евгений Омельченко in DevOps
Dmitry Sergeev
прочитай выше. Условие @elemir90 : нельзя автоматически комитить в инфра репу.
Всё так, git плохая база данных
источник

як

я никуда не тороплюсь когда напьюсь тогда напьюсь in DevOps
Dmitry Sergeev
> Всё так. в инфра репу рендерятся готовые к деплою манифесты.
Ну окей начнем заново.


Смотри. У тебя есть инфра репа, есть репа с кодом сервиса.

v1.0.1 код сервиса требует два деплоймента и cronjob
v1.0.2 код сервиса требует только один деплоймент


Нужно откатить с v1.0.2 до v1.0.1. Если мы просто пропишем v1.0.1 и запушим, приложение сломается, так как оно зависело от двух деплойментов и cronjob. А они пропали

@elemir90 Как я понял предлагает, чтобы master инфра репы, всегда соотвесвтовал состоянию в кубе + никаких автоматических откатов.

То есть для отката, нужно найти коммит в инфра репе, когда в нем был проиписан сервис версии v1.0.1 и сделать revert до этого коммита. И запушить.

Сейчас я делаю по другому. У меня либо инфра репа  это сабмодуль в репе сервиса, либо описание ифнры просто лежит вместе с сервисом. И для отката, нужно просто выбрать нужную версию сервиса и задеплоить, и это гарантировано дает описание инфры совместимое с нужной версией сервиса.

И я не понимаю в чем приемущество его описанного подхода. Вот и все. Пытаюсь выяснить
Кронджоб зачем?
источник

LB

Let Eat Bee in DevOps
Евгений Омельченко
Вот опять юзание гита в качестве базы данных
нет, юзаю гит в качестве иммьютабл лога. могу кафку, но гит удобнее так как можно делать реверты
источник

DS

Dmitry Sergeev in DevOps
Let Eat Bee
я не способ инстала, а про то что из одно комита репы кода можно несколько деплоев сделать. т.е. одна версия кода, но несколько версий в инфре
да нет тут проблемы. Еще раз проблема про то что надо связывать версию инфра репы с репой кодовой. А у нас этой связи нет, только через поиск артифактов в коммитах
источник

ЕО

Евгений Омельченко in DevOps
Let Eat Bee
нет, юзаю гит в качестве иммьютабл лога. могу кафку, но гит удобнее так как можно делать реверты
Ну это и есть база данных и гит очень плохой инструмент для этого
источник

DS

Dmitry Sergeev in DevOps
это условный пример, вмест cronjob допиши что нравится
источник

GG

George Gaál in DevOps
Евгений Омельченко
Ревертить через версию это безумие :)
😂
источник

ЕО

Евгений Омельченко in DevOps
Чувствую наболело :)
источник

GG

George Gaál in DevOps
я никуда не тороплюсь когда напьюсь тогда напьюсь
Зачем откатывать инфраструктурную репу, если билд/интеграцию сломал код разрабов? Такая возможность (одновременный откат) должна быть, но у тебя написано как будто это обязательно. Гораздо правильнее подход ПЕРЕСОЗДАНИЯ (с нуля) сервиса пайплайн-триггером (хуком), но для этого код в IaC-репе должен быть достаточно универсальным.
Чо-чо
источник

GG

George Gaál in DevOps
С остановкой сервиса, что ли ?
источник

як

я никуда не тороплюсь когда напьюсь тогда напьюсь in DevOps
Dmitry Sergeev
> Всё так. в инфра репу рендерятся готовые к деплою манифесты.
Ну окей начнем заново.


Смотри. У тебя есть инфра репа, есть репа с кодом сервиса.

v1.0.1 код сервиса требует два деплоймента и cronjob
v1.0.2 код сервиса требует только один деплоймент


Нужно откатить с v1.0.2 до v1.0.1. Если мы просто пропишем v1.0.1 и запушим, приложение сломается, так как оно зависело от двух деплойментов и cronjob. А они пропали

@elemir90 Как я понял предлагает, чтобы master инфра репы, всегда соотвесвтовал состоянию в кубе + никаких автоматических откатов.

То есть для отката, нужно найти коммит в инфра репе, когда в нем был проиписан сервис версии v1.0.1 и сделать revert до этого коммита. И запушить.

Сейчас я делаю по другому. У меня либо инфра репа  это сабмодуль в репе сервиса, либо описание ифнры просто лежит вместе с сервисом. И для отката, нужно просто выбрать нужную версию сервиса и задеплоить, и это гарантировано дает описание инфры совместимое с нужной версией сервиса.

И я не понимаю в чем приемущество его описанного подхода. Вот и все. Пытаюсь выяснить
Если у тебя есть staging - ты должен код продукта (сервиса) тестировать со ВСЕМИ [поддерживаемыми] версиями инфраструктуры
источник

GG

George Gaál in DevOps
Dmitry Sergeev
прочитай выше. Условие @elemir90 : нельзя автоматически комитить в инфра репу.
Какое-то глупое условие, кмк
источник

GG

George Gaál in DevOps
я никуда не тороплюсь когда напьюсь тогда напьюсь
Если у тебя есть staging - ты должен код продукта (сервиса) тестировать со ВСЕМИ [поддерживаемыми] версиями инфраструктуры
Это не возможно
источник

DS

Dmitry Sergeev in DevOps
George Gaál
Какое-то глупое условие, кмк
ну то есть таки хранить инфу о совместимости версии инфра репы с кодовой репы таки надо
источник

GG

George Gaál in DevOps
У тебя инфра в принципе в количестве одна штука
источник