Как поставить миграцию баз данных на поток?

17

Click here to load reader

Upload: oleg-lipin

Post on 18-May-2015

117 views

Category:

Technology


3 download

DESCRIPTION

Разбираются следующие вопросы: - Как правильно оценить необходимость миграции - Как провести миграцию с минимальным ущербом для бизнеса - Возможный выигрыш и возможные затраты миграции - Плюсы и минусы миграции для процесса разработки. Событие: https://vk.com/event70079222 Лектор: https://vk.com/rdruzyagin Почитать: http://debian-help.ru/

TRANSCRIPT

Page 1: Как поставить миграцию баз данных на поток?

Как поставить миграцию баз данных на поток?

Роман Друзягин [email protected]

Page 2: Как поставить миграцию баз данных на поток?

Какие причины могут сделать миграцию выгоднее чем переделку старого хранилища?

Page 3: Как поставить миграцию баз данных на поток?

Вы пришли на проект…

● Регулярно случается простой сервиса по причине базы.

● Нет бэкапа/high-avaliable решения (почему-то).

● Документация минимальна.

● Есть локальный гуру, который торжественно и таинственно умеет базу чинить.

● Для бизнеса простой становится нормой.

Page 4: Как поставить миграцию баз данных на поток?

● Система жизнеобеспечения оставшегося в наследство решения устроена крайне неочевидно.

Внезапно гуру устал от мира и решил уйти…

● Никто не имеет представления, с какой стороны можно подступиться, не поломав все напрочь.

● Opex занимает не менее 80% рабочего времени техотдела.

● Масштабирование команды не приносит должного эффекта, соизмеримого с затратами.

● На Capex ресурсов практически не остается.

Page 5: Как поставить миграцию баз данных на поток?

Приходит понимание, что так жить нельзя...

● На данном этапе желание изменить ситуацию обычно высказывает бизнес.

● Если бизнес не знает (или не хочет знать) состояние дел в “техничке”, то надежда остается на компетентного техлида или дба.

Page 6: Как поставить миграцию баз данных на поток?

Планирование миграции

● Выделяемое бизнесом время на проведение работ.

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

● Будет ли параллельно вестись разработка новой функциональности?

● Наличие у коллектива требуемых для осуществления миграции компетенций.

● Оценка объема и сложности кода, который надо будет переработать и протестить для миграции.

● Оценка способностей предполагаемого storage, исходя из нагруженности системы (крайне актуально для “highload” проектов).

Page 7: Как поставить миграцию баз данных на поток?

● Миграция схемы и данных.

Проработка деталей

● Переработка кода, тщательное тестирование.

● Отработка процедуры миграции, формализация плана (важно!).

● Оценка количества узлов, которые будут недоступны во время миграции и связанных с этим рисков/потерь для бизнеса.

● Обсуждение процесса миграции с нетехническим персоналом.

● Закладывание времени, требуемого на проведение миграции.

● Проработка плана Б.

● Закладывание времени и трудовых ресурсов на постмиграционный период.

Page 8: Как поставить миграцию баз данных на поток?

Что получилось в жизни

● Оценка сложности и выполнимости миграции много времени не составляет.

● Переработка кода всегда займет больше времени, чем планировалось.

● Закладываемое время можно смело в уме увеличивать на ⅓.

● Будьте готовы не взлететь с первого раза (и готовьте бизнес).

Page 9: Как поставить миграцию баз данных на поток?

Выбор технологии

● Должен основываться на объективных критериях работоспособности, а не личных желаниях и потребностях.

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

● Должно быть наличие практического опыта эксплуатации технологии в проекте соразмерного уровня.

● Бóльшая часть коллектива должна обладать навыками и знаниями, достаточными для освоения технологии в разумные сроки.

Page 10: Как поставить миграцию баз данных на поток?

● Сильно зависит от отношений в коллективе и с техлидом.

Как освоить технологию командой?

● Революционно-инициативная команда сама изучит.

● Менее склонный к трудовым подвигам коллектив надо обучать.

Page 11: Как поставить миграцию баз данных на поток?

Как организовать работу команды над миграцией?

● Заранее проработайте все неочевидные моменты и составьте базу знаний.

● Четко обозначьте, “что такое хорошо, а что такое плохо”.

● Выработанным правилам работы со старым и новым кодом должна подчиняться вся команда, без исключения.

● Организуйте “горячую линию” связи с компетентным специалистом, владеющим технологией.

Page 12: Как поставить миграцию баз данных на поток?

Как смигрировать данные?

● Схема мигрируется только вручную.

● Чем проще, тем лучше.

● Не изобретайте универсальных велосипедов для решения уникальной задачи.

● Всеми силами избегайте переработки бизнес-логики(в т.ч. оптимизация, рефакторинг и прочие умные слова).

Page 13: Как поставить миграцию баз данных на поток?

“Best practices” по тестированию

● Тестирование должно быть ручным и выполняться профессиональным тестировщиком.

● Новую функциональность надо сразу “мигрировать” и независимо проверять.

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

● Процесс миграции данных надо тестировать как backup/recovery-решение.

Page 14: Как поставить миграцию баз данных на поток?

Час Ч

● Все действующие лица должны быть выспавшиеся, бодрые, трезвые.

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

● Порядок действий от первого до последнего пункта должен быть расписан с максимальной точностью на бумаге/в документе.

● “Штатные” внештатные ситуации тоже должны быть запланированы и расписаны.

● Правильно составленный план позволяет “разыграть” миграцию словно по нотам.

Page 15: Как поставить миграцию баз данных на поток?

Как удостовериться, что миграция удалась?

● Миграция не потребовала большого количества дополнительного времени.

● Вам не пришлось подпирать “костылями” ключевые компоненты системы.

● Вам не потребуется еще две недели простоя бизнеса на то, чтобы “зафиксить все баги”.

Page 16: Как поставить миграцию баз данных на поток?

Светлое будущее: наступило или нет?

● Количество бизнес-хотелок после миграции удвоится.

● До повторной миграции лучше дело (сразу) не доводить.

● Новую базу надо теперь уметь воспитывать.

Page 17: Как поставить миграцию баз данных на поток?

Ваши вопросы?

[email protected]

Роман Друзягинskype: roman.druzyagin