Linux- en PostgreSQL-workloads migreren

Voltooid

Deze module begeleidt u bij de migratie van een bestaande workload van een on-premises of cloudomgeving naar Azure. Het behandelt de migratie van de berekening naar een virtuele Azure-machine (VM) en de gegevens naar Azure Database for PostgreSQL. De toepassing is een cloudagnostisch voorbeeld dat een stand-in is voor elke echte toepassing die is voorbereid op migratie naar de cloud.

In deze les verkent u de waarde van het maken van de volgende overgangen met het voordeel van een volledige suite met beveiligings- en identiteitscontroles die Azure biedt:

  • Overstappen van een zelf-hostende omgeving (zoals van een zelfbeheerde database) naar een volledig beheerde database
  • Overstappen van bare-metal compute naar in de cloud gehoste VM's

U verkent ook de voordelen van het beheren van resources in de cloud vanuit kosten- en prestatieperspectief. En u leert hoe u kosten voor en na de implementatie nauwkeurig kunt berekenen en beheren, samen met het optimaliseren van de prestaties vanuit zowel reken- als gegevensperspectief.

Werkbelasting en gegevens

Onze workload is een toepassing die in Go is geschreven en werkt met gegevens in PostgreSQL. Onze gegevens zijn een open gegevensset waarmee u de kracht van het Postgres-platform en gerelateerde extensies kunt verkennen.

Hoewel deze toepassing eenvoudig in een container kan worden uitgevoerd, hebben de belanghebbenden ervoor gekozen dit in deze fase niet te doen. Het bouwen van een container, het implementeren naar een containerplatform of het gebruik van containerindeling valt momenteel buiten het bereik. Migratie naar containers kan echter een logische toekomstige stap zijn.

De GitHub-opslagplaats die aan deze module is gekoppeld, biedt een toepassing en de gerelateerde gegevens voor u. U leert hoe u uw toepassing voorbereidt en uw gegevens exporteert om een vergelijkbare status te bereiken als deze voorbeeldtoepassing. U kunt de voorbeeldtoepassing ook gebruiken als sjabloon voor een greenfield-implementatie.

Wat is de waarde van het migreren van deze workload?

U vraagt zich misschien af wat de voordelen zijn van het migreren van deze workload naar de cloud. Hier volgen enkele waardeproposities.

Beveiliging en naleving

Wanneer u reken- en gegevensworkloads naar de cloud brengt, profiteren ze van verbeterde beveiligingsmogelijkheden.

Virtuele machines in Azure profiteren van een groot aantal beveiligings- en nalevingsfuncties, waaronder firewalls, virtuele netwerken, Just-In-Time-VM-toegang, versleuteling, op rollen gebaseerd toegangsbeheer (RBAC) en vertrouwelijke computing. Azure Database for PostgreSQL ondersteunt veel vergelijkbare functies, zoals versleuteling met door de klant beheerde sleutels, nalevingscertificeringen en ondersteuning voor Microsoft Defender voor Cloud.

Beveiliging van verbindingen tussen uw virtuele machines en databases

Wanneer u een virtuele machine integreert met Azure Database for PostgreSQL, is het essentieel dat ze op een veilige manier verbinding met elkaar kunnen maken, waardoor het risico op gegevensverlies wordt verminderd.

Met Microsoft Entra-verificatie kunt u zonder traditionele wachtwoorden verbinding maken met Azure Database for PostgreSQL. In plaats daarvan gebruikt u Microsoft Entra-identiteiten voor uw toepassingsworkload (dat wil gezegd, beheerde identiteiten), gebruikers en beheerders via hun Microsoft Entra-gebruikersaccounts. Deze aanpak vermindert het risico dat referenties met een lange levensduur worden aangetast en dat slechte actoren toegang hebben tot uw gegevens.

Met Microsoft Entra ID, beheerde identiteiten en verfijnde RBAC kan uw toepassingsworkload veilig toegang krijgen tot gegevens en resources in Azure beheren door het principe van minimale bevoegdheden te volgen.

Toegang tot krachtige en rendabele berekeningen in meerdere regio's

Of u nu rendabele berekeningen nodig hebt voor dev/test of de meest recente, hoogste prestaties of de grootste rekentypen die beschikbaar zijn in de cloud, Azure heeft een breed scala aan rekenopties voor zowel virtuele machines als Azure Database for PostgreSQL. U kunt deze opties naar behoefte omhoog en omlaag schalen en ze zijn beschikbaar in meer dan 60 regio's in Azure.

