Toepassingsmigratie

Voltooid

Zodra u uw database hebt gemigreerd van on-premises naar Azure, moet u uw bestaande toepassingen bijwerken zodat ze toegang hebben tot PostgreSQL op de nieuwe locatie.

De oorspronkelijke on-premises server en database bevatten rollen die de bevoegdheden definiëren die zijn gekoppeld aan gebruikers, de bewerkingen die ze kunnen uitvoeren en de objecten waarvoor ze deze bewerkingen uitvoeren. Azure Database for PostgreSQL maakt gebruik van dezelfde verificatie- en autorisatiemechanismen als PostgreSQL die on-premises wordt uitgevoerd.

In deze les verkent u de updates die u nodig hebt voor uw toepassingen om verbinding te maken met uw zojuist gemigreerde Azure Database for PostgreSQL.

De gebruikersrollen handmatig maken

Wanneer u een PostgreSQL-database overdraagt naar Azure Database for PostgreSQL met behulp van de Azure Database Migration Service, worden de rollen en roltoewijzingen niet gekopieerd. U moet handmatig de benodigde rollen en gebruikersaccounts opnieuw maken voor de beheerder en gebruikers van de tabellen in de doeldatabase. U gebruikt de hulpprogramma's psql of pg Beheer om deze taken uit te voeren. Voer de opdracht CREATE ROLE uit. U gebruikt de GRANT opdracht om de benodigde bevoegdheden toe te wijzen aan een rol. Bijvoorbeeld:

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

Notitie

U gebruikt ook de createuser opdracht van de bash-prompt om PostgreSQL-rollen te maken.

Voer de volgende SQL-instructie uit om de bestaande rollen in de on-premises database weer te geven:

SELECT rolname
FROM pg_roles;

U kunt de opdracht \du in het psql-hulpprogramma gebruiken om de bevoegdheden weer te geven die aan rollen zijn toegewezen.

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

Notitie

Houd er rekening mee dat Azure Database for PostgreSQL een aantal eigen rollen toevoegt. Deze rollen omvatten azure_pg_admin, azure_superuseren de beheerder die u hebt opgegeven toen u de service maakte. U meldt zich aan met uw beheerdersaccounts, maar de andere twee rollen zijn gereserveerd voor gebruik door Azure. U moet ze niet gebruiken.

Toepassingen opnieuw configureren

Het opnieuw configureren van een toepassing om verbinding te maken met Azure Database for PostgreSQL is een eenvoudig proces. Het is echter belangrijker om een strategie voor migratietoepassingen te bepalen.

Overwegingen bij het opnieuw configureren van PostgreSQL-toepassingen

In een bedrijfsomgeving hebt u mogelijk veel toepassingen die worden uitgevoerd op dezelfde PostgreSQL-databases. Er kan een groot aantal gebruikers zijn die deze toepassingen uitvoeren. U wilt er zeker van zijn dat wanneer u overstapt van het bestaande systeem naar Azure Database for PostgreSQL, uw systemen nog steeds werken, gebruikers hun taken kunnen blijven uitvoeren en uw bedrijfskritieke bewerkingen operationeel blijven. Module 1, Les 2, Overwegingen voor migratie, besproken veel van de problemen in algemene termen. Wanneer u een PostgreSQL-database naar Azure migreert, zijn er enkele specifieke informatie:

  • Als u een offlinemigratie uitvoert, kunnen de gegevens in de oorspronkelijke PostgreSQL-database en de nieuwe databases die in Azure worden uitgevoerd, snel afwijken als de oude database nog steeds wordt gebruikt. Een offlinemigratie is geschikt wanneer u een systeem even helemaal uit bedrijf neemt en vervolgens alle toepassingen overschakelt naar het nieuwe systeem voordat u opnieuw begint. Deze benadering is mogelijk niet mogelijk voor een bedrijfskritiek systeem. Als u migreert naar PostgreSQL die wordt uitgevoerd op een virtuele Azure-machine, configureert u PostgreSQL-replicatie tussen uw on-premises systeem en die wordt uitgevoerd in Azure. Systeemeigen PostgreSQL-replicatie werkt alleen in één richting, maar oplossingen van derden zijn beschikbaar die bidirectionele replicatie tussen PostgreSQL-servers ondersteunen (deze oplossingen werken niet met Azure Database for PostgreSQL).
  • Als u een onlinemigratie uitvoert, stelt de Azure Database for PostgreSQL-service replicatie in van de on-premises database naar de database die wordt uitgevoerd in Azure. Na de initiële gegevensoverdracht zorgt replicatie ervoor dat eventuele wijzigingen in de on-premises database worden gekopieerd naar de database in Azure, maar niet andersom.

