От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Миграция данных - не все так просто
1. Миграция данных –
не все так просто
Санкт – Петербург
2016
Автор: Олег Воронов
ВТБ Банк (ПАО)
2. 1. Определение и типы миграции
Миграция данных - процесс передачи данных между типами хранения,
форматами или компьютерными системами (ИС).
1. Физическая миграция 2. Смена платформы 3. Прикладная миграция
1/11
5. 4. Опасность прикладной миграции
Clients
Сергеенко Иван Федорович
И.А. Семенова
Левченко Петр Ильич
Агеев Иван
Ирина Леонова
И. Яремов
Ефремов
Жданов Георгий
Корнеев Сергей Петрович
…
Александрова Ася
4/11
6. 5. Особенности прикладной миграции
1. «Незаметность» – задаче не уделяется достаточного внимания
2. «Разовость» – функционал разрабатывается для однократного
применения
3. «Двойственность» – необходимо анализировать 2 системы
4. «Ограниченность времени выполнения» – выполняется в
жестко лимитированное время «простоя» системы
5/11
7. 6. «Незаметность»
«Незаметность»
Незапланированный рост
объема работ
Переработка уже разработанного
функционала
Возможные решения:
1. «Проактивность» - самостоятельная инициация задачи
2. Изменение последовательности работ – приступите к миграции параллельно с
основными стадиями проекта
6/11
8. 7. «Разовость»
«Разовость» Выбор неоптимальной
реализации
Возможные решения:
1. «Аллокация на другие задачи» - выполнение работ миграции в рамках основных
задач проект
2. «Проактивность» - самостоятельно выясните, есть ли схожие операционные
задачи и в случае наличия таких задач - включите их в проект
Ограниченность
ресурсов
Возможность
трансформации
7/11
9. 8. «Двойственность»
«Двойственность»
Возможные решения:
1. «Эмуляция данных» - договоритесь с заказчиком о правилах наполнения
недостающих данных, значениях по умолчанию и т.д.
2. «Ручной ввод» – некоторые данные проще заполнить «руками»
3. «Словарь проекта» - составьте словарь проекта, с толкованием всех названий и
выражений, используемых участниками проекта
Отсутствие обязательных
данных
Неверное толкование
терминов
Неформализованность
исходных данных
8/11
10. 9. «Ограниченность времени выполнения»
«Время выполнения»
Возможные решения:
1. «Декомпозиция работ» - определите и выполните заранее предварительные этапы
2. «Шаблоны» - используйте шаблоны данных, с максимальным количеством проверок и
ограничений на этапе заполнения
3. «Методика миграции» - подготовьте подробную инструкцию с перечнем
переносимых объектов, правилами трансформации и последовательностью
шагов т.д.
Отсутствие времени на верификацию
исходных данных и результата
Отсутствие времени на принятие
решений
9/11
11. 10. Методика миграции
10/11
Методика миграции
1. Глоссарий
2. Переносимые объекты
3. Алгоритмы трансформации
4. Технологии
5. Этапы и ответственные
12. 11. «Заключение»
Успешная миграция
Время
План действий
Проактивность
1. Не откладывайте анализ по миграции данных на конец проекта
2. Обсудите с заказчиком и архитектором возможности поэтапной миграции данных
3. Отнеситесь к функционалу миграции как к полноценному функционалу системы
4. Четко опишите все объекты, алгоритмы и шаги миграции и заранее решите все
организационные вопросы
11/11
Добрый день коллеги!
Меня зовут Олег Воронов и я занимаюсь автоматизации кредитных процессов в ВТБ Банке.
В своей работе я, как и вы, сталкиваюсь с различными типами задач на проектах, связанных с автоматизацией и разработкой программного обеспечения. Мы разрабатываем алгоритмы, проектируем интерфейсы и сценарии использования. В общем, делаем все возможное, чтобы все наши контрагенты были довольны. Так получилось, что последнее время, я очень много времени уделял одному типу задачи – Миграции данных и сегодня, я бы хотел поделиться с вами своим опытом.
Множество задач миграции данных условно можно разделить на три типа:
Физическая миграция (смена серверов, переезд между офисами, переход в облако)
Смена платформы (с MySql на Oracle)
Прикладная миграция (C 1C на SAP)
В первых двух типах миграции аналитики либо вовсе не принимают участия, и все работы выполняются администраторами и службами поддержки (в случае с физической миграцией), либо их участие минимально (как в случаях смены платформы).
Основная нагрузка на аналитика возникает при прикладной миграции, когда от действий аналитика зависит успех всего проекта. Поэтому здесь и далее под Миграцией данных мы будем понимать именно прикладную миграцию.
Задача прикладной миграции часто встречается в следующих типах проектов:
Первичное наполнение новой ИС данными из внешних несистематизированных источников (таблицы, текстовые документы, архивы изображений и т.д.). Пользователи не готовы отказаться от накопленных данных.
Изменение схемы хранения и логики обработки данных внутри одной ИС для обеспечения новой функциональности.
Переход на новую схему хранения и логику обработки данных для поддержки новой схемы автоматизации бизнес-процесса.
Прикладная миграция может быть как простой (простой прямой перенос ФИО) Самое страшное что может случится, так это не совпадет размерность полей. Так и сложной, когда один объект исходной системы, порождает множество объектов в конечной системе, запускает Бизнес-процессы и т.д. Но основная опасность прикладной миграции состоит в том:
Что даже простой перенос ФИО клиента, может таить в себе большие проблемы. Например, что делать если в исходной системе ФИО хранится в одном поле, а в конечной – трех? Особенно если в исходной системе примерно такие данные. Пример с Алексеевич Илья Иванов.
Подобные неожиданности связаны с особенностями задачи миграции:
«Незаметность» - задаче не уделяется достаточного внимания (почему это происходит?) Нет явных заинтересованных лиц. Заказчик считает задачу разумеющейся. Исполнитель считает, что нужно сначала разобраться с самой системой, а уже потом, наполнять ее данными.
«Разовость» – функционал разрабатывается для однократного применения (описать, что имеется ввиду)
«Двойственность» – необходимо анализировать 2 системы (рассказать подробней).
«Ограниченность времени выполнения». Это присуще миграции данных в уже запущенные системы.
Причины:
Заказчик считает задачу разумеющейся.
Аналитики считают, что нужно сначала доделать систему, а уже потом решать, как переносить в нее данные.
Последствия:
Незапланированный рост объема работ
Переработка уже разработанного функционала
Решение:
Проактивность
Приступать к «миграции» как можно раньше.
Причины:
1. Задача выполняется только один раз, перед запуском проекта
Последствия:
Ограниченность ресурсов
Выбор неоптимальной реализации
Возможность трансформации
Решение:
Аллокация на другие задачи проекта
Проактивность – выясните самостоятельно, есть ли схожие операционные задачи и включите их в проект
В задачу включены сразу несколько систем
Последствия:
Отсутствие обязательных данных (В исходной системе они были не нужны, так как система была простая)
Неформализованность исходных данных (ФИО в одной строке. Не разбитый адрес и т.д.)
Неверное толкование терминов. (Что такое клиент? Что такое залог?)
Решение:
Эмуляция данных
Ручной ввод – иногда дешевле ввести руками, чем придумывать сложные алгоритмы. Привлечение заказчика и «перенос» ответственности за результат.
Словарь проекта.
Данная особенность присуща не всем задачам миграция.
Причины:
1. Возможность выполнения во время простоя
Проблемы:
Отсутствие времени на верификацию данных и проверку полученного результата
Отсутствие времени на принятие решений в случае возникновения проблем
Решение:
Декомпозиция работ – по возможности разбейте задачу на этапы, выделите этапы, которые можно выполнить заранее.
Шаблоны – используйте шаблоны файлов данных, с макс. количеством проверок и ограничений при заполнении. Лучше получить проблему при заполнении данных, чем во время обработки.
Методика миграции – создайте документ с подробным описанием: переносимых объектов, правил трансформации, последовательностью шагов и ответственными
В нашей компании методика миграции содержит в себе следующие разделы:
Глоссарий – выполняющий роль словаря проекта, с описанием терминов, принятых в проекте.
Перечень переносимых объектов, с описанием их исходного положения в системе источнике и конечной системе
Алгоритмы трансформации объектов при миграции
Описание технологий реализации, используемых при миграции
Этапы миграции с указанием последовательности и ответственных
То есть, методика миграции отвечает на Вопросы, Что мы переносим? Как мы это переносим? С помощью чего мы это переносим? Кто и в какой последовательности это переносит?
Как видите, зачастую незаметная задача, которую часто, ошибочно включают в самый конец проекта и к которой приступают уже после завершения основных работ, очень легко может стать причиной провала всего проекта. Особенности этой задачи таковы, что делают задачу источником требований к проекту и поэтому очень важно приступить к миграции на этапе проектирования, когда выявляются основные требования к будущей системе.
Для успешной миграции нужны следующие компоненты
Что бы избежать основных проблем, связанных с миграцией можно попробовать сформулировать следующие действия:
Что бы избежать основных проблем, связанных с миграцией можно попробовать сформулировать следующие действия:
1. Включите работы по миграции данных в scope работ по проекту
2. Не откладывайте анализ по миграции данных на конец проекта
3. Обсудите с заказчиком и архитектором возможности поэтапной миграции данных
4. Отнеситесь к функционалу миграции как к полноценному функционалу системы. Это позволит вам использовать его в дальнейшем при необходимости. (Полноценное тестирование, пользовательский интерфейс, логирование, процедуры откаты при ошибке и т.д.)
5. Четко опишите все алгоритмы и действия, составьте план миграции и заранее решите все организационные вопросы. Это позволит вам избежать неразберихи в самый ответственный момент.
Ваши вопросы?
Коллеги, всем огромное спасибо за внимание. Надеюсь, вам было интересно. Со мной можно связаться по указанным контактам