Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 версионирование БД  [new]
lleming
Member

Откуда:
Сообщений: 1654
flyway пользуемся на проекте. Для отслеживания продукта они здорово подходят.
Сделал checkout релиза собрал package, перенес на стенд, запустил, схема, соотвествующая релизу накатилась, продукт завелся.

Все было хорошо до определенного момента, начиная с определенного БД усложнилась и писать скрипты изменения стало нетрививально ибо триггеры, констрейнты. (Хотя это проблема в отсуствии выделенного ДБА скорее).

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

Кто как решает проблему?
20 мар 19, 11:56    [21838271]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3348
lleming,

1. использовать что-то менее топорное, а не flyway
2. ревьювить
3. гонять скрипты на специально подготовленной базе (нужно этим специально заниматься, да)
4. забыть про существование серебряных пуль - деплой в прод всегда начинается с бэкапа
20 мар 19, 12:02    [21838283]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
lleming,
Вы доросли до ДБА но упорно не хотите выделить чела. Увы.
20 мар 19, 12:23    [21838318]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Андрей Панфилов
нужно этим специально заниматься, да
да.
Если нет в штате ДБА/уборщицы, то кто то берет швабру и выполняет обязанности.
А скрипты отката можно и прогеров заставить. Я сам писал.
20 мар 19, 12:25    [21838323]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3348
Petro123
Если нет в штате ДБА/уборщицы, то кто то берет швабру и выполняет обязанности.
А скрипты отката можно и прогеров заставить. Я сам писал.
Здесь вообще нет никакой работы для DBA, DBA - это про сопровождение СУБД, а не про поддержку жизненного цикла приложения.
20 мар 19, 12:51    [21838365]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5677
lleming
Главная проблема с обновлениями существующих клиентов. БД с данными и скрипты изменения схемы в БД могут выкидывать ошибки Приходится ручками релизы аккуратненько накатывать (авто деплой уже нетривиален). Кроме того это занимает теперь время.

Кто как решает проблему?

- странно, использовал Liquibase, там хранится вся история изменений, можно накатить с любого места, таких проблем не возникает
20 мар 19, 13:07    [21838401]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Андрей Панфилов,
Ну ОК, назовем его Разработчик БД. Главное что на больших проектах ему работы хватает с тюнингом БД.
20 мар 19, 13:09    [21838403]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Kachalov,
Наверно говорилось о накате на живую бд, где идут коммиты и откаты. А вы стуктуру меняете.
20 мар 19, 13:10    [21838407]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Андрей Панфилов
Petro123
Если нет в штате ДБА/уборщицы, то кто то берет швабру и выполняет обязанности.
А скрипты отката можно и прогеров заставить. Я сам писал.
Здесь вообще нет никакой работы для DBA, DBA - это про сопровождение СУБД, а не про поддержку жизненного цикла приложения.
вот дорожная карта профи:
Кто прав - программист или DBA?
20 мар 19, 13:28    [21838442]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3348
Petro123
вот дорожная карта профи:
Кто прав - программист или DBA?
а в каком месте вы нашли противоречие с тем что я написал? Тот ранлист (не роадмап) предназначается для Operations (разработка живет в Transition, если что) - вот в Operations полагают, что проведение тестового обновления на среде, приближенной к продуктовой, увеличивает шансы на успешное обновление продуктовой среды, ровно как и резервное копирование уменьшает шансы просрать все - на этом как бы все. То что кто-то делегировал ДБА задачу "тупо запустить скрипт и проверить отсутствие ошибок" - ну это либо он незнания, либо от скудоумия: это не задача ДБА, та же проверка ошибок даже в таком кондовом инструменте как SQL*Plus реализуется одной строчкой в начале срипта, более того, вот мы взяли и закатали сценарии flyway в приложение и теперь миграции происходят при деплойменте - все ДБА здесь не нужен, а значит и раньше был не нуженэто была не его задача.
20 мар 19, 14:36    [21838540]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Андрей Панфилов,
Я не пойму. Давайте конкретнее.
Перепишите этот юзкейс если не согласны:
автор
Привет

