Containerinkapsling för ASP.NET-appar och migrering till Azure App Service
I den här artikeln får du lära dig hur du containeriserar ASP.NET program och migrerar dem till Azure App Service med hjälp av verktyget Azure Migrate App Containerization. Containerinkapsningsprocessen kräver inte åtkomst till din kodbas och ger ett enkelt sätt att containerisera befintliga program. Verktyget fungerar genom att använda körningstillståndet för programmen på en server för att fastställa programkomponenterna. Det hjälper dig sedan att paketera dem i en containeravbildning. Du kan sedan distribuera det containerbaserade programmet i Azure App Service.
Verktyget för containerinkapsling för program i Azure Migrate stöder för närvarande:
- Containerisera ASP.NET appar och distribuera dem i Windows-containrar i App Service.
- Containerisera ASP.NET appar och distribuera dem i Windows-containrar i Azure Kubernetes Service (AKS). Läs mer om det här containeriseringsscenariot.
- Containerisera Java-webbappar på Apache Tomcat (på Linux-servrar) och distribuera dem på Linux-containrar i AKS. Läs mer om det här containeriseringsscenariot.
- Containerisera Java-webbappar på Apache Tomcat (på Linux-servrar) och distribuera dem i Linux-containrar i App Service. Läs mer om det här containeriseringsscenariot.
Verktyget AppContainerisering hjälper dig att:
- Identifiera dina programkomponenter. Verktyget ansluter via fjärranslutning till de programservrar som kör ditt ASP.NET program och identifierar programkomponenterna. Den skapar en Dockerfile som du kan använda för att skapa en containeravbildning för programmet.
- Skapa containeravbildningen. Du kan inspektera och ytterligare anpassa Dockerfile baserat på dina programkrav och använda den för att skapa din programcontaineravbildning. Programcontaineravbildningen skickas till ett Azure-containerregister som du anger.
- Distribuera till Azure App Service. Verktyget genererar sedan de distributionsfiler som behövs för att distribuera det containerbaserade programmet till Azure App Service.
Kommentar
Azure Migrate App Containerization-verktyget hjälper dig att identifiera specifika programtyper (ASP.NET och Java-webbappar på Apache Tomcat) och deras komponenter på en programserver. Om du vill identifiera servrar och inventeringen av appar, roller och funktioner som körs på lokala datorer använder du verktyget Azure Migrate Discovery och utvärdering.
Inte alla program kommer att dra nytta av en rak övergång till containrar utan betydande omarbetning. Men några av fördelarna med att flytta befintliga appar till containrar utan att skriva om är:
- Förbättrad infrastrukturanvändning. När du använder containrar kan flera program dela resurser och finnas i samma infrastruktur. Detta kan hjälpa dig att konsolidera infrastrukturen och förbättra användningen.
- Förenklad hantering. Genom att vara värd för dina program på moderna hanterade plattformar som AKS och App Service kan du förenkla dina hanteringsmetoder. Du kan åstadkomma den här förenklingen genom att dra tillbaka eller minska de infrastrukturunderhålls- och hanteringsprocesser som du traditionellt utför med ägd infrastruktur.
- Programportabilitet. Med ökad implementering och standardisering av format och plattformar för containerspecifikationer är programportabilitet inte längre ett problem.
- Anta modern hantering med hjälp av DevOps. Med hjälp av containrar kan du använda och standardisera moderna metoder för hantering och säkerhet och övergång till DevOps.
I den här självstudien får du lära dig att:
- Konfigurera ett Azure-konto.
- Installera containerverktyget för Azure Migrate-appen.
- Identifiera ditt ASP.NET program.
- Skapa containeravbildningen.
- Distribuera det containerbaserade programmet i App Service.
Kommentar
Självstudier ger den enklaste distributionsvägen för ett scenario så att du snabbt kan konfigurera ett konceptbevis. Självstudier använder standardalternativ när det är möjligt och visar inte alla inställningar och sökvägar.
Förutsättningar
Innan du påbörjar den här självstudien bör du:
Krav | Detaljer |
---|---|
Identifiera en dator där verktyget ska installeras | Du behöver en Windows-dator där du kan installera och köra containerverktyget för Azure Migrate-appen. Windows-datorn kan köra en server (Windows Server 2016 eller senare) eller ett klientoperativsystem (Windows 10). (Verktyget kan köras på skrivbordet.) Den Windows-dator som kör verktyget ska ha nätverksanslutning till de servrar eller virtuella datorer som är värdar för ASP.NET program som du ska använda i container. Kontrollera att 6 GB är tillgängligt på Den Windows-dator som kör verktyget Azure Migrate App Containerization. Det här utrymmet är till för att lagra programartefakter. Windows-datorn måste ha åtkomst till Internet, antingen direkt eller via en proxy. Om microsofts webbdistributionsverktyg inte redan är installerat på datorn som kör verktyget AppContainerisering och programservern installerar du det. Du kan ladda ned verktyget. |
Programservrar | Aktivera PowerShell-fjärrkommunikation på programservrarna: logga in på programservern och följ dessa instruktioner för att aktivera PowerShell-fjärrkommunikation. Kontrollera att PowerShell version 5.1 eller senare är installerat på programservern. Följ anvisningarna i Installera och konfigurera WMF 5.1 på programservern. Om microsofts webbdistributionsverktyg inte redan är installerat på datorn som kör verktyget AppContainerisering och programservern installerar du det. Du kan ladda ned verktyget. |
ASP.NET program | Verktyget stöder för närvarande:
Verktyget stöder för närvarande inte:
|
Förbereda ett Azure-användarkonto
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
När prenumerationen har konfigurerats behöver du ett Azure-användarkonto med:
- Ägarbehörigheter för Azure-prenumerationen.
- Behörigheter för att registrera Microsoft Entra-appar.
Om du nyligen skapade ett kostnadsfritt Azure-konto är du ägare av prenumerationen. Om du inte är prenumerationsägare arbetar du med ägaren för att tilldela behörigheterna på följande sätt:
I Azure Portal söker du efter "prenumerationer". Under Tjänster väljer du Prenumerationer:
På sidan Prenumerationer väljer du den prenumeration där du vill skapa ett Azure Migrate-projekt.
Välj Åtkomstkontroll (IAM) i den vänstra rutan i prenumerationen.
På fliken Kontrollera åtkomst söker du efter det relevanta användarkontot.
Under Lägg till en rolltilldelning väljer du Lägg till:
På sidan Lägg till rolltilldelning väljer du rollen Ägare och väljer sedan kontot (azmigrateuser i vårt exempel). Välj sedan Spara.
Ditt Azure-konto behöver också behörigheter för att registrera Microsoft Entra-appar.
I Azure Portal går du till Användarinställningar för Microsoft Entra-ID-användare>>.
I Användarinställningar kontrollerar du att Microsoft Entra-användare kan registrera program. (Det här alternativet är inställt på Ja som standard.)
Viktigt!
Microsoft rekommenderar att du använder roller med minst behörighet. Detta bidrar till att förbättra säkerheten för din organisation. Global administratör är en mycket privilegierad roll som bör begränsas till nödsituationsscenarier när du inte kan använda en befintlig roll.
Om alternativet Appregistreringar är inställt på Nej ber du klientorganisationen/den globala administratören att tilldela den behörighet som krävs. Alternativt kan klientorganisationen/den globala administratören tilldela rollen Programutvecklare till ett konto för att tillåta registrering av Microsoft Entra-appar. Mer information finns i Tilldela roller till användare.
Ladda ned och installera containerverktyget för Azure Migrate-appar
Ladda ned installationsprogrammet för Azure Migrate-appcontainer på en Windows-dator.
Öppna PowerShell i administratörsläge och ändra PowerShell-katalogen till mappen som innehåller installationsprogrammet.
Kör installationsskriptet med hjälp av det här kommandot:
.\AppContainerizationInstaller.ps1
Kommentar
För Windows Server 2022 redigerar du rad 135 och tar bort PowerShell-ISE
från funktionslistan eftersom den inte längre stöds.
Öppna verktyget AppContainerisering
Öppna en webbläsare på alla datorer som kan ansluta till den Windows-dator som kör verktyget AppContainerisering. Gå till verktygets URL: https:// maskinnamn eller IP-adress: 44369.
Du kan också öppna appen från skrivbordet med hjälp av appgenvägen.
Om du ser en varning om att anslutningen inte är privat väljer du Avancerat och fortsätter till webbplatsen. Den här varningen visas eftersom webbgränssnittet använder ett självsignerat TLS/SSL-certifikat.
På inloggningsskärmen använder du datorns lokala administratörskonto för att logga in.
Välj ASP.NET webbappar som den typ av program som du vill behålla.
I listan Mål azure-tjänst väljer du Containrar i Azure App Service:
Slutför kraven för verktyget
- Godkänn licensvillkoren och läs informationen från tredje part.
- I verktygswebbappen Konfigurera förutsättningar utför du följande steg:
Anslutning. Verktyget kontrollerar om Windows-datorn har internetåtkomst. Om datorn använder en proxy:
Välj Konfigurera proxy för att ange proxyadressen (i formuläret IP-adress eller FQDN) och lyssnarport.
Ange autentiseringsuppgifter om proxyn kräver autentisering.
Om du har lagt till proxyinformation eller inaktiverat proxyn eller autentiseringen väljer du Spara för att utlösa anslutningskontrollen igen.
Endast HTTP-proxy stöds.
Installera uppdateringar. Verktyget söker automatiskt efter de senaste uppdateringarna och installerar dem. Du kan också installera den senaste versionen av verktyget manuellt.
Installera Microsoft Web Deploy-verktyget. Verktyget kontrollerar om Microsofts webbdistributionsverktyg är installerat på den Windows-dator som kör Containeriseringsverktyget för Azure Migrate-appar.
Aktivera PowerShell-fjärrkommunikation. Verktyget uppmanar dig att se till att PowerShell-fjärrkommunikation är aktiverat på de programservrar som kör ASP.NET program som du vill behålla.
Logga in på Azure
Välj Logga in för att logga in på ditt Azure-konto.
Du behöver en enhetskod för att autentisera med Azure. Om du väljer Logga in bör du öppna ett fönster som innehåller enhetskoden. Om fönstret inte visas kontrollerar du att du har inaktiverat blockering av popup-fönster i webbläsaren.
Välj Kopiera kod och Logga in för att kopiera enhetskoden och öppna en Azure-inloggningsprompt på en ny webbläsarflik:
På den nya fliken klistrar du in enhetskoden och slutför inloggningen med dina autentiseringsuppgifter för Azure-kontot. När du har loggat in kan du stänga webbläsarfliken och återgå till webbgränssnittet för verktyget AppContainerisering.
Välj den Azure-klientorganisation som du vill använda.
Ange den Azure-prenumeration som du vill använda.
Identifiera ASP.NET program
Verktyget AppContainerisering ansluter via fjärranslutning till programservrarna med hjälp av de angivna autentiseringsuppgifterna och försöker identifiera ASP.NET program som finns på programservrarna.
Ange serverns IP-adress/FQDN och autentiseringsuppgifterna för den server som kör det ASP.NET program som ska användas för fjärranslutning till servern för programidentifiering.
- De autentiseringsuppgifter som anges måste vara för en lokal administratör (Windows) på programservern.
- För domänkonton (användaren måste vara administratör på programservern) prefixet användarnamnet med domännamnet i det här formatet: <domän\användarnamn>.
- För lokala konton (användaren måste vara administratör på programservern) prefixet användarnamnet med värdnamnet i det här formatet: <värdnamn\användarnamn>.
- Du kan köra programidentifiering för så många som fem servrar i taget.
Välj Verifiera för att kontrollera att programservern kan nås från den dator som kör verktyget och att autentiseringsuppgifterna är giltiga. När valideringen har slutförts visas statusen mappad i kolumnen Status:
Välj Fortsätt för att starta programidentifiering på de valda programservrarna.
När programidentifieringen är klar väljer du de program som du vill använda i container:
Ange ett namn för målcontainern för varje valt program. Ange containernamnet som <name:tag>, där taggen används för containeravbildningen. Du kan till exempel ange målcontainerns namn som appname:v1.
Parametrisera programkonfigurationer
Om du parameteriserar konfigurationen blir den tillgänglig som en tidsparameter för distribution. Med parameterisering kan du konfigurera en inställning när du distribuerar programmet i stället för att hårdkoda det till ett specifikt värde i containeravbildningen. Det här alternativet är till exempel användbart för parametrar som databas anslutningssträng.
Välj appkonfigurationer för att granska identifierade konfigurationer.
Välj de parametrar som du vill parameterisera och välj sedan Använd:
Externalisera filsystemberoenden
Du kan lägga till andra mappar som programmet använder. Ange om de ska ingå i containeravbildningen eller om de ska externaliseras till beständig lagring via Azure-filresursen. Att använda extern beständig lagring fungerar bra för tillståndskänsliga program som lagrar tillstånd utanför containern eller har annat statiskt innehåll som lagras i filsystemet.
Välj Redigera under Programmappar för att granska de identifierade programmapparna. Dessa mappar har identifierats som obligatoriska artefakter som krävs av programmet. De kopieras till containeravbildningen.
Välj Lägg till mapp och ange de mappsökvägar som du vill lägga till.
Om du vill lägga till flera mappar till samma volym separerar du värdena med kommatecken.
Välj Azure-filresurs som lagringsalternativ om du vill att mapparna ska lagras utanför containern på beständig lagring.
Välj Spara när du har granskat programmapparna:
Välj Fortsätt för att gå vidare till containeravbildningsfasen.
Skapa containeravbildning
I listrutan väljer du ett Azure-containerregister som ska användas för att skapa och lagra containeravbildningarna för apparna. Du kan använda ett befintligt Azure-containerregister eller skapa ett nytt genom att välja Skapa nytt register:
Kommentar
Endast Azure-containerregister med administratörsanvändarkontot aktiverat visas. Administratörsanvändarkontot krävs för närvarande för att distribuera en avbildning från ett Azure-containerregister till Azure App Service. Mer information finns i Autentisera med ett Azure-containerregister.
De Dockerfiles som behövs för att skapa containeravbildningarna för varje valt program genereras i början av byggsteget. Välj Granska för att granska Dockerfile. Du kan också lägga till nödvändiga anpassningar i Dockerfile i granskningssteget och spara ändringarna innan du startar byggprocessen.
Välj de program som du vill skapa avbildningar för och välj sedan Skapa. Om du väljer Skapa startas containeravbildningsversionen för varje program. Verktyget övervakar byggstatusen och låter dig fortsätta till nästa steg när bygget är klart.
Du kan övervaka förloppet för bygget genom att välja Skapa i pågår under statuskolumnen. Länken blir aktiv några minuter efter att du har utlöst byggprocessen.
När bygget är klart väljer du Fortsätt för att ange distributionsinställningar:
Distribuera den containerbaserade appen i Azure App Service
När containeravbildningen har skapats är nästa steg att distribuera programmet som en container i Azure App Service.
Välj den Azure App Service-plan som programmet ska använda.
Om du inte har någon App Service-plan eller vill skapa en ny App Service-plan att använda kan du skapa en genom att välja Skapa ny App Service-plan.
Välj Fortsätt när du har valt App Service-planen.
Om du har parametriserat programkonfigurationer anger du det hemliga arkivet som ska användas för programmet. Du kan välja Azure Key Vault- eller App Service-programinställningar för att hantera dina programhemligheter. Mer information finns i Konfigurera anslutningssträng.
- Om du har valt App Service-programinställningar för att hantera dina hemligheter väljer du Fortsätt.
- Om du vill använda ett Azure-nyckelvalv för att hantera dina programhemligheter anger du det nyckelvalv som du vill använda.
- Om du inte har något Azure-nyckelvalv eller vill skapa ett nytt nyckelvalv kan du skapa ett genom att välja Skapa nytt Azure Key Vault.
- Verktyget tilldelar automatiskt de behörigheter som krävs för att hantera hemligheter via nyckelvalvet.
Om du har lagt till fler mappar och valt alternativet Azure-filresurs för beständig lagring anger du den Azure-filresurs som ska användas av verktyget AppContainerisering under distributionen. Verktyget kopierar över de programmappar som du konfigurerade för Azure Files och monterar dem på programcontainern under distributionen.
Om du inte har någon Azure-filresurs eller vill skapa en ny Azure-filresurs kan du skapa en genom att välja Skapa nytt lagringskonto och filresurs.
Nu måste du ange distributionskonfigurationen för programmet. Välj Konfigurera för att anpassa distributionen för programmet. I konfigurationssteget kan du ange följande anpassningar:
- Namn. Ange ett unikt appnamn för programmet. Det här namnet används för att generera programmets URL. Det kommer också att användas som ett prefix för andra resurser som skapats som en del av distributionen.
- Programkonfiguration. För alla programkonfigurationer som är parametriserade anger du de värden som ska användas för den aktuella distributionen.
- Lagringskonfiguration. Granska informationen för alla programmappar som har konfigurerats för beständig lagring.
När du har sparat distributionskonfigurationen för programmet genererar verktyget Kubernetes-distributionens YAML för programmet.
Välj Granska för att granska distributionskonfigurationen för programmen.
Välj de program som du vill distribuera.
Välj Distribuera för att starta distributionen för de valda programmen.
När programmet har distribuerats kan du välja kolumnen Distributionsstatus för att spåra de resurser som distribuerades för programmet.
Felsöka problem
Om du vill felsöka problem med verktyget AppContainerisering kan du titta på loggfilerna på den Windows-dator som kör verktyget. Loggfiler för verktyget finns i C:\ProgramData\Microsoft Azure Migrate App Containerization\Logs.
Nästa steg
- Containerisera ASP.NET webbappar och distribuera dem i Windows-containrar på AKS
- Containerisera Java-webbappar på Apache Tomcat (på Linux-servrar) och distribuera dem i Linux-containrar på AKS
- Containerisera Java-webbappar på Apache Tomcat (på Linux-servrar) och distribuera dem i Linux-containrar i App Service