Перенос приложений
После переноса базы данных из локальной среды в Azure необходимо обновить существующие приложения, чтобы они могли получать доступ к MySQL в новом расположении.
На исходном локальном сервере и в базе данных имеются роли, определяющие привилегии, связанные с пользователями, операциями, которые они могут выполнять, и объектами, в отношении которых они выполняют эти операции. В службе базы данных Azure для MySQL используются те же механизмы проверки подлинности и авторизации, что и в локальной базе данных PostgreSQL.
В этом уроке вы ознакомитесь с обновлениями, которые необходимо внести в приложения для подключения к новой перенесенной службе базы данных Azure для MySQL.
Создание пользователей вручную
На исходном локальном сервере и в базе данных имеются пользователи, выполняемые ими операции и объекты, в отношении которых они выполняют эти операции. В службе базы данных Azure для MySQL используются те же механизмы проверки подлинности и авторизации, что и в локальной базе данных MySQL.
При переносе базы данных MySQL в службу базы данных Azure для MySQL с помощью службы Azure Database Migration Service копирование пользователей не выполняется. Нужно вручную повторно создать необходимые учетные записи пользователей для администратора и пользователей таблиц в целевой базе данных. Для выполнения этих задач используется язык SQL или служебная программа, например MySQL Workbench. Выполните команду CREATE USER
. Команда GRANT
используется для назначения необходимых привилегий пользователю. Например:
CREATE USER 'myuseraccount'@'%' IDENTIFIED BY 'mY!P@ss0rd';
GRANT ALL PRIVILEGES ON DATABASE [Database Name].* TO myuseraccount;
FLUSH PRIVILEGES;
Чтобы просмотреть существующие привилегии в локальной базе данных, выполните следующую инструкцию SQL:
USE [Database Name];
SHOW GRANTS FOR 'myuseraccount'@'%';;
Перенастройка приложений
Перенастройка приложения для подключения к службе базы данных Azure для MySQL выполняется очень просто. Однако крайне важно разработать оптимальную стратегию для переноса приложений.
Рекомендации по перенастройке приложений MySQL
В корпоративной среде может быть несколько приложений, обращающихся к одной и той же базе данных MySQL. С этими приложениями может работать большое количество пользователей. Вы должны быть уверены в том, что при переходе с существующей системы на службу базы данных Azure для MySQL ваши системы будут также функционировать, пользователи смогут выполнять поставленные задачи и критически важные для бизнеса операции останутся в работоспособном состоянии. Многие вопросы в общих чертах рассматривались в модуле 1, занятии 2 Замечания по миграции.
При переносе базы данных MySQL в Azure необходимо учитывать некоторые особенности.
- При выполнении автономной миграции данные в исходной базе данных MySQL и новых базах данных, запущенных в Azure, могут быстро начать отличаться, если по прежнему будет использоваться старая база данных. Автономная миграция оптимальна в случаях кратковременной полной остановки системы и последующего перевода всех приложений на новую систему до перезапуска прежней системы. Этот подход может быть неуместен в отношении критически важной для бизнеса системы. При переходе на базу данных MySQL, запущенную на виртуальной машине Azure, необходимо настроить репликацию MySQL между локальной системой и системой в Azure. Собственная репликация MySQL работает только в одном направлении, но существуют сторонние решения, которые поддерживают двунаправленную репликацию между серверами MySQL. Эти решения не работают со службой базы данных Azure для MySQL.
- При выполнении миграции по сети служба базы данных Azure для MySQL настраивает репликацию из локальной базы данных в базу данных, работающую в Azure. После первоначальной передачи данных репликация гарантирует, что любые изменения, внесенные в локальную базу данных, будут копироваться в базу данных в Azure, но не наоборот.
В обоих случаях вы должны быть уверены, что не потеряете актуальные данные из-за случайной перезаписи. Например, при миграции по сети данные приложения, которое подключено к базе данных, работающей на основе службы базы данных Azure для MySQL, могут быть просто перезаписаны приложением, все еще использующим локальную базу данных. Поэтому следует обратить внимание на приведенные далее подходы.
- Миграция приложений на основе типа их рабочей нагрузки. Приложение, которое обращается к данным только для чтения, можно безопасно перенести в базу данных, работающую на основе службы базы данных Azure для MySQL. Этому приложению будут доступны все изменения, внесенные приложениями, все еще использующими локальную базу данных. Можно также реализовать обратную стратегию, когда доступным только для чтения приложениям не требуются самые актуальные данные.
- Миграция пользователей на основе типа их рабочей нагрузки. Эта стратегия аналогична предыдущей, за исключением того, что могут быть пользователи, которые только создают отчеты, в то время как другие изменяют данные. Одно и то же приложение может быть настроено для подключения к необходимой базе данных в соответствии с требованиями пользователей.
- Миграция приложений на основе используемых ими наборов данных. Если разные приложения используют разные подмножества данных, их можно переносить независимо друг от друга.
Перенастройка приложения
Чтобы перенастроить приложение, для него нужно указать новую базу данных. В большинстве правильно разработанных приложений логические функции подключения изолированы. Это должна быть единственная часть кода, требующая изменения. Во многих случаях информация о подключениях может храниться в виде конфигурационной информации, поэтому нужно обновлять только эту информацию.
Сведения о подключении для службы базы данных Azure для MySQL можно найти на портале Azure на странице Строки подключения соответствующей службы базы данных Azure для MySQL. Azure может предоставлять сведения для множества самых распространенных языков программирования и платформ.
Открытие сетевых портов
Как отмечалось на занятии 1 этого модуля, служба базы данных Azure для MySQL — это защищенная служба, работающая под защитой брандмауэра. Клиенты не смогут подключиться, пока служба не определит их IP-адрес. Необходимо добавить IP-адреса или диапазоны блоков адресов для клиентов, работающих с приложениями, которым требуется подключение к базам данных.
Тестирование и проверка приложений
Перед переключением приложений и пользователей на новую базу данных важно убедиться, что все настроено правильно.
Начните с работы приложений без нагрузки и подключайтесь с привилегиями каждой роли, чтобы убедиться в доступности соответствующих функций.
Затем выполните тесты на стабильность, чтобы имитировать необходимое количество пользователей, одновременно создающих типичную рабочую нагрузку в течение определенного периода времени. Наблюдайте за системой и убедитесь, что службе базы данных Azure для MySQL выделен достаточный объем ресурсов.
Теперь можно начать развертывание системы для пользователей. Может быть целесообразным реализовать некую форму начального тестирования, когда в систему незаметно вводится несколько пользователей. Это позволит сделать беспристрастное заключение о качестве работы с новой базой данных: то же самое, лучше или хуже.