Оба правы, ибо не фиг непредсказуемое навешивать.
- Разработчик на своей девелоперской БД (например, очень недавний бэкап промышленной) отладил скрипт.
- DBA на тестовой (куда девелоперам доступа нет) тупо запустил скрипт и проверил отсутствие ошибок. Запустил туда админа приложения д ля проверки функционала
- запланировали downtime или ограниченную доступность сервисов. DBA подготовил возможность отката (standby с задержкой наката redo подойтёт).
- В момент Ч DBA прогнал проверенный скрипт и пустил админа приложения проверить основной функционал. Если ОК - пущаем в продакшн. Если не Ок, откатываемся на запасные путя и предоставляем начальству удовольствие оттрахать разработчика или администратора приложений (по выбору).

Всего
кто будет виноват, если при смене версий база упадет?
20 мар 19, 14:50    [21838564]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3348
Petro123
Перепишите этот юзкейс если не согласны

Зачем его переписывать? Это условный ранлист для Operations, там еще нужно указать время начала работ и предположительную длительность шагов, чтобы потом между командами Operations синхронизировать действия (т.е. условно нам до 8 вечера не отписали что все работает - мы выполняем откат БД)

Petro123
кто будет виноват, если при смене версий база упадет?
Со стороны Operations - никто, при условии, что у них были резервные копии, было правильно спланирован ранлист (заложен сценарий отката) и они-таки смогли откатиться. Со стороны Transition - в большинстве случаев это косяк QA - данные в тестовых базах нужно специально готовить, чтобы хоть как-то тестировать миграции, а не гонять миграции на пустых табличках.
20 мар 19, 14:58    [21838577]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
lleming
Member

Откуда:
Сообщений: 1654
Андрей Панфилов
lleming,

1. использовать что-то менее топорное, а не flyway
2. ревьювить
3. гонять скрипты на специально подготовленной базе (нужно этим специально заниматься, да)
4. забыть про существование серебряных пуль - деплой в прод всегда начинается с бэкапа


For example?

Liquibase на другом проекте где участвовал во внедрении, показался еще топорнее (ИМХО).
20 мар 19, 15:13    [21838592]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Андрей Панфилов
Это условный ранлист для Operations
где про это почитать?

Андрей Панфилов
там еще нужно указать время начала работ и предположительную длительность шагов

Там не по времени, а админ приложений проверяет новую фишку от прогеров.
Значит это Не Operations?
20 мар 19, 15:14    [21838596]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Андрей Панфилов
Зачем его переписывать?
был дан пример для двух лиц.
Со стороны заказчика DBA
Со стороны разраба - админ приложений.
Возможно ваш вариант содержит еще больше действующих лиц при "не дело DBA и DBA не работает".
20 мар 19, 15:19    [21838603]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3348
Petro123
Со стороны заказчика DBA
Со стороны разраба - админ приложений.
Возможно ваш вариант содержит еще больше действующих лиц при "не дело DBA и DBA не работает".

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

а вы выдрали какую-то маленькую часть, опосредованно касающуюся ДБА и пытаетесь меня в чем-то убедить, не получится.
20 мар 19, 17:59    [21838816]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5677
lleming
БД с данными и скрипты изменения схемы в БД могут выкидывать ошибки
...
Liquibase на другом проекте где участвовал во внедрении, показался еще топорнее (ИМХО).

- ??? вообще не понятно в чем проблема. У клиента стоит определенная версия приложения и схемы данных (X.Y.1) надо обновить до X.Y.25, соответственно должны быть changeset-ы (X.Y.2, ..., X.Y.25), которые последовательно накатываются и схема приходит в состояние X.Y.25. Наличие данных в БД должно быть учтено в changeset-ах (апдейты, перемещение данных в другие таблицы, дефолтные значения все это можно описать в changeset-ах, в том числе с условиями).
20 мар 19, 18:55    [21838874]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Андрей Панфилов,
Мы говорим о разных весовых категориях и о линейке решении от простого к сложному.
У ТС никого нет из описанных вами штатных единиц.
Получается сначала фирма растет до DBA, а потом до всего того что вы описали.
И не выдрал, а разговариваю о версионности БД через скрипты.
А не об обучении пользователей.
Никто с вами не спорит.
21 мар 19, 07:17    [21839082]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Kachalov,
Он говорит, что на большой, боевой базе и без DBA/админа это сложно.
Какой у вас размер базы и есть ли DBA?
То что у ТС нет конкретики, я согласен.
У меня как то был совмещенный ДБА-программист.
21 мар 19, 07:28    [21839087]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5677
Petro123
Какой у вас размер базы и есть ли DBA?

