powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Наши за рубежом [закрыт для гостей] / Что такое DevOps?
18 сообщений из 93, страница 4 из 4
Что такое DevOps?
    #21879509
RonibGreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух 
RonibGreat,

можно обойтись и без feature веток
и это не весь прцесс, а только его часть

а в чём сложность? вот мне всё понятно, хоть и мелко
Задача состоит в том чтобы автоматизировать деплой в ДЕВ среду, потом в ЮАЙТИ, а потом в ПРОД. Феатуре обеспецивает запуск билда в ДЕВ среде, открытие нового релиз бренча обеспечивает запус билда в ЮАЙТИ, мердж релиз бренча в мастер дает старт в ПРОД. Все покрывается. Что еще не хватает?
DevOpsRebase1.png
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21879735
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RonibGreat 
...Что еще не хватает? ...
выкатывание версии продукта (это если у вас продукт не из одного модуля хэйлохты), связь с какой нить jira(меняем статусы тасков), с отделом qa, раскатывание версий, поддержка репозитория версий, с разнообразными мессэнджэрами, и т.д...

(круглый)
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21879737
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RonibGreat,

у вас известный всем workflow, картинку можно было и не рисовать
2019-05-07_114850.jpg
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21879747
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RonibGreat,

не понятно, почему вы решили, что "без консультантов ну совсем не разобраться" и "чтобы постигнуть все пункты этого процесса то надо пару месяцев"

постигать придётся не сей процесс, а его конкретную реализацию
что у вас там? Jenkins?

а по процессу: вместо feature branches можно использовать feature toggles (flags)
останутся только master, develop, release и ветки с хотфиксами
пул реквесты должны идти прямо в develop, новый функционал закрыт feature toggles (flags)
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21879749
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а дальше уже blue-green deployment, или canary releases
цель: zero downtime, проверка новой версии на проде и быстрый откат в случае чего
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21879756
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интеграция с Jira, Slack, Teams, выпечка и хранение версий артифактов - это уже конкретная реализация
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21879868
RonibGreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух,

Джира, Слэк, Артифактори - эта вся лабуда тоже есть. Слэк не больше как замена имейла. Джира понятно - от нее все пляски и начинаются. feature toggles (flags) - посмотрю, может перелабаю если это реально упростит процесс, а то прошелся по всему процессу с тестовой задачей так слишком сложно получается со всеми ветками и пул реквестами.

Спацибо за подсказку!
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21880137
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух 
а дальше уже blue-green deployment, или canary releases
цель: zero downtime, проверка новой версии на проде и быстрый откат в случае чего
А вот кстати. Мне, как имевшему дело с релиз/деплоймент менеджментом, приходилось сталкиваться с такого типа проблемами:

Если "чего" случилось, то для крутящегося вокруг базы приложения быстро откатиться и сделать это "автоматом" уже не получится. Как только прошла первая транзакция, данные уже относятся к обновлённой схеме БД, где даже в не изменившийся в структуре бд атрибут может иметь новую семантику (конечно, за такое надо по рукам, но команды разработчиков - они же сами с усами, да и поди отлови всех).

Частая ситуация - в изменённую структуру начинают немедленно лететь данные. И что с ними делать? В большинстве случаев "случилось" - отнюдь не немедленно всё взорвалось, а где-нибудь на следующий после раскатки день критически стала расти нагрузка (собственно функциональные ошибки по большей части ловятся или сразу, или вообще в Test/UAT).

Т.е. теоретически, должна некоторым образом обеспечиваться процедура отката с сохранением данных из новой структуры. Такой откат в общем случае требует ручного написания скриптов, а значит, в них тоже могут содержаться ошибки.

Как вы подобные ситуации обрабатываете, как их предотвращаете?
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21880278
Фотография bga83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CawaSPb 
Т.е. теоретически, должна некоторым образом обеспечиваться процедура отката с сохранением данных из новой структуры. Такой откат в общем случае требует ручного написания скриптов, а значит, в них тоже могут содержаться ошибки.

