Migracja aplikacji

Ukończone

Po przeprowadzeniu migracji bazy danych ze środowiska lokalnego na platformę Azure należy zaktualizować istniejące aplikacje, aby mogły uzyskiwać dostęp do bazy danych MySQL w nowej lokalizacji.

Oryginalny serwer lokalny i baza danych będą zawierać role, które definiują uprawnienia skojarzone z użytkownikami, operacje, które mogą wykonać, oraz obiekty, nad którymi wykonują te operacje. Usługa Azure Database for MySQL używa tych samych mechanizmów uwierzytelniania i autoryzacji, co usługa PostgreSQL działająca lokalnie.

W tej lekcji zapoznasz się z aktualizacjami, które należy wprowadzić w aplikacjach, aby nawiązać połączenie z nowo zmigrowanym rozwiązaniem Azure Database for MySQL.

Ręczne tworzenie użytkowników

Oryginalny serwer lokalny i baza danych będą zawierać użytkowników, wykonywane operacje i obiekty, w których wykonują te operacje. Usługa Azure Database for MySQL używa tych samych mechanizmów uwierzytelniania i autoryzacji co program MySQL działający lokalnie.

Podczas transferu bazy danych MySQL do usługi Azure Database for MySQL przy użyciu usługi Azure Database Migration Service użytkownicy nie są kopiowane. Należy ręcznie utworzyć ponownie niezbędne konta użytkowników dla administratorów i użytkowników tabel w docelowej bazie danych. Aby wykonać te zadania, należy użyć języka SQL lub narzędzia, takiego jak MySQL Workbench. Uruchom polecenie CREATE USER. Polecenie służy GRANT do przypisywania niezbędnych uprawnień użytkownikowi. Na przykład:

CREATE USER 'myuseraccount'@'%' IDENTIFIED BY 'mY!P@ss0rd';
GRANT ALL PRIVILEGES ON DATABASE [Database Name].* TO myuseraccount;
FLUSH PRIVILEGES;

Aby wyświetlić istniejące dotacje w lokalnej bazie danych, uruchom następującą instrukcję SQL:

USE [Database Name];

SHOW GRANTS FOR 'myuseraccount'@'%';;

Ponowne konfigurowanie aplikacji

Ponowne skonfigurowanie aplikacji w celu nawiązania połączenia z usługą Azure Database for MySQL jest prostym procesem. Jednak ważne jest, aby opracować strategię migracji aplikacji.

Zagadnienia dotyczące ponownego konfigurowania aplikacji MySQL

W środowisku firmowym może istnieć wiele aplikacji działających w tych samych bazach danych MySQL. Może istnieć duża liczba użytkowników, którzy uruchamiają te aplikacje. Chcesz mieć pewność, że po przejściu z istniejącego systemu do usługi Azure Database for MySQL systemy będą nadal działać, użytkownicy mogą nadal wykonywać swoje zadania, a operacje krytyczne dla działania firmy pozostaną operacyjne. Moduł 1, lekcja 2, zagadnienia dotyczące migracji, omówił wiele ogólnych problemów.

Podczas migracji bazy danych MySQL na platformę Azure należy wziąć pod uwagę pewne kwestie:

  • Jeśli przeprowadzasz migrację w trybie offline, dane w oryginalnej bazie danych MySQL i nowe bazy danych uruchomione na platformie Azure mogą zacząć się szybko rozróżnić, jeśli stara baza danych jest nadal używana. Migracja w trybie offline jest odpowiednia w przypadku całkowitego wyłączenia systemu przez krótki czas, a następnie przełączenia wszystkich aplikacji do nowego systemu przed ponownym uruchomieniem. Takie podejście może nie być możliwe w przypadku systemu krytycznego dla działania firmy. Jeśli przeprowadzasz migrację do programu MySQL uruchomionego na maszynie wirtualnej platformy Azure, możesz skonfigurować replikację programu MySQL między systemem lokalnym i uruchomionym na platformie Azure. Natywna replikacja MySQL działa tylko w jednym kierunku, ale dostępne są rozwiązania innych firm, które obsługują replikację dwukierunkową między serwerami MySQL. Te rozwiązania nie będą działać z usługą Azure Database for MySQL.
  • Jeśli przeprowadzasz migrację w trybie online, usługa Azure Database for MySQL konfiguruje replikację z lokalnej bazy danych do bazy danych uruchomionej na platformie Azure. Po początkowym transferze danych replikacja gwarantuje, że wszelkie zmiany wprowadzone w lokalnej bazie danych zostaną skopiowane do bazy danych na platformie Azure, ale nie w drugą stronę.

