Migrace aplikací

Dokončeno

Po migraci databáze z místního prostředí do Azure je potřeba aktualizovat stávající aplikace tak, aby mohly přistupovat k PostgreSQL v novém umístění.

Původní místní server a databáze budou obsahovat role, které definují oprávnění přidružená k uživatelům, operace, které můžou provádět, a objekty, které tyto operace provádějí. Azure Database for PostgreSQL používá stejné mechanismy ověřování a autorizace jako PostgreSQL spuštěné místně.

V této lekci prozkoumáte aktualizace, které je potřeba provést v aplikacích pro připojení k nově migrované službě Azure Database for PostgreSQL.

Ruční vytvoření uživatelských rolí

Při přenosu databáze PostgreSQL do služby Azure Database for PostgreSQL pomocí služby Azure Database Migration Service se role a přiřazení rolí nekopírují. Musíte ručně znovu vytvořit potřebné role a uživatelské účty pro správce a uživatele tabulek v cílové databázi. K těmto úlohám použijete nástroje psql nebo pg Správa. Spusťte příkaz CREATE ROLE. Pomocí GRANT příkazu přiřadíte k roli potřebná oprávnění. Příklad:

CREATE ROLE myuseraccount WITH LOGIN NOSUPERUSER CREATEDB PASSWORD 'mY!P@ss0rd';
GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuseraccount;

Poznámka:

K vytvoření rolí PostgreSQL také použijete createuser příkaz z příkazového řádku Bash.

Pokud chcete zobrazit existující role v místní databázi, spusťte následující příkaz SQL:

SELECT rolname
FROM pg_roles;

Pomocí příkazu \du v nástroji psql můžete zobrazit oprávnění přiřazená k rolím.

                              List of roles
   Role name   |               Attributes                                   | Member of
---------------+------------------------------------------------------------+-----------
 azureuser     | Superuser, Create DB                                       | {}
 myuseraccount | Create DB                                                  | {}
 postgres      | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

Poznámka:

Všimněte si, že Azure Database for PostgreSQL přidává některé vlastní role. Mezi tyto role patří azure_pg_admina azure_superuseruživatel správce, který jste zadali při vytváření služby. Přihlašujete se pomocí svých účtů pro správu, ale ostatní dvě role jsou vyhrazené pro použití v Azure – neměli byste se je pokoušet používat.

Změna konfigurace aplikací

Změna konfigurace aplikace pro připojení ke službě Azure Database for PostgreSQL je jednoduchý proces. Je ale důležitější určit strategii pro aplikace migrace.

Důležité informace o změně konfigurace aplikací PostgreSQL

V podnikovém prostředí můžete mít mnoho aplikací spuštěných ve stejných databázích PostgreSQL. Na těchto aplikacích může běžet velký počet uživatelů. Chcete mít jistotu, že když přepnete ze stávajícího systému na Azure Database for PostgreSQL, budou vaše systémy fungovat, uživatelé můžou pokračovat v práci a důležité obchodní operace zůstanou funkční. Modul 1, lekce 2, Důležité informace o migraci, probíraly mnoho obecných problémů. Při migraci databáze PostgreSQL do Azure je potřeba si uvědomit některé konkrétní informace:

  • Pokud provádíte offline migraci, můžou se data v původní databázi PostgreSQL a nové databáze spuštěné v Azure rychle lišit, pokud se stará databáze stále používá. Offline migrace je vhodná, když po krátkou dobu vyberete systém mimo provoz a pak před opětovným spuštěním přepnete všechny aplikace do nového systému. Tento přístup nemusí být pro systém kritický pro chod firmy možný. Pokud migrujete na PostgreSQL běžící na virtuálním počítači Azure, nakonfigurujete replikaci PostgreSQL mezi místním systémem a provozem v Azure. Nativní replikace PostgreSQL funguje pouze v jednom směru, ale k dispozici jsou řešení třetích stran, která podporují obousměrnou replikaci mezi servery PostgreSQL (tato řešení nebudou fungovat se službou Azure Database for PostgreSQL).
  • Pokud provádíte online migraci, služba Azure Database for PostgreSQL nastaví replikaci z místní databáze do databáze spuštěné v Azure. Po počátečním přenosu dat replikace zajistí, že se všechny změny provedené v místní databázi zkopírují do databáze v Azure, ale ne naopak.

V oboupřípadechch Například v online scénáři by aplikace připojená k databázi spuštěné ve službě Azure Database for PostgreSQL mohla mít své změny slepě přepsány aplikací, která stále používá místní databázi. S ohledem na to byste měli zvážit následující přístupy:

  • Migrujte aplikace na základě jejich typu úlohy. Aplikace, která přistupuje k datům jen pro čtení, se může bezpečně přesunout do databáze spuštěné ve službě Azure Database for PostgreSQL a uvidí všechny změny provedené aplikacemi, které stále používají místní databázi. Pokud aplikace jen pro čtení nevyžadují plně aktuální data, můžete také přijmout strategii naopak.
  • Migrujte uživatele na základě typu úlohy. Tato strategie se podobá předchozí strategii s tím rozdílem, že můžete mít uživatele, kteří generují pouze sestavy, zatímco ostatní data upravují. Můžete mít stejnou aplikaci nakonfigurovanou tak, aby se mohla připojit k příslušné databázi podle požadavků uživatele.
  • Migrujte aplikace na základě datových sad, které používají. Pokud různé aplikace využívají různé podmnožina dat, můžete tyto aplikace migrovat nezávisle na sobě.

Změna konfigurace aplikace

Pokud chcete aplikaci překonfigurovat, nasměrujte ji na novou databázi. Většina dobře napsaných aplikací izoluje logiku připojení a to by měla být jediná část kódu, která vyžaduje změnu. V mnoha případech se informace o připojení můžou ukládat jako informace o konfiguraci – stačí je aktualizovat.

Informace o připojení pro službu Azure Database for PostgreSQL najdete na webu Azure Portal na stránce s řetězci Připojení pro vaši službu. Azure poskytuje informace pro mnoho běžných programovacích jazyků a architektur.

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

Otevření síťových portů

Jak je uvedeno v lekci 1 tohoto modulu, Azure Database for PostgreSQL je chráněná služba, která běží za bránou firewall. Klienti se nemůžou připojit, pokud služba nerozpozná svoji IP adresu. Pro klienty, kteří používají aplikace, které potřebují připojit k databázím, musíte přidat IP adresy nebo rozsahy bloků adres.

Testování a ověřování aplikací

Než přepnete aplikace a uživatele do nové databáze, je důležité zajistit, abyste všechno správně nakonfigurovali.

Začněte "suchým spuštěním" aplikací a připojte každou roli, abyste měli jistotu, že jsou k dispozici správné funkce.

Dále proveďte "namočené testy", které napodobují typický počet uživatelů, kteří souběžně provozují reprezentativní úlohy po určitou dobu. Monitorujte systém a ověřte, že jste službě Azure Database for PostgreSQL přidělili dostatek prostředků.

V tomto okamžiku můžete začít zavádět systém pro uživatele. Může být užitečné implementovat nějakou formu "kanárkového testování", kde se do systému nepřenese malá podmnožina uživatelů. To vám dává nestranný názor na to, jestli mají uživatelé stejné, lepší nebo horší zkušenosti s novou databází.