U kunt berekeningen zowel verticaal als horizontaal schalen, inclusief via databasereplica's en gedistribueerde opties , zoals Azure Cosmos DB voor PostgreSQL. Azure Cosmos DB for PostgreSQL is een beheerde service voor PostgreSQL, uitgebreid met de opensource-superkracht van Citus voor gedistribueerde tabellen. Deze berekening is gekoppeld aan een aantal van de snelste cloudopslagopties om uw I/O-vereisten voor rekenkracht en opslag aan te passen aan uw workload.

Kostenbeheer en kosteneffectiviteit

U kunt optimaliseren voor kostenbeheer en kosteneffectiviteit aan zowel de Linux- als PostgreSQL-zijde. In vergelijking met on-premises oplossingen kunnen de kosten vaak meer op maat worden gemaakt en geschikt zijn voor uw situatie. U kunt uw rekenkracht aanpassen in vergelijking met een on-premises oplossing. U kunt uw hele vloot ook eenvoudig beheren om alleen te optimaliseren voor de reken- en opslag die u nodig hebt, en alleen te betalen voor wat u gebruikt, in een factureringsmodel voor nutsvoorzieningen.

Met facturering van nutsvoorzieningen kunnen klanten perioden van hoge vraag verwerken zonder dat ze de kosten van overprovisioning hoeven te betalen. Hiermee kunt u migratie sneller en efficiëntere generaties van rekenkracht naarmate deze beschikbaar komen.

Klanten kunnen ook profiteren van Azure Hybrid Benefit om te besparen op licentiekosten voor specifieke Linux-distributies. Zie Azure Hybrid Benefit voor virtuele machines van Red Hat Enterprise Linux (RHEL) en SUSE Linux Enterprise Server (SLES) voor meer informatie.

Klanten kunnen ook kosten verlagen (tot 72 procent vergeleken met prijzen voor betalen per gebruik) met een of drie jaar voor virtuele machines en gereserveerde instanties van virtuele machines van Azure. Zie Hoe de azure-reserveringskorting wordt toegepast op virtuele machines voor meer informatie. Azure-prijzen zijn transparant en voorspelbaar en u kunt de Azure-prijscalculator gebruiken om uw kosten te schatten voordat u implementeert.

Dag 2 bewerkingen

Dag 2 bewerkingen voor geïmplementeerde toepassingen (zoals triage, bewaking, beveiligingspatching, back-ups en herstel na noodgevallen) worden efficiënter door automatisering en de mogelijkheid om te upgraden met mogelijk nul downtime. Daarnaast kunt u uw infrastructuur end-to-end beheren met industriestandaard hulpprogrammaketens.

Voordat u begint

Deze module is ontworpen om u te helpen bij het migreren van een bestaande Linux- en PostgreSQL-workload naar Azure. Het is echter niet gericht op het exporteren van de gegevens uit uw brondatabase of het voorbereiden van de toepassing voor migratie. Een van de redenen voor deze aanpak is dat er veel typen brondatabases en toepassingen zijn die u kunt migreren en dat het proces voor elk type uniek is.

Deze module biedt u een voorbeeldtoepassing, Postgres-gegevens, binaire bestanden en infrastructuur als code die u kunt gebruiken om het migratieproces te simuleren. Nadat u de gesimuleerde migratie hebt voltooid, kunt u de kennis die u hebt opgedaan gebruiken om dezelfde principes toe te passen op uw eigen workload.

U gebruikt de voorbeeldtoepassing Azure-Samples /tailwind-traders-go als een stand-in voor de toepassingscode die moet worden gemigreerd. De Bicep-infrastructuur als code, voorbeeldgegevens van Postgres en binaire gegevens en andere resources ter ondersteuning van het praktische gedeelte van deze module zijn beschikbaar in de GitHub-opslagplaats Azure-Samples/linux-postgres-migration .

Als u deze benadering wilt toepassen op uw eigen workload, moet u uw brontoepassing en gegevens toewijzen aan de volgende structuur.

Toepassingscode

U moet uw toepassingscode opslaan in broncodebeheer, bij voorkeur een opslagplaats in GitHub.

De migratie in deze module toont het eenvoudigste scenario van het klonen van de opslagplaats rechtstreeks naar uw virtuele Azure-machine. In een praktijkscenario hebt u waarschijnlijk een complexere implementatiepijplijn, zoals GitHub Actions, waarmee uw toepassingscode wordt gebouwd en geïmplementeerd in uw rekenresources.

Postgres-gegevens

U moet uw Postgres-gegevens opslaan in een .sql bestand dat u kunt gebruiken om het databaseschema te maken en de gegevens in te voegen. In deze gesimuleerde migratie gebruikt u een voorbeeldgegevensbestand, tailwind.sqlbinnen de Azure-Samples/linux-postgres-migration opslagplaats. U kopieert het bestand naar Azure Blob Storage en importeert het vervolgens in Azure Database for PostgreSQL.

