SlideShare a Scribd company logo
1 of 17
Download to read offline
Как поставить миграцию баз
данных на поток
Роман Друзягин
Илья Космодемьянский
Какие причины могут сделать
миграцию выгоднее чем
переделку старого хранилища?
Вы пришли на проект…
• Регулярно случается простой сервиса по причине базы
• Нет бэкапа / high-available решения (почему-то)
• Документация минимальна
• Есть локальный гуру, который торжественно и таинственно
умеет базу чинить
• Для бизнеса простой становится нормой
Внезапно гуру устал от мира и решил уйти…
• система жизнеобеспечения оставшегося в наследство
решения устроена крайне неочевидно
• никто не имеет представления, с какой стороны можно
подступиться, не поломав все напрочь
• Opex занимает не менее 80% рабочего времени техотдела
• масштабирование команды не приносит должного эффекта,
соизмеримого с затратами
• на Capex ресурсов практически не остается
Приходит понимание, что так жить нельзя...
• на данном этапе желание изменить ситуацию обычно
высказывает бизнес
• если бизнес не знает (или не хочет знать) состояние дел
в техничке, то надежда остается на компетентного
техлида или дба
Планирование миграции
• выделяемое бизнесом время на проведение работ
• количество человек, которые будут заниматься миграцией
• будет ли параллельно вестись разработка новой
функциональности?
• наличие у коллектива требуемых для осуществления
миграции компетенций
• оценка объема и сложности кода, который надо будет
переработать и протестировать для миграции
• оценка способностей предполагаемого storage, исходя из
нагруженности системы (крайне актуально для “highload”
проектов)
Проработка деталей
• миграция схемы и данных
• переработка кода, тщательное тестирование
• отработка процедуры миграции, формализация плана (важно!)
• оценка количества узлов, которые будут недоступны во время
миграции и связанных с этим рисков и потерь для бизнеса
• обсуждение процесса миграции с нетехническим персоналом
• закладывание времени, требуемого на проведение миграции
• проработка плана Б
• закладывание времени и трудовых ресурсов на
постмиграционный период
Что получилось в жизни
• оценка сложности и выполнимости миграции много
времени не составляет
• переработка кода всегда займет больше времени, чем
планировалось
• закладываемое время можно в уме увеличивать на ⅓
• будьте готовы не взлететь с первого раза (и готовьте
бизнес)
Выбор технологии
• должен основываться на объективных критериях
работоспособности, а не личных желаниях и потребностях
• технология должна иметь проверенную накопленную базу
знаний, живое коммьюнити, учебные материалы и т.д.
• должно быть наличие практического опыта эксплуатации
технологии в проекте соразмерного уровня
• бОльшая часть коллектива должна обладать навыками и
знаниями, достаточными для освоения технологии в
разумные сроки
Как освоить технологию командой?
• сильно зависит от отношений в коллективе и с техлидом
• революционно-инициативная команда сама изучит
• менее склонный к трудовым подвигам коллектив надо
обучать
Как организовать работу команды над миграцией?
• заранее проработайте все неочевидные моменты и
составьте базу знаний
• четко обозначьте, “что такое хорошо, а что такое плохо”
• выработанным правилам работы со старым и новым
кодом должна подчиняться вся команда, без
исключения
• организуйте “горячую линию” связи с компетентным
специалистом, владеющим технологией
Как смигрировать данные?
• схема мигрируется только вручную
• чем проще, тем лучше
• не изобретайте универсальных велосипедов для
решения уникальной задачи
• всеми силами избегайте переработки бизнес-логики (в
т.ч. оптимизация, рефакторинг и прочие умные слова)
“Best practices” по тестированию
• тестирование должно быть ручным и выполняться
профессиональным тестировщиком
• новую функциональность надо сразу “мигрировать” и
независимо проверять
• компоненты с нетривиальной бизнес-логикой (биллинг,
парсеры, асинхронная обработка и т.п.) надо
перерабатывать в первую очередь и тестировать на
протяжении длительного времени
• процесс миграции данных надо тестировать как
backup/recovery-решение
Час Ч
• все действующие лица должны быть выспавшиеся, бодрые,
трезвые
• должно быть обеспечено наличие у всех нормального
интернета и резервных каналов, проведена плановая
проверка рабочих станций
• порядок действий от первого до последнего пункта должен
быть расписан с максимальной точностью на бумаге/в
документе
• “штатные” внештатные ситуации тоже должны быть
запланированы и расписаны
• правильно составленный план позволяет “разыграть”
миграцию словно по нотам
Как удостовериться, что миграция удалась?
• миграция не потребовала большого количества
дополнительного времени
• вам не пришлось подпирать “костылями” ключевые
компоненты системы
• вам не потребуется еще две недели простоя бизнеса на
то, чтобы “зафиксить все баги”
Светлое будущее: наступило или нет?
l