Как вы подобные ситуации обрабатываете, как их предотвращаете?
тестовые откаты на окружениях аналогичных проду, по сути процедера по своей идеи полностью идентична проверке процедуры восстановления чего-либо из бекапов.
CawaSPb 
Если "чего" случилось, то для крутящегося вокруг базы приложения быстро откатиться и сделать это "автоматом" уже не получится. Как только прошла первая транзакция, данные уже относятся к обновлённой схеме БД, где даже в не изменившийся в структуре бд атрибут может иметь новую семантику (конечно, за такое надо по рукам, но команды разработчиков - они же сами с усами, да и поди отлови всех).
это в общем то и ест ьодна из задач - обеспечить контроль того чтобы изменения в структуре БД не были столь критичны и проходили в несколько этапов. Как именно обеспечить подобный контроль это уже десятый вопрос
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21880525
Фотография SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух 
RonibGreat,

не понятно, почему вы решили, что "без консультантов ну совсем не разобраться" и "чтобы постигнуть все пункты этого процесса то надо пару месяцев"

постигать придётся не сей процесс, а его конкретную реализацию
что у вас там? Jenkins?
Вот как раз в эту реализацию я и был окунут с головой.

Когда тестировали - всё шло хорошо, а когда дали отмашку всем департаментам заливать в Дженкинс свои исходники, вот тут-то опен-сорс и не выдержал напора дерьма и слив заглох.
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21880768
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CawaSPb 
Дмитрий Мух 
а дальше уже blue-green deployment, или canary releases
цель: zero downtime, проверка новой версии на проде и быстрый откат в случае чего
А вот кстати. Мне, как имевшему дело с релиз/деплоймент менеджментом, приходилось сталкиваться с такого типа проблемами:

Если "чего" случилось, то для крутящегося вокруг базы приложения быстро откатиться и сделать это "автоматом" уже не получится. Как только прошла первая транзакция, данные уже относятся к обновлённой схеме БД, где даже в не изменившийся в структуре бд атрибут может иметь новую семантику (конечно, за такое надо по рукам, но команды разработчиков - они же сами с усами, да и поди отлови всех).

Частая ситуация - в изменённую структуру начинают немедленно лететь данные. И что с ними делать? В большинстве случаев "случилось" - отнюдь не немедленно всё взорвалось, а где-нибудь на следующий после раскатки день критически стала расти нагрузка (собственно функциональные ошибки по большей части ловятся или сразу, или вообще в Test/UAT).

Т.е. теоретически, должна некоторым образом обеспечиваться процедура отката с сохранением данных из новой структуры. Такой откат в общем случае требует ручного написания скриптов, а значит, в них тоже могут содержаться ошибки.

Как вы подобные ситуации обрабатываете, как их предотвращаете?
Скрипты миграции для основной базы пишутся вручную и разделены на две части.
Before - та часть миграций, что выполняется до переключения части клиентов на новую версию (Canary releases).
After - выполняются после того как канарейка выжила (все клиенты переключены на новую версию).

И есть соглашение о том, что скрипты Before не должны содержать ничего, что сделает невозможным откат в случае чего.

Соответсвенно разработчики, и я в том числе, пишут код с учётом этого. Используя feature toggles, decorators и т.п.

P.S.: и у нас нет единой команды разработчиков, у нас кроссфункциональные артели, каждая из которых отвечает за свою часть (модуль) продукта, от анализа до выкатки на прод.
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21880771
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bga83 
обеспечить контроль того чтобы изменения в структуре БД не были столь критичны и проходили в несколько этапов
+1

в несколько этапов
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21880774
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandalTree 
Дмитрий Мух 
RonibGreat,

не понятно, почему вы решили, что "без консультантов ну совсем не разобраться" и "чтобы постигнуть все пункты этого процесса то надо пару месяцев"

постигать придётся не сей процесс, а его конкретную реализацию
что у вас там? Jenkins?
Вот как раз в эту реализацию я и был окунут с головой.

Когда тестировали - всё шло хорошо, а когда дали отмашку всем департаментам заливать в Дженкинс свои исходники, вот тут-то опен-сорс и не выдержал напора дерьма и слив заглох.
в Jenkins? заливать исходники? понятно всё с вами
Картинка
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21880933
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bga83 
CawaSPb 
Т.е. теоретически, должна некоторым образом обеспечиваться процедура отката с сохранением данных из новой структуры. Такой откат в общем случае требует ручного написания скриптов, а значит, в них тоже могут содержаться ошибки.