W obu przypadkach należy upewnić się, że nie utracisz danych na żywo za pośrednictwem przypadkowego zastąpienia. Na przykład w scenariuszu online aplikacja połączona z bazą danych uruchomioną w usłudze Azure Database for MySQL może mieć zmiany w sposób ślepy nadpisane przez aplikację nadal korzystającą z lokalnej bazy danych. W związku z tym należy wziąć pod uwagę następujące podejścia:

  • Migrowanie aplikacji na podstawie typu obciążenia. Aplikacja, która uzyskuje dostęp do danych tylko do odczytu, może bezpiecznie przenieść się do bazy danych uruchomionej w usłudze Azure Database for MySQL i zobaczy wszystkie zmiany wprowadzone przez aplikacje nadal korzystające z lokalnej bazy danych. Możesz również przyjąć strategię odwrotną, jeśli aplikacje tylko do odczytu nie wymagają w pełni danych.
  • Migrowanie użytkowników na podstawie typu obciążenia. Ta strategia jest podobna do poprzedniej, z tą różnicą, że użytkownicy mogą generować raporty tylko wtedy, gdy inni modyfikują dane. Tę samą aplikację można skonfigurować tak, aby łączyła się z odpowiednią bazą danych zgodnie z wymaganiami użytkownika.
  • Migrowanie aplikacji na podstawie używanych zestawów danych. Jeśli różne aplikacje używają różnych podzestawów danych, możesz migrować te aplikacje niezależnie od siebie.

Ponowne konfigurowanie aplikacji

Aby ponownie skonfigurować aplikację, należy wskazać ją w nowej bazie danych. Większość dobrze napisanych aplikacji powinna odizolować logikę połączenia — powinna to być jedyna część kodu, która wymaga zmiany. W wielu przypadkach informacje o połączeniu mogą być przechowywane jako informacje o konfiguracji, więc wystarczy zaktualizować te informacje.

Informacje o połączeniu usługi Azure Database for MySQL znajdziesz w witrynie Azure Portal na stronie ciągów Połączenie ion dla usługi Azure Database for MySQL. Platforma Azure udostępnia informacje dotyczące wielu typowych języków programowania i struktur.

Image showing the Connection strings page for Azure Database for MySQL item in the Azure portal

Otwieranie portów sieciowych

Jak wspomniano w lekcji 1 tego modułu, usługa Azure Database for MySQL to chroniona usługa, która działa za zaporą. Klienci nie mogą nawiązać połączenia, chyba że ich adres IP zostanie rozpoznany przez usługę. Należy dodać adresy IP lub zakresy bloków adresów dla klientów z uruchomionymi aplikacjami, które muszą łączyć się z bazami danych.

Testowanie i weryfikowanie aplikacji

Zanim przełączysz aplikacje i użytkowników do nowej bazy danych, ważne jest, aby upewnić się, że wszystko zostało poprawnie skonfigurowane.

Zacznij od "wyschnięcia" aplikacji i połącz się jako każda rola, aby upewnić się, że dostępna jest poprawna funkcjonalność.

Następnie wykonaj "testy moczenia", aby naśladować liczbę użytkowników uruchomionych typowo obciążeń jednocześnie przez pewien okres czasu. Monitoruj system i sprawdź, czy przydzielono wystarczające zasoby do usługi Azure Database for MySQL.

Teraz możesz rozpocząć wdrażanie systemu dla użytkowników. Korzystne może być zaimplementowanie jakiejś formy "testowania kanarowego", w której mały podzbiór użytkowników jest przenoszony do systemu nieświadomego. Daje to niezachętną opinię co do tego, czy użytkownicy mają takie same, lepsze, czy gorsze doświadczenie z nową bazą danych.