l

l

количество бизнес-"хотелок" после миграции
удвоится
до повторной миграции лучше дело (сразу) не
доводить
новую базу надо теперь уметь воспитывать
Вопросы?
Роман Друзягин roman.druzyagin@404-group.com
Илья Космодемьянский ik@postgresql-consulting.com

More Related Content

What's hot

TechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, BadooTechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, BadooBadoo Development
 
Повышение продуктивности персонала с системой учёта рабочего времени Yaware
Повышение продуктивности персонала с системой учёта рабочего времени YawareПовышение продуктивности персонала с системой учёта рабочего времени Yaware
Повышение продуктивности персонала с системой учёта рабочего времени YawareYaware
 
Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Ontico
 
Продуктовая разработка без ошибок
Продуктовая разработка без ошибокПродуктовая разработка без ошибок
Продуктовая разработка без ошибокAnton Chernousov
 
TechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, ErlyvideoTechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, ErlyvideoBadoo Development
 
Управление списком задач: как делать то, что нужно делать
Управление списком задач: как делать то, что нужно делатьУправление списком задач: как делать то, что нужно делать
Управление списком задач: как делать то, что нужно делатьSQALab
 
Как мотивировать себя - лайфхаки при постановки целей
Как мотивировать себя - лайфхаки при постановки целейКак мотивировать себя - лайфхаки при постановки целей
Как мотивировать себя - лайфхаки при постановки целейVladimir Zavertaylov
 
AgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get DoneAgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get DoneMax Klymyshyn
 

What's hot (8)

TechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, BadooTechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, Badoo
 
Повышение продуктивности персонала с системой учёта рабочего времени Yaware
Повышение продуктивности персонала с системой учёта рабочего времени YawareПовышение продуктивности персонала с системой учёта рабочего времени Yaware
Повышение продуктивности персонала с системой учёта рабочего времени Yaware
 
Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)
 
Продуктовая разработка без ошибок
Продуктовая разработка без ошибокПродуктовая разработка без ошибок
Продуктовая разработка без ошибок
 
TechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, ErlyvideoTechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, Erlyvideo
 
Управление списком задач: как делать то, что нужно делать
Управление списком задач: как делать то, что нужно делатьУправление списком задач: как делать то, что нужно делать
Управление списком задач: как делать то, что нужно делать
 
Как мотивировать себя - лайфхаки при постановки целей
Как мотивировать себя - лайфхаки при постановки целейКак мотивировать себя - лайфхаки при постановки целей
Как мотивировать себя - лайфхаки при постановки целей
 
AgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get DoneAgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get Done
 

Viewers also liked

Кирилл Гаврилюк, Microsoft
Кирилл Гаврилюк, MicrosoftКирилл Гаврилюк, Microsoft
Кирилл Гаврилюк, MicrosoftOntico
 
Константин Осипов, Mail.Ru, Tarantool
Константин Осипов, Mail.Ru, TarantoolКонстантин Осипов, Mail.Ru, Tarantool
Константин Осипов, Mail.Ru, TarantoolOntico
 
David Fetter, Disqus
David Fetter, DisqusDavid Fetter, Disqus
David Fetter, DisqusOntico
 
Michael Widenius, Monty Program AB.
Michael Widenius, Monty Program AB.Michael Widenius, Monty Program AB.
Michael Widenius, Monty Program AB.Ontico
 