Как вы подобные ситуации обрабатываете, как их предотвращаете?
тестовые откаты на окружениях аналогичных проду, по сути процедера по своей идеи полностью идентична проверке процедуры восстановления чего-либо из бекапов.
Тестовые откаты на предпродуктивных средах - это, конечно, очень хорошо. Если вы убедите Dev выполнять двойную, а иногда тройную работу, большая часть которой пойдёт "в корзину" (факап не случился, процедура не пригодилась).
В реальной же жизни дев - "скорей, скорей! тяп-ляп и в продакшен".

Процедуре проверки восстанавливаемости бэкапов это, конечно, не аналогично.
Проверка восстанавливаемости легко автоматизируется (всегда полезно иметь где-либо свежий, восстановленный из бэкапа прод; хотя бы для финального тестирования разворачиваемости изменения на свежих продуктивных данных).
Откат изменений после наколбашивания данных в новую структуру - работа по подготовленному вручную скрипту.

Ближе - BCP тест, проведённый с потенциальной потерей данных и применением процедур проверки такой потери и восстановления из других источников.
Ни разу не видел, чтобы организация добровольно шла на такие проверки (хоть и в тестовой среде). Все проверки/переезды сервисов - в graceful режиме, пока связь между сайтами жива.
bga83 
CawaSPb 
Если "чего" случилось, то для крутящегося вокруг базы приложения быстро откатиться и сделать это "автоматом" уже не получится. Как только прошла первая транзакция, данные уже относятся к обновлённой схеме БД, где даже в не изменившийся в структуре бд атрибут может иметь новую семантику (конечно, за такое надо по рукам, но команды разработчиков - они же сами с усами, да и поди отлови всех).
это в общем то и ест ьодна из задач - обеспечить контроль того чтобы изменения в структуре БД не были столь критичны и проходили в несколько этапов. Как именно обеспечить подобный контроль это уже десятый вопрос
По факту что наблюдал - часто прилетало, что и для _накатываемости_ изменений приходилось вручную править ввиду объёмов данных на продуктиве и конкурентной нагрузки (и чтобы была возможность провести изменения наживую - подчас требовались специальные знания, которых у разработчиков просто не было). Чего уж говорить про откаты при несовместимости структур.

Пара сценариев.
a) Поле увеличило размерность.
- Поменяли (сделали это даже online)
- Но вот где-то в интегрированной критически важной системе поле не расширили (её может вообще сторонняя организация делает, кстати).
- Прилетело увеличенное значение (хорошо, если текстовое, и просто интеграция сломалась, а может и числовое и пошло автоматическое округление и "баланс" поплыл... когда-нибудь... позже).
- Надо вертать в зад. А там уже значения, которые используют большую размерность. Потерять их - тоже не комильфо. Причём расширить тип колонки подчас можно лёгким мановением руки в онлайне. А вот уменьшить - уже с полной физической реорганизацией таблицы, что может уже потребовать существенного времени и не допускать модификации данных в процессе (т.е. имеем простой приложения).

b) Имеем CHAR поле, хранящее какой-либо признак/класс объекта ('Y', 'N'... 'A', 'B', 'C', 'D'…), на которое завязана внутренняя логика приложения. В какой-то момент список значений расширяется.
- БД дизайнер отметил это у себя в голове, в доках и спустил девелоперу.
- В БД вообще ничего не пришло! (если не ограничиваем список значений констраинтами, а может и в этом случае не придти, если просто поменялась семантика поля).
- По какой-то там причине релиз откатили.
Никакая автоматизированная система тут не поможет – будет просто не в курсе изменений природы данных. И уж точно не будет в курсе, что (и как) с этим делать.

Т.е. да, руками это всё правится, но это на каждый чих надо городить огород с огромной работой по тестированию (в одной из организаций, в которой работал, на одной из центральных баз, например, прилетало довольно часто по несколько изменений в день на прод).

Вот мне и интересно послушать Дмитрия про чудесные Deployment чудеса, которые им позволяют проводить "проверку новой версии на проде и быстро откатиться в случае чего" (мы же на sql.ru и говорим о приложениях, крутящихся вокруг DB?).

Что наблюдал чаще, Deployment - это дорога в один конец. Далее - хотфиксы или аккуратная ручная работа по "отскрёбыванию этого …".

Другое дело - постараться впихнуть скрипт наката в одну транзакцию и по факту ошибки всё разом откатить (соответственно никаких новых данных там пока нет).
Тут тебе и online, и быстрый откат (за определёнными исключениями).
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21880935
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух 
CawaSPb 
пропущено...

