@devops_ru

Страница 4144 из 4568
Alexander
04.08.2018
18:49:55
да, там как раз все вокруг базы крутится

Den
04.08.2018
18:53:54
но галера в докере - психушка
А можно пожалуйста подробнее?

Сергей
04.08.2018
19:13:11
http://michaeljswart.com/2018/01/100-percent-online-deployments-blue-green-deployment/
почитал - в моем кейсе не сработает, сейчас миграции идут по 2-3 часа (записей много), и даже aqua state тут не поможет сделать zero downtime. Все равно придется делать green сервис так, чтобы он мог и со старой схемой

работать, и с новой

Google
Alex
04.08.2018
19:15:38
про blue-green знаю, тут вся проблема с центральной бд... а так за ссылку спасибо, почитаю :-)
Есть вариант поставить мастер-слейв и в sql прокси завернуть все запросы к бд. Потом обновить схему бд если требуется на слейве. Новую версию приложения развернуть параллельно и на sql прокси все запросы от нового приложения маршрутизировать в слейв. Все запросы на изменение данных в бд записывать в прокси. Дальше часть трафика пустить только на новое приложение, если всё ок, постепенно увеличивать трафик нового приложения. Все юзеры должны привязаться к версии приложения по сессии или какому нибудь уникальному значению.

Сергей
04.08.2018
19:15:40
потом миграцию данных из старой в новую в параллели с работой грин сервиса, причем т.к.данных много это растянется надолго

Alex
04.08.2018
19:18:10
Ну и чтобы консистентность данных была, в слейв все запросы на изменение должны тоже идти. Про это надо не забыть.

Так можно и откатить без потери данных и обновить без простоя.

Готового инструмента для такого я не знаю, наверно и нет из-за того что у всех свой софт специфичен

Сергей
04.08.2018
19:21:46
ок

Alex
04.08.2018
19:24:13
Для отката будет необходимо все залогированные запросы на изменение к слейву проверить, что они валидны для старой схемы. Если не валидны, они будут всё равно однотипны и можно будет через прокси сконвертить или скриптом. Потом накатить на мастер бд

Вот это интересная задача, не то что нджинкс на убунту поставить

Combot
04.08.2018
19:31:13
Alexander (1) увеличил репутацию Alex Gluck (3)

Google
Сергей
04.08.2018
19:31:28
если использовать лог sql запросов, то получается eventually consistency. что не айс

Alexander
04.08.2018
19:31:49
я не понял про миграции

Alex
04.08.2018
19:31:53
уменьшать время миграций. так не должно быть
Да что ты говоришь. Поди смени на 200 гиговой бд схему и тип поля с конвертацией, да ещё и быстро.

Сергей
04.08.2018
19:32:26
уменьшать время миграций. так не должно быть
записей _очень_ много - по быстрому ну никак

Alexander
04.08.2018
19:32:27
Да что ты говоришь. Поди смени на 200 гиговой бд схему и тип поля с конвертацией, да ещё и быстро.
копировать таблицу, менять на копии, догонять отстающие записи, потом переименовать

все так делают (с)

Alex
04.08.2018
19:33:17
если использовать лог sql запросов, то получается eventually consistency. что не айс
У тебя в прокси sql есть возможность запросы преобразовывать для синхронной консистентности. Но это сложнее.

Alexander
04.08.2018
19:33:35
жопа. потенциально развал всего

Alex
04.08.2018
19:33:41
Alexander
04.08.2018
19:33:53
нет

копируй пока продуктив работает

никто не мешает

Alex
04.08.2018
19:34:16
нет
Тогда это полемика. Я считаю по другому

Alexey
04.08.2018
19:34:16
привет всем, может кто знает, есть чат по астериcку?

Alex
04.08.2018
19:36:56
жопа. потенциально развал всего
Ну надо думать, пытаться. Мой вариант теоретически работоспособен. Я даже когда то проверял теорию и подтвердил её на микровыборке. Но в больших масштабах могут быть описанные тобой проблемы.

Alexander
04.08.2018
19:37:14
я считаю что тут должен быть даунтайм и все

и бить по голове архитеторов, которые решили поля менять в больших таблицах

Alex
04.08.2018
19:38:10
я считаю что тут должен быть даунтайм и все
Я думаю что можно сделать тестовый стенд и проверить разные варианты.

Google
Alexander
04.08.2018
19:38:50
просто чувака загнали в яму

а можно было изначально предусмотреть

Alex
04.08.2018
19:39:33
а можно было изначально предусмотреть
Это классика. Часто так ошибаются

Alexander
04.08.2018
19:39:55
конечно, но не выкручивают руки с минимальным даунтаймом

а что там за БД?

Alex
04.08.2018
19:40:13
Толерантность надо проявлять к пидорасам

Alexander
04.08.2018
19:40:16
оракл какой или сиквел?

к геям же