Илья Космодемьянский, PostgreSQL-Consulting.com
Илья Космодемьянский, PostgreSQL-Consulting.comИлья Космодемьянский, PostgreSQL-Consulting.com
Илья Космодемьянский, PostgreSQL-Consulting.comOntico
 
Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)
Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)
Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)Ontico
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Ontico
 
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)Ontico
 
Agile days 2010 человеческий фактор и agile
Agile days 2010 человеческий фактор и agileAgile days 2010 человеческий фактор и agile
Agile days 2010 человеческий фактор и agileNikita Filippov
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsBrendan Gregg
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016Brendan Gregg
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Brendan Gregg
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and moreBrendan Gregg
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf toolsBrendan Gregg
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at NetflixBrendan Gregg
 

Viewers also liked (15)

Кирилл Гаврилюк, Microsoft
Кирилл Гаврилюк, MicrosoftКирилл Гаврилюк, Microsoft
Кирилл Гаврилюк, Microsoft
 
Константин Осипов, Mail.Ru, Tarantool
Константин Осипов, Mail.Ru, TarantoolКонстантин Осипов, Mail.Ru, Tarantool
Константин Осипов, Mail.Ru, Tarantool
 
David Fetter, Disqus
David Fetter, DisqusDavid Fetter, Disqus
David Fetter, Disqus
 
Michael Widenius, Monty Program AB.
Michael Widenius, Monty Program AB.Michael Widenius, Monty Program AB.
Michael Widenius, Monty Program AB.
 
Илья Космодемьянский, PostgreSQL-Consulting.com
Илья Космодемьянский, PostgreSQL-Consulting.comИлья Космодемьянский, PostgreSQL-Consulting.com
Илья Космодемьянский, PostgreSQL-Consulting.com
 
Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)
Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)
Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
 
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
 
Agile days 2010 человеческий фактор и agile
Agile days 2010 человеческий фактор и agileAgile days 2010 человеческий фактор и agile
Agile days 2010 человеческий фактор и agile
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and more
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf tools
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at Netflix
 

Similar to Илья Космодемьянский (PostgreSQL-Consulting.com), Роман Друзягин (404 Group)

PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)Ontico
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииNikolay Sivko
 
Доклад Станислава Выщепана на SPCUA 2012
Доклад Станислава Выщепана на SPCUA 2012Доклад Станислава Выщепана на SPCUA 2012
Доклад Станислава Выщепана на SPCUA 2012Lizard Soft
 
Описания бизнес-процессов - waste?
Описания бизнес-процессов - waste?Описания бизнес-процессов - waste?
Описания бизнес-процессов - waste?CUSTIS
 
Описание бизнес-процессов — waste?
Описание бизнес-процессов — waste?Описание бизнес-процессов — waste?
Описание бизнес-процессов — waste?SQALab
 
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработки
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработкиКак перейти от проектного мышления к продуктовому. Опыт из заказной разработки
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработкиAlexander Byndyu
 
ML Projects portfolio (Home Credit)
ML Projects portfolio (Home Credit)ML Projects portfolio (Home Credit)
ML Projects portfolio (Home Credit)Rodion Kiryukhin
 
рентабельный код
рентабельный кодрентабельный код
рентабельный кодMax Arshinov
 
методики управления развитием ис на базе 1с
методики управления развитием ис на базе 1сметодики управления развитием ис на базе 1с
методики управления развитием ис на базе 1сFFelix87
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summaryAnton Zhukov
 
История о внедрении Процесса
История о внедрении ПроцессаИстория о внедрении Процесса
История о внедрении ПроцессаSergiy Povolyashko
 
Уникальная информационная система для контроля бизнеса
Уникальная информационная система для контроля бизнесаУникальная информационная система для контроля бизнеса
Уникальная информационная система для контроля бизнесаInvestec
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0HighLoad2009
 
Роботизация функций - разбор первичной финансовой документации
Роботизация функций - разбор первичной финансовой документацииРоботизация функций - разбор первичной финансовой документации
Роботизация функций - разбор первичной финансовой документацииНФП
 
презентация 6 июля 2012
презентация 6 июля 2012презентация 6 июля 2012
презентация 6 июля 2012Sergiy Gladkyy
 