я с liquibase встречался в разных проектах. В последнем база Oracle большого размера (ЕМИАС Москвы). DBA в штате конечно есть и в нашем проекте, и в службе поддержки системы. Скрипты liquibase накатывают сотрудники поддержки, однако сами скрипты пишут разработчики без всякой помощи DBA (задачи по изменению базы типа - добавить индекс, добавить таблицу, добавить в таблицу значения). Скрипты предварительно тестируем на копии боевой базы.
21 мар 19, 10:20    [21839215]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Kachalov,
Согласен. У нас тоже, DBA никаких скриптов не пишет, но без него не обходится).
Поэтому автору нужно более конкретно расписать Проблему.
21 мар 19, 11:02    [21839289]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3348
Petro123
Мы говорим о разных весовых категориях и о линейке решении от простого к сложному.
У ТС никого нет из описанных вами штатных единиц.
Получается сначала фирма растет до DBA, а потом до всего того что вы описали.
И не выдрал, а разговариваю о версионности БД через скрипты.
А не об обучении пользователей.
Никто с вами не спорит.
Ну в начале топика несколько другое написано, а именно: мы тут что-то делаем, а когда наступает момент установки на продуктовую среду заказчика - там ничего не работает. Проблема здесь лежит совершенно в другой плоскости (на заметку: вот есть дебилы, которые думают что всякие flyway, liquibase и пр. - это серебряная пуля, ну вот у ТС flyway есть, а оно все равно не едет ) Если к скрипту на SQL относиться как к чему-то, что можно набросать за 15 минут и кинуть в продакшн, то и результат будет соответствующий, правильно относиться к миграциям данных как к полноценным программам и, соответственно, полноценно их тестировать, т.е. перед запуском готовить тестовые данные, проверять что выполнилось без ошибок, проверять что в результате работы у нас в базе данные именно те, которые мы ожидаем - это не работа ДБА, это просто обычное такое себе тестирование.
21 мар 19, 11:53    [21839378]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
lleming
Member

Откуда:
Сообщений: 1654
Андрей Панфилов
Ну в начале топика несколько другое написано, а именно: мы тут что-то делаем, а когда наступает момент установки на продуктовую среду заказчика - там ничего не работает. Проблема здесь лежит совершенно в другой плоскости (на заметку: вот есть дебилы, которые думают что всякие flyway, liquibase и пр. - это серебряная пуля, ну вот у ТС flyway есть, а оно все равно не едет ) Если к скрипту на SQL относиться как к чему-то, что можно набросать за 15 минут и кинуть в продакшн, то и результат будет соответствующий, правильно относиться к миграциям данных как к полноценным программам и, соответственно, полноценно их тестировать, т.е. перед запуском готовить тестовые данные, проверять что выполнилось без ошибок, проверять что в результате работы у нас в базе данные именно те, которые мы ожидаем - это не работа ДБА, это просто обычное такое себе тестирование.


Просто время растет не линейно. Вроде месяц назад можно было скрипты накидать и за час полтора протестить. То теперь сильно сложнее. Продуктовый стенд уже так быстро не склонировать, ну и естественно количество ресурсов выделенных не растет.
21 мар 19, 13:49    [21839551]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
lleming,
Это вопросы админа и ДВА.
Да, у нас админ делал копию раз в неделю и упрашивать надо.
Приходилось самому скрипт для клона писать.
Но вы пишите, что DBA вообще нет.
И это странно.
21 мар 19, 14:42    [21839635]     Ответить | Цитировать Сообщить модератору
 Re: версионирование БД  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13577
Petro123
lleming,
Да, у нас админ делал копию раз в неделю и упрашивать надо.

Админ про crontab не в курсе?
21 мар 19, 17:29    [21839917]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Java Ответить