Alex
04.08.2018
19:40:33
а что там за БД?
Банк он сказал. Наверно оракловые или дб2

Alexander
04.08.2018
19:40:48
это ж мегамонолит, че они парятся

ноччю свопнули базы и все

Alex
04.08.2018
19:41:22
к геям же
Геи, это люди иной ориентации. А архитекторы меняющие поля на бд, пидорасы

Сергей
04.08.2018
19:41:24
сейчас оракл

Alexander
04.08.2018
19:41:24
вайти-директор про скрамы девопсы и эджайлы начитался?

а если не секрет оракл в RAC работает?

Сергей
04.08.2018
19:42:38
есть желание уйти от монолита и миграций по несколько часов

насколько я знаю, нет не rac

Alexander
04.08.2018
19:43:31
а как вы сейчас мигрируете? и главное - почему мигрируете?

насколько я знаю, нет не rac
а как часто падает БД?

если что - у всех падает и ресторится ии фиксится от краша приложений

Google
Alex
04.08.2018
19:44:30
раз в квартал
Средненько, прям как в геймдеве

Alexander
04.08.2018
19:44:31
то есть набираете критическую массу изменений в схему и фигачите часами

если так то правильно делаете

точно начитались про микросервисы

но я не пойму если нет пересчета чего-то, почему многочасовые миграции

Alex
04.08.2018
19:47:42
точно начитались про микросервисы
Всю жизнь работали как белые люди и на тебе. Аджайлы, девопсы, смузи

Сергей
04.08.2018
19:48:04
:-)

Alexander
04.08.2018
19:48:19
есть табл1 надо поменять поле1, в табл1 всего 100 млн записей. делаем табл2 с правильными полями. запускаем утилиту или просто запрос, который вольет содержимое табл1 в табл2. синхронизируем как только можно. тушим приложения. проверяем консистентность табл2 на 100% соответствие табл1. переименовываем табл1 в табл3 а табл2 в табл1. включаем приложения

где тут 3 часа не понимаю

сначала дольше, а потом минут до 5-15 дойдете

даутнайма

Сергей
04.08.2018
19:56:42
у нас порядок цифр несколько иной - десятки миллиардов записей, нагрузка порядка 10к транзакций в сек. скриптов миграций в одной версии - сотни.

поэтому и 3 часа

тут похоже проблема фундаментальнее. чтобы можно было использовать blue-green надо релизиться сильно чаще, чтобы сервис мог управляться с двумя схемами сразу.

иначе дельта м5жду схемами настолбко большая, что сервис просто разорвет от логики поддержки двух схем сразу

Alexander
04.08.2018
20:01:05
поэтому и 3 часа
а как сейчас процесс миграции идет? так как я выше описал или выключили приложение и давай молотить?

10к в сек и хрен с ним

все равно 3 часа - это много

Google
Alex
04.08.2018
20:01:37
Без простоя оракл вы не сможете без смены структуры софта на уход от централизованной бд

Alexander
04.08.2018
20:04:36
есть еще хак, но все зависит от приложения. кароче когда-то видел такую реализацию по решению проблемы: софт позволял писать необходимые данные сразу в несколько таблиц при опрееленных настройках. идея состояла в том что в определенный момент софт писал в старую и новую структуры. реализовывалось это на уровне приложения без прокси-серверов, что несколько усложняло логику и работу приложения, но "гарантировало" от случайностей с внешними прокси. когда видели что все идет по плану то просто ребутили сервер приложений с новыми настройками - переключали таким образом на другую структуру

но это разработчикам было сложновато делать и закладывалось на этапе проектирования (ритейл емнип)

Сергей
04.08.2018
20:05:38
вооот, я как раз с этого и начал диалог :-)

объяснить толком не смог

Alexander
04.08.2018
20:05:49
;)

Это прям сложно и дорого звучит
чуваки были головастыми и не ленивыми. босс платил бабло и архитектурно грузил на нормальном уровне. основные проблемы они решали такими финтами. кароче команда была огонь

Сергей
04.08.2018
20:07:24
но хочетс снять эту нагрузку с обчных девов

вот и ищу пример промышленной реализации такого

Alexander
04.08.2018
20:07:50
обычному деву насрать (простите мой французский) на простои при миграциях

выше с копированием написал по сути бест практис

Сергей
04.08.2018
20:08:45
вооот. может быть тогда головастые будут овнерами дао слоя например?

Alexander
04.08.2018
20:08:54
видел производную с переименованим не таблиц а просто колумна

Сергей
04.08.2018
20:10:49
где вся эта магия с zd миграциями будет скрыта

Alexander
04.08.2018
20:12:35
какая магия если вы структуры меняете на миллиардниках?

Сергей
04.08.2018
20:17:20
ну предположим, что начнется движение в микросервисы. бд распилят на несколько... все равно хотелось бы от обычных прикладников скрыть кухню zd миграций

Страница 4144 из 4568