Что DevOps должен знать про статический анализ кода?
Что DevOps должен знать про статический анализ кода?Что DevOps должен знать про статический анализ кода?
Что DevOps должен знать про статический анализ кода?Andrey Karpov
 
Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"Ontico
 
История о внедрении Процесса
История о внедрении ПроцессаИстория о внедрении Процесса
История о внедрении ПроцессаSQALab
 

Similar to Илья Космодемьянский (PostgreSQL-Consulting.com), Роман Друзягин (404 Group) (20)

Автоматизация бизнес-процессов, электронного документооборота и архивного хра...
Автоматизация бизнес-процессов, электронного документооборота и архивного хра...Автоматизация бизнес-процессов, электронного документооборота и архивного хра...
Автоматизация бизнес-процессов, электронного документооборота и архивного хра...
 
Критерии выбора системы электронного документооборота
Критерии выбора системы электронного документооборотаКритерии выбора системы электронного документооборота
Критерии выбора системы электронного документооборота
 
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатации
 
Доклад Станислава Выщепана на SPCUA 2012
Доклад Станислава Выщепана на SPCUA 2012Доклад Станислава Выщепана на SPCUA 2012
Доклад Станислава Выщепана на SPCUA 2012
 
Описания бизнес-процессов - waste?
Описания бизнес-процессов - waste?Описания бизнес-процессов - waste?
Описания бизнес-процессов - waste?
 
Описание бизнес-процессов — waste?
Описание бизнес-процессов — waste?Описание бизнес-процессов — waste?
Описание бизнес-процессов — waste?
 
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработки
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработкиКак перейти от проектного мышления к продуктовому. Опыт из заказной разработки
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработки
 
ML Projects portfolio (Home Credit)
ML Projects portfolio (Home Credit)ML Projects portfolio (Home Credit)
ML Projects portfolio (Home Credit)
 
рентабельный код
рентабельный кодрентабельный код
рентабельный код
 
методики управления развитием ис на базе 1с
методики управления развитием ис на базе 1сметодики управления развитием ис на базе 1с
методики управления развитием ис на базе 1с
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
 
История о внедрении Процесса
История о внедрении ПроцессаИстория о внедрении Процесса
История о внедрении Процесса
 
Уникальная информационная система для контроля бизнеса
Уникальная информационная система для контроля бизнесаУникальная информационная система для контроля бизнеса
Уникальная информационная система для контроля бизнеса
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0
 
Роботизация функций - разбор первичной финансовой документации
Роботизация функций - разбор первичной финансовой документацииРоботизация функций - разбор первичной финансовой документации
Роботизация функций - разбор первичной финансовой документации
 
презентация 6 июля 2012
презентация 6 июля 2012презентация 6 июля 2012
презентация 6 июля 2012
 
Что DevOps должен знать про статический анализ кода?
Что DevOps должен знать про статический анализ кода?Что DevOps должен знать про статический анализ кода?
Что DevOps должен знать про статический анализ кода?
 
Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"
 
История о внедрении Процесса
История о внедрении ПроцессаИстория о внедрении Процесса
История о внедрении Процесса
 