In beide gevallen moet u ervoor zorgen dat u geen livegegevens kwijtraakt via een onbedoeld overschrijven. In het onlinescenario kan bijvoorbeeld een toepassing die is verbonden met de database die wordt uitgevoerd in Azure Database for PostgreSQL, de wijzigingen blind laten overschrijven door een toepassing die nog steeds gebruikmaakt van de on-premises database. In dit achterhoofd moet u rekening houden met de volgende benaderingen:

  • Toepassingen migreren op basis van hun workloadtype. Een toepassing die toegang heeft tot de gegevens om alleen te lezen, kan veilig worden verplaatst naar de database die wordt uitgevoerd in Azure Database for PostgreSQL en ziet alle wijzigingen die zijn aangebracht door toepassingen die nog steeds gebruikmaken van de on-premises database. U kunt ook de omgekeerde strategie gebruiken als alleen-lezentoepassingen geen volledig bijgewerkte gegevens nodig hebben.
  • Gebruikers migreren op basis van hun workloadtype. Deze strategie is vergelijkbaar met de vorige strategie, behalve dat u mogelijk gebruikers hebt die alleen rapporten genereren terwijl anderen de gegevens wijzigen. Mogelijk hebt u dezelfde toepassing geconfigureerd om verbinding te maken met de juiste database op basis van gebruikersvereisten.
  • Toepassingen migreren op basis van de gegevenssets die ze gebruiken. Als verschillende toepassingen gebruikmaken van verschillende subsets van de gegevens, kunt u deze toepassingen mogelijk onafhankelijk van elkaar migreren.

Een toepassing opnieuw configureren

Als u een toepassing opnieuw wilt configureren, wijst u deze naar de nieuwe database. De meeste goed geschreven toepassingen isoleren de verbindingslogica. Dit moet het enige deel zijn van de code die moet worden gewijzigd. In veel gevallen kunnen de verbindingsgegevens worden opgeslagen als configuratiegegevens. U hoeft die gegevens alleen bij te werken.

U vindt de verbindingsgegevens voor uw Azure Database for PostgreSQL-service in Azure Portal op de pagina Verbinding maken ion-tekenreeksen voor uw service. Azure biedt de informatie voor veel algemene programmeertalen en frameworks.

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

Netwerkpoorten openen

Zoals vermeld in les 1 van deze module, is Azure Database for PostgreSQL een beveiligde service die achter een firewall wordt uitgevoerd. Clients kunnen geen verbinding maken, tenzij hun IP-adres wordt herkend door de service. U moet de IP-adressen of adresblokbereiken toevoegen voor clients met toepassingen die verbinding moeten maken met uw databases.

Toepassingen testen en verifiëren

Voordat u uw toepassingen en gebruikers overschakelt naar de nieuwe database, is het belangrijk om ervoor te zorgen dat u alles correct hebt geconfigureerd.

Begin met 'drooglopende' toepassingen en verbind elke rol om ervoor te zorgen dat de juiste functionaliteit beschikbaar is.

Voer vervolgens 'weektests' uit om het typische aantal gebruikers met representatieve workloads gedurende een bepaalde periode na te bootsen. Bewaak het systeem en controleer of u voldoende resources hebt toegewezen aan uw Azure Database for PostgreSQL-service.

Op dit moment kunt u beginnen met het implementeren van het systeem voor gebruikers. Het kan nuttig zijn om een vorm van "canary testing" te implementeren, waarbij een kleine subset van gebruikers wordt overgebracht naar het systeem niet weet. Dit geeft u een onbevooroordeeld advies over of gebruikers dezelfde, betere of slechtere ervaring hebben met de nieuwe database.