В последние годы мы наблюдаем две важные тенденции в развитии IT-инфраструктуры: переход на открытое программное обеспечение и миграция в облако. Эти процессы взаимосвязаны и ускоряют друг друга. На практике эти две задачи могут быть выполнены одновременно, то есть в рамках одного миграционного проекта.
Если вы все еще используете Oracle, DB2 или SQL Server и планируете переход в облако, то должны учесть, что российские облачные провайдеры, такие как VK Cloud, Selectel, КРОК, Cloud4y и другие, не предлагают эти базы данных в виде SaaS. Поэтому при миграции в облако будет необходимо заменить их на Postgres или MySQL. Это непростая задача, но команда Конвертума имеет достаточно большой опыт успешного выполнения таких проектов. Мы хотим рассказать вам подробнее об особенностях миграции на облачную платформу с заменой Oracle на PostgreSQL.
Причины перехода в облако
Успех любого проекта невозможен без четкого понимания его причин. Что же заставляет все больше и больше компаний мигрировать на облачные платформы?
- Высокая скорость развертывания. Новые мощности и сервисы доступны в облаке постоянно. Один только этап выбора “железного” сервера может занять больше времени, чем создание готовой инфраструктуры в облаке.
- Легкое масштабирование. При использовании облака становится гораздо проще обновление и увеличение вычислительных мощностей. Особенно при динамическом или незапланированном изменении нагрузки.
- Снижение порога входа. Облако позволяет использовать и оплачивать только то, что вы действительно используете. Вычислительные мощности для проверки гипотезы или первых шагов стартапа доступны при значительно меньших бюджетах, чем при использовании только собственной IT-инфраструктуры.
- Оптимизация расходов. Наиболее заметную экономию составляют обслуживание, ремонт и обновление оборудования. Кроме того, стоит учитывать аренду помещения для ЦОДа и расходы на электроэнергию.
- Высокая отказоустойчивость. Безусловно ее можно обеспечить и при использовании локального ЦОДа, однако чем он меньше, тем выше будет удельная стоимость дублирующих систем, защиты от DDoS-атак и т.д.
- Безопасность и защита данных. Надежные облачные провайдеры могут себе позволить использовать специалистов и средства защиты высочайшего уровня. В большинстве случаев при использовании локальной инфраструктуры уязвимость данных и риски нарушения закона о персональных данных 152-ФЗ значительно выше, чем в облаке.
Миграция в облако — это важный шаг на пути к цифровой трансформации. Она необходима любой компании для успешного развития, сохранения конкурентоспособности и оптимизации бизнес-процессов.
Выбор облачного провайдера
На рынке представлено достаточно много провайдеров, наиболее популярные из них - это VK Cloud, Selectel, КРОК, Yandex Cloud, Cloud4y, Timeweb Cloud, Cloud.ru, Nubes, CloudMTS, МегаФон Облако. Облачные платформы могут казаться очень похожими, предлагая аналогичный набор сервисов и моделей облаков. Тем не менее у них есть и различия, от которых будет зависеть успешность работы вашей облачной инфраструктуры:
- Репутация и опыт компании.
- Наличие необходимых лицензий и сертификатов.
- Количество и местоположение дата-центров.
- Уровень надежности дата-центра по классификации Uptime Institute.
- Качество технической поддержки.
- Гибкая тарификация.
Проведите тщательное сравнение представленных на рынке провайдеров. Уверенность в правильном выборе придаст вам уверенности и в миграционном проекте. Кроме того, в долгосрочной перспективе надежный поставщик поможет стабильной и надежной работе вашей обновленной инфраструктуры.
Подготовка к миграции
Процесс миграции в облако необходимо начать с оценки исходной базы данных. Количество таблиц, общий объем данных, размер отдельных таблиц, количество SQL объектов, объем и сложность кода в них - это основные параметры, которые следует учитывать при подготовке миграции базы данных. Тщательный анализ вашей базы данных Oracle поможет подготовить план, выбрать необходимые инструменты, сформировать команду, определить, какая инфраструктура в облаке вам потребуется, запланировать бюджет и, наконец, согласовать сроки проекта и дату переключения на новую систему.
Опытный администратор базы данных может выполнить анализ штатными средствами или собственноручно написанными скриптами. Однако, быстрее и надежнее использовать для оценки автоматические инструменты, такие как Конвертум Сканер, который распространяется бесплатно. Гораздо эффективнее потратить время и усилия не на сбор информации, а на ее анализ.
Кроме того, при планировании нельзя недооценивать такие важные этапы, как тестирование, оптимизация, интеграция и обучение пользователей. Они помогут вам получить максимум от перехода на Postgres и облачную инфраструктуру.
Еще одним моментом, важным для миграции в облако, является скорость интернет канала для передачи данных. Для крупных и критически важных проектов миграции желательно располагать линиями от двух или более интернет-провайдеров. Вы сможете использовать их параллельно для повышения как скорости, так и надежности.
Качество подготовки к проекту напрямую влияет на итоговый успех!
Настройка облачной инфраструктуры
Для проекта по миграции Oracle, размещенной в локальном ЦОДе, в PostgreSQL, размещенную в облаке, вам необходимо определить сколько инстансов базы данных вам потребуется, а также их параметры и время, когда они будут необходимы. Отдельные экземпляры PostgreSQL в облаке могут потребоваться для таких целей, как тестирование скорости загрузки данных, перенос SQL кода, функциональное тестирование, оптимизация производительности. Параметры инстансов определяются в зависимости от специфики конкретного проекта. В этот момент проявляется одно из важных преимуществ облачных платформ: возможность легко и быстро проверить на практике различные конфигурации и выбрать наиболее подходящую из них.
Также следует уделить внимание настройке доступа к облачной инфраструктуре. Необходимо обеспечить как эффективную работу команды, выполняющей миграцию, так и надежный уровень безопасности данных.
Конвертация схемы
В большинстве проектов по миграции Oracle в PostgreSQL, которые мы выполнили, преобразование PL/SQL являлось самым трудоемким этапом. Конвертация пакетных переменных, иерархических запросов, транзакций, работы с системными объектами или пользовательскими типами данных - это далеко не полный список задач повышенной сложности. Кроме того, встроенные пакеты Oracle (DBMS_SQL, DBMS_LOB, UTILS и т.д.) содержат функционал, для большей части которого в Postgres нет прямых аналогов.
Если пакеты, хранимые процедуры, триггеры и другие SQL-объекты исходной базы данных содержат по крайней мере несколько тысяч строк, то следует использовать инструмент для автоматической конвертации. Автоматизация эффективно помогает в большинстве сфер человеческой деятельности, и конвертация кода не является исключением. Если объем SQL составляет десятки или сотни тысяч строк, то уделите выбору инструмента повышенное внимание. Выполните конвертацию небольшой части кода разными инструментами и сравните результат.
Набор инструментов Конвертум имеет бесплатный пробный период. Кроме того, с его помощью вы можете самостоятельно сформировать отчет по всем SQL-объектам вашей базы данных с детальным прогнозом уровня автоматической конвертации. Таким образом, вы легко сможете оценить, какая часть исходного кода будет преобразована инструментом.
Важным преимуществом Конвертума является возможность автоматически конвертировать PL/SQL в Java. Сейчас мы не будем подробно рассматривать особенности переноса бизнес логики на уровень приложения (это сложный вопрос, заслуживающий отдельной статьи), просто отметим, что такое решение оптимально подходит для некоторых проектов миграции Oracle в PostgreSQL.
Если у вас значительный объем бизнес-логики реализован на PL/SQL, а у команды недостаточно экспертизы в PostgreSQL, то рассмотрите вариант с покупкой профессиональных услуг по конвертации.
Перенос данных в облако
При миграции данных из Oracle в PostgreSQL наиболее распространенной проблемой является недостаточная скорость. Узким местом могут оказаться скорость интернет-канала, эффективность инструмента миграции, производительность серверов исходной и целевой баз данных. Постарайтесь обеспечить максимальные параметры оборудования и протестировать инструменты переноса данных в условиях, максимально приближенных к реальным.
В некоторых случаях объем данных не позволяет выполнить миграцию за отведенное время даже при оптимальной производительности оборудования и программного обеспечения. Если вы оказались в такой ситуации, то постарайтесь оптимизировать процесс переноса данных. Если у вас есть “холодные” данные, которые не изменяются, то их можно перенести в облако заранее. Некоторые данные можно мигрировать параллельно. Это поможет значительно сократить время остановки системы.
В наиболее проблемных случаях не обойтись без репликации. В этом случае миграция данных происходит без отключения исходной системы. При использовании репликации возрастает риск нарушения целостности данных, уделите проверке повышенное внимание.
При конвертации данных из Oracle в PostgreSQL также возникают задачи сопоставления типов, конфликтов имен таблиц или столбцов, перенос индексов и т.п. При использовании Конвертум Мастера решение этих вопросов не вызывает сложностей.
Настройка приложений
Базы данных являются лишь одной из составных частей информационно-вычислительных систем. Несмотря на унификацию интерфейсов, замена СУБД потребует изменений в других частях системы. Приложения, взаимодействующие с Oracle и содержащие встроенный SQL, необходимо доработать для совместимости с PostgreSQL. Сложность этой задачи зависит от размера приложения, количества встроенного SQL, количества динамического SQL. Поиск и конвертация запросов к базе данных потребуют от ваших специалистов повышенного уровня внимания и точности. При этом эффективность использования автоматизации обратно пропорциональна частоте использования динамического формирования запросов.
Если вы используете файлы shell и SQL скриптов, то их конвертация выполняется аналогично.
Если ваши приложения плохо документированы, имеют запутанную структуру и высокий технический долг, то все это не только усложняет обслуживание и развитие, но и может вызвать дополнительные проблемы при замене базы данных. В таком случае имеет смысл выполнить рефакторинг приложений.
Тестирование
При миграции баз данных тестирование также необходимо, как и при внедрении новой, разработанной с нуля. Необходимо проверить целостность и корректность перенесенных данных, быстродействие и стабильность базы данных под рабочей нагрузкой, корректную работу бизнес-логики. Использование тест кейсов исходной базы данных поможет сократить трудоемкость этапа тестирования. Рассмотрите возможность тестовой эксплуатации, то есть использования старой и новой баз данных одновременно - это значительно снизит вероятность пропустить критическую ошибку. Сама по себе возможность сравнивать результаты работы двух баз данных делает тестирование после миграции более простым и надежным.
Оптимизация производительности
При миграции в облако возникает соблазн обеспечить необходимую производительность базы данных, просто накрутив параметры сервера. Это нормальный подход, когда локальную систему длительное время использовали и оптимизировали, а затем переносят в облако без изменений. Однако, при миграции Oracle в PostgreSQL оптимизация производительности - обязательный этап. Во время конвертации невозможно учесть все особенности исходной и целевой баз данных, предсказать какие конструкции в коде будут работать оптимально, а какие вызовут проблемы. Нагрузочное тестирование поможет выявить узкие места. Для устранения проблем с производительностью может потребоваться переписать медленный код, оптимизировать настройки индексов, изменить некоторые типы данных, выбрать оптимальные для вашего случая настройки базы данных и сервера.
Заключение
Миграция базы данных Oracle на PostgreSQL с переходом в облако - это комплексный проект, который может включать в себя не просто перенос данных и переподключение приложений, но и рефакторинг, оптимизацию, перенос бизнес логики из базы данных в приложение. Однако все это не проблемы, а всего лишь задачи, которые несомненно могут и должны быть решены. В награду за потраченные усилия вы получите современную, гибкую, безопасную и устойчивую в долгосрочной перспективе информационно-вычислительную систему.