More from Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Илья Космодемьянский (PostgreSQL-Consulting.com), Роман Друзягин (404 Group)

  • 1. Как поставить миграцию баз данных на поток Роман Друзягин Илья Космодемьянский
  • 2. Какие причины могут сделать миграцию выгоднее чем переделку старого хранилища?
  • 3. Вы пришли на проект… • Регулярно случается простой сервиса по причине базы • Нет бэкапа / high-available решения (почему-то) • Документация минимальна • Есть локальный гуру, который торжественно и таинственно умеет базу чинить • Для бизнеса простой становится нормой
  • 4. Внезапно гуру устал от мира и решил уйти… • система жизнеобеспечения оставшегося в наследство решения устроена крайне неочевидно • никто не имеет представления, с какой стороны можно подступиться, не поломав все напрочь • Opex занимает не менее 80% рабочего времени техотдела • масштабирование команды не приносит должного эффекта, соизмеримого с затратами • на Capex ресурсов практически не остается
  • 5. Приходит понимание, что так жить нельзя... • на данном этапе желание изменить ситуацию обычно высказывает бизнес • если бизнес не знает (или не хочет знать) состояние дел в техничке, то надежда остается на компетентного техлида или дба
  • 6. Планирование миграции • выделяемое бизнесом время на проведение работ • количество человек, которые будут заниматься миграцией • будет ли параллельно вестись разработка новой функциональности? • наличие у коллектива требуемых для осуществления миграции компетенций • оценка объема и сложности кода, который надо будет переработать и протестировать для миграции • оценка способностей предполагаемого storage, исходя из нагруженности системы (крайне актуально для “highload” проектов)
  • 7. Проработка деталей • миграция схемы и данных • переработка кода, тщательное тестирование • отработка процедуры миграции, формализация плана (важно!) • оценка количества узлов, которые будут недоступны во время миграции и связанных с этим рисков и потерь для бизнеса • обсуждение процесса миграции с нетехническим персоналом • закладывание времени, требуемого на проведение миграции • проработка плана Б • закладывание времени и трудовых ресурсов на постмиграционный период
  • 8. Что получилось в жизни • оценка сложности и выполнимости миграции много времени не составляет • переработка кода всегда займет больше времени, чем планировалось • закладываемое время можно в уме увеличивать на ⅓ • будьте готовы не взлететь с первого раза (и готовьте бизнес)
  • 9. Выбор технологии • должен основываться на объективных критериях работоспособности, а не личных желаниях и потребностях • технология должна иметь проверенную накопленную базу знаний, живое коммьюнити, учебные материалы и т.д. • должно быть наличие практического опыта эксплуатации технологии в проекте соразмерного уровня • бОльшая часть коллектива должна обладать навыками и знаниями, достаточными для освоения технологии в разумные сроки
  • 10. Как освоить технологию командой? • сильно зависит от отношений в коллективе и с техлидом • революционно-инициативная команда сама изучит • менее склонный к трудовым подвигам коллектив надо обучать
  • 11. Как организовать работу команды над миграцией? • заранее проработайте все неочевидные моменты и составьте базу знаний • четко обозначьте, “что такое хорошо, а что такое плохо” • выработанным правилам работы со старым и новым кодом должна подчиняться вся команда, без исключения • организуйте “горячую линию” связи с компетентным специалистом, владеющим технологией
  • 12. Как смигрировать данные? • схема мигрируется только вручную • чем проще, тем лучше • не изобретайте универсальных велосипедов для решения уникальной задачи • всеми силами избегайте переработки бизнес-логики (в т.ч. оптимизация, рефакторинг и прочие умные слова)
  • 13. “Best practices” по тестированию • тестирование должно быть ручным и выполняться профессиональным тестировщиком • новую функциональность надо сразу “мигрировать” и независимо проверять • компоненты с нетривиальной бизнес-логикой (биллинг, парсеры, асинхронная обработка и т.п.) надо перерабатывать в первую очередь и тестировать на протяжении длительного времени • процесс миграции данных надо тестировать как backup/recovery-решение
  • 14. Час Ч • все действующие лица должны быть выспавшиеся, бодрые, трезвые • должно быть обеспечено наличие у всех нормального интернета и резервных каналов, проведена плановая проверка рабочих станций • порядок действий от первого до последнего пункта должен быть расписан с максимальной точностью на бумаге/в документе • “штатные” внештатные ситуации тоже должны быть запланированы и расписаны • правильно составленный план позволяет “разыграть” миграцию словно по нотам
  • 15. Как удостовериться, что миграция удалась? • миграция не потребовала большого количества дополнительного времени • вам не пришлось подпирать “костылями” ключевые компоненты системы • вам не потребуется еще две недели простоя бизнеса на то, чтобы “зафиксить все баги”
  • 16. Светлое будущее: наступило или нет? l l l количество бизнес-"хотелок" после миграции удвоится до повторной миграции лучше дело (сразу) не доводить новую базу надо теперь уметь воспитывать
  • 17. Вопросы? Роман Друзягин roman.druzyagin@404-group.com Илья Космодемьянский ik@postgresql-consulting.com