Wanneer het tijd is om uw eigen gegevens te migreren, exporteert u uw gegevens uit uw brondatabase en slaat u deze op in een .sql bestand. Vervolgens kopieert u het bestand naar Blob Storage, zoals beschreven in deze module.

Binaire bestanden

De meeste toepassingen hebben andere binaire bestanden, zoals mediabestanden, die moeten worden gemigreerd. Voor de voorbeeldtoepassing leert u hoe u afbeeldingen migreert door deze te kopiëren van Azure-Samples/linux-postgres-migration naar Blob Storage.

Op dezelfde manier moet u uw binaire bestanden naar Blob Storage kopiëren wanneer u uw eigen workload migreert. In dit geval is de berekening staatloos en heeft de toepassing toestemming om rechtstreeks in Blob Storage toegang te krijgen tot de binaire gegevens.

Infrastructuur als code (Bicep)

De infrastructuur als code voor deze module wordt ook opgeslagen in Azure-Samples/linux-postgres-migration. Het is ontworpen als referentiearchitectuur die u als zodanig kunt gebruiken, met minimale wijzigingen, als u uw brongegevens en toepassing kunt maken in overeenstemming met de eerder beschreven structuur.

Beveiliging is een belangrijk thema van deze migratie en we hebben bepaalde beveiligingsinstellingen gekozen om het praktische gedeelte van deze module gemakkelijker te voltooien. Blob Storage maakt bijvoorbeeld gebruik van een veiligere, sleutelloze verificatiemethode, maar we staan netwerkverbindingen toe vanaf elk IP-adres. In een productieomgeving wilt u de netwerktoegang vergrendelen tot alleen de IP-adressen die toegang nodig hebben tot het opslagaccount.

Op dezelfde manier laten we de optie over om een firewallregel toe te voegen aan de PostgreSQL-server om een specifiek IP-adres toe te staan. In een productieomgeving kunt u alle openbare toegang tot de server volledig uitschakelen.

Verschillen tussen bronomgevingen en Azure

Een van de belangrijkste verschillen in het migreren van een andere omgeving naar Azure is dat u volledig gebruikmaakt van de beveiliging en identiteitscontroles die Azure biedt:

  • U gebruikt beheerde identiteiten voor virtuele machines en Azure Database for PostgreSQL.
  • U gebruikt Microsoft Entra-id voor verificatie bij de database.
  • U gebruikt Microsoft Entra ID in plaats van SSH-sleutels (Secure Shell) voor toegang tot virtuele machines.

In plaats van een lift-and-shift-migratie uit te voeren, kunt u de toepassing moderniseren om optimaal te profiteren van de beveiligings- en nalevingsfuncties die Azure biedt.

On-premises kunt u een gebruikersnaam en wachtwoord gebruiken om te verifiëren bij uw database. In Azure laten we zien hoe u de beheerde identiteit van de virtuele machine gebruikt om te verifiëren bij de database. Deze verificatiemethode is veiliger en vermindert het risico dat referenties met een lange levensduur worden aangetast.

Voor het gebruik van een beheerde identiteit voor verificatie zijn vaak codewijzigingen in uw toepassing vereist. In deze module ziet u hoe u de azidentity bibliotheek in Go gebruikt om een token op te halen voor de beheerde identiteit. Dezelfde bibliotheek is beschikbaar in Microsoft SDK's.

Een Azure-account maken en de Azure CLI installeren

Als u geen Azure-account hebt, kunt u vandaag nog een gratis account maken. U krijgt tegoed dat u kunt gebruiken om betaalde Azure-services uit te proberen. Zelfs nadat u het tegoed hebt gebruikt, kunt u het account behouden en gratis Azure-services gebruiken.

Als u de opdrachten in de volgende eenheden wilt uitvoeren, hebt u toegang nodig tot een Bash-shell. Deze shell kan zich in een van deze gebieden bevinden:

  • Op uw lokale computer. Gebruik bijvoorbeeld macOS, Linux, Windows-subsysteem voor Linux (WSL) of Docker.
  • Op een virtuele machine. Gebruik bijvoorbeeld Multipass of Azure.
  • In de cloud. Gebruik bijvoorbeeld Azure Cloud Shell of GitHub Codespaces.

U hebt de Azure CLI nodig om deze module te voltooien. U kunt de Azure CLI installeren op uw lokale computer door de instructies te volgen in het artikel Azure CLI installeren. U moet ook Git installeren.

Hulpmiddelen