А вот кстати. Мне, как имевшему дело с релиз/деплоймент менеджментом, приходилось сталкиваться с такого типа проблемами:

Если "чего" случилось, то для крутящегося вокруг базы приложения быстро откатиться и сделать это "автоматом" уже не получится. Как только прошла первая транзакция, данные уже относятся к обновлённой схеме БД, где даже в не изменившийся в структуре бд атрибут может иметь новую семантику (конечно, за такое надо по рукам, но команды разработчиков - они же сами с усами, да и поди отлови всех).

Частая ситуация - в изменённую структуру начинают немедленно лететь данные. И что с ними делать? В большинстве случаев "случилось" - отнюдь не немедленно всё взорвалось, а где-нибудь на следующий после раскатки день критически стала расти нагрузка (собственно функциональные ошибки по большей части ловятся или сразу, или вообще в Test/UAT).

Т.е. теоретически, должна некоторым образом обеспечиваться процедура отката с сохранением данных из новой структуры. Такой откат в общем случае требует ручного написания скриптов, а значит, в них тоже могут содержаться ошибки.

Как вы подобные ситуации обрабатываете, как их предотвращаете?
Скрипты миграции для основной базы пишутся вручную и разделены на две части.
Before - та часть миграций, что выполняется до переключения части клиентов на новую версию (Canary releases).
After - выполняются после того как канарейка выжила (все клиенты переключены на новую версию).

И есть соглашение о том, что скрипты Before не должны содержать ничего, что сделает невозможным откат в случае чего.

Соответсвенно разработчики, и я в том числе, пишут код с учётом этого. Используя feature toggles, decorators и т.п.

P.S.: и у нас нет единой команды разработчиков, у нас кроссфункциональные артели, каждая из которых отвечает за свою часть (модуль) продукта, от анализа до выкатки на прод.
Ага. Спасибо.

Но откатываете вы как, с откатом структуры БД или без?
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21881438
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CawaSPb 
Дмитрий Мух 
пропущено...

Скрипты миграции для основной базы пишутся вручную и разделены на две части.
Before - та часть миграций, что выполняется до переключения части клиентов на новую версию (Canary releases).
After - выполняются после того как канарейка выжила (все клиенты переключены на новую версию).

И есть соглашение о том, что скрипты Before не должны содержать ничего, что сделает невозможным откат в случае чего.

Соответсвенно разработчики, и я в том числе, пишут код с учётом этого. Используя feature toggles, decorators и т.п.

P.S.: и у нас нет единой команды разработчиков, у нас кроссфункциональные артели, каждая из которых отвечает за свою часть (модуль) продукта, от анализа до выкатки на прод.
Ага. Спасибо.

Но откатываете вы как, с откатом структуры БД или без?
скрипты мы обычно не откатываем, только код

для этого они и разбиты на два этапа: Before и After canary
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21881484
activate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Как вы подобные ситуации обрабатываете, как их предотвращаете?

Разделяется релиз изменений базы и приложения, с целью чтоб приложение можно легко откатить, базу откатить тоже возможно, но сложнее и обычно не нужно.

Сначала выкладываются изменения базы, при этом изменения не должны нарушать работу приложения в текущей версии. (ALTER TABLE ADD COLUMN вместо ..RENAME )
Также тестируется откат изменений базы. Тестируется работа приложения в текущей версии с новой структурой базы.
Потом выкладывается новая версия приложения. Иногда перед релизом изменений базы выкладывают версию приложения с поддержкой новой и старой версии базы.

STEP 1: DB v1, APP v1 // current statue

STEP 1.5*: DB v1, APP v1.5 // *optional, if needed

STEP 2 DB v2, APP v1 // or v1.5

STEP 3 DB v2 , APP v2 // released v2

изменения базы автоматизируются “скриптами” и все шаги релиза автоматизируются в CI/CD .
Под “скриптами” имеется ввиду то что генерируется migration tools supported by а framework или flyway or liquidbase c ручной правкой если надо.
...
Рейтинг: 0 / 0
Что такое DevOps?
    #21923286
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
John Willis — The seven archetypes of a DevOps transformation
...
Рейтинг: 0 / 0
18 сообщений из 93, страница 4 из 4
Форумы / Наши за рубежом [закрыт для гостей] / Что такое DevOps?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]