Dela via


Containerisering och migrering av Java-webbappar till Azure App Service

I den här artikeln får du lära dig hur du containeriserar Java-webbprogram (körs på Apache Tomcat) 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 och hjälper dig att paketera dem i en containeravbildning. Det containerbaserade programmet kan sedan distribueras i Azure App Service.

Verktyget Azure Migrate: App Containerization stöder för närvarande:

  • Containerisera Java Web Apps på Apache Tomcat (på Linux-servrar) och distribuera dem i Linux-containrar i App Service.
  • Containerisera Java Web Apps på Apache Tomcat (på Linux-servrar) och distribuera dem i Linux-containrar på AKS. Läs mer.
  • Containerisera ASP.NET appar och distribuera dem i Windows-containrar på AKS. Läs mer.
  • Containerisera ASP.NET appar och distribuera dem i Windows-containrar i App Service. Läs mer.

Verktyget Azure Migrate: App Containerization hjälper dig att:

  • Identifiera ditt program: Verktyget ansluter via fjärranslutning till de programservrar som kör java-webbappen (körs på Apache Tomcat) och identifierar programkomponenterna. Verktyget skapar en Dockerfile som kan användas för att skapa en containeravbildning för programmet.
  • Skapa containeravbildningen: Du kan inspektera och ytterligare anpassa Dockerfile enligt dina programkrav och använda den för att skapa din programcontaineravbildning. Programcontaineravbildningen skickas till ett Azure Container Registry 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

  • Verktyget Azure Migrate: App Containerization 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 Azure Migrate: Identifierings- och utvärderingsfunktioner. Läs mer.
  • AppContaineriseringsverktyget hoppar över identifieringen av vissa tomcat-standardwebbappar, till exempel "docs", "examples", "host-manager", "manager" och "ROOT".

Även om alla program inte drar nytta av en rak övergång till containrar utan betydande omarbetning, inkluderar några av fördelarna med att flytta befintliga appar till containrar utan att skriva om:

  • Förbättrad infrastrukturanvändning: Med 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å en modern hanterad plattform som AKS och App Service kan du förenkla dina hanteringsmetoder. Du kan uppnå detta 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 containerspecifikationsformat och plattformar är programportabilitet inte längre ett problem.
  • Anta modern hantering med DevOps: Hjälper dig att införa 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 verktyget Azure Migrate: App Containerization.
  • Upptäck din Java-webbapp.
  • Skapa containeravbildningen.
  • Distribuera det containerbaserade programmet i App Service.

Kommentar

Självstudier visar den enklaste distributionsvägen för ett scenario så att du snabbt kan konfigurera ett konceptbevis. Självstudierna använder standardalternativ där så är möjligt och visar inte alla möjliga inställningar och sökvägar.

Förutsättningar

Innan du börjar de här självstudierna bör du:

Krav Detaljer
Identifiera en dator som ska installera verktyget En Windows-dator för att kunna installera och köra verktyget Azure Migrate: Containerinkapsling för program. Windows-datorn kan vara en server (Windows Server 2016 eller senare) eller en klientdator (operativsystemet Windows 10), vilket innebär att du även kan köra verktyget på din stationära dator.

När verktyget körs på en Windows-dator måste den ha en nätverksanslutning till servern/den virtuella datorn som ska vara värd för Java webbapparna som ska inkapslas i en container.

Se till att det finns 6 GB ledigt utrymme på Windows-datorn som kör verktyget Azure Migrate: Containerinkapsling för program för att lagra programartefakter.

Windows-datorn måste ha åtkomst till Internet, antingen direkt eller via en proxy.
Programservrar Aktivera Secure Shell-anslutning (SSH) på port 22 på de servrar som kör Java-program som ska containeriseras.
Java-webapp Verktyget stöder för närvarande:

– Program som körs på Tomcat 8 eller Tomcat 9.
– Programservrar på Ubuntu Linux 16.04/18.04/20.04, Debian 7/8, Red Hat Enterprise Linux 5/6/7.
– Program som använder Java 7 eller Java 8.
Om du har en version utanför detta letar du upp en avbildning som stöder dina nödvändiga versioner och ändrar dockerfile för att ersätta avbildningen

Verktyget stöder för närvarande inte:

– Programservrar som kör flera Tomcat-instanser

Förbereda ett Azure-användarkonto

Om du inte har någon 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:

  1. I Azure Portal söker du efter "prenumerationer" och under Tjänster väljer du Prenumerationer.

    Sökrutan för att söka efter Azure-prenumerationen.

  2. På sidan Prenumerationer väljer du den prenumeration där du vill skapa ett Azure Migrate-projekt.

  3. I prenumerationen väljer du Åtkomstkontroll (IAM)>Kontrollera åtkomst.

  4. I Kontrollera åtkomst söker du efter det relevanta användarkontot.

  5. I Lägg till en rolltilldelning klickar du på Lägg till.

    Sök efter ett användarkonto för att kontrollera åtkomsten och tilldela en roll.

  6. I Lägg till rolltilldelning väljer du rollen Ägare och väljer kontot (azmigrateuser i vårt exempel). Klicka på Spara.

    Öppnar sidan Lägg till rolltilldelning för att tilldela en roll till kontot.

Ditt Azure-konto behöver också behörigheter för att registrera Microsoft Entra-appar. 8. I Azure Portal går du till Användarinställningar för Microsoft Entra-ID-användare>>. 9. I Användarinställningar kontrollerar du om Microsoft Entra-användare kan registrera program (inställt på Ja som standard).

Kontrollera i Användarinställningar att användare kan registrera Active Directory-appar.

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.

  1. Om inställningen "Appregistreringar" är inställd 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-appen. Läs mer.

Ladda ned och installera Azure Migrate: Verktyg för appcontainerisering

  1. Ladda ned installationsprogrammet för Azure Migrate: Containerinkapsling för program på en Windows-dator.

  2. Starta PowerShell i administratörsläge och ändra PowerShell-katalogen till mappen som innehåller installationsprogrammet.

  3. Kör installationsskriptet med 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.

Starta verktyget AppContainerisering

  1. Öppna en webbläsare på alla datorer som kan ansluta till Windows-datorn som kör verktyget AppContainerisering och öppna verktygets URL: https:// maskinnamn eller IP-adress: 44369.

    Alternativt kan du öppna appen från skrivbordet genom att välja appens genväg.

  2. Om du ser en varning om att anslutningen inte är privat klickar du på Avancerat och väljer att gå vidare till webbplatsen. Den här varningen visas eftersom webbgränssnittet använder ett självsignerat TLS/SSL-certifikat.

  3. På inloggningsskärmen använder du det lokala administratörskontot på datorn för att logga in.

  4. Välj Java-webbappar på Tomcat som den typ av program som du vill behålla.

  5. Om du vill ange azure-måltjänsten väljer du Containrar i Azure App Service. Standardinläsning för appcontaineriseringsverktyget.

Kompletta verktygskrav

  1. Godkänn licensvillkoren och läs informationen från tredje part.
  2. Gör följande i verktygswebbappen >Konfigurera förutsättningar:
    • Anslutning: Verktyget kontrollerar att Windows-datorn har internetåtkomst. Om datorn använder en proxy:
      • Klicka på Konfigurera proxy för att ange proxyadressen (i formuläret IP-adress eller FQDN) och lyssnarporten.
      • Ange autentiseringsuppgifter om proxyn kräver autentisering.
      • Endast HTTP-proxy stöds.
      • Om du har lagt till proxyinformation eller inaktiverat proxyn och/eller autentiseringen klickar du på Spara för att utlösa anslutningskontrollen igen.
    • Installera uppdateringar: Verktyget söker automatiskt efter de senaste uppdateringarna och installerar dem. Du kan också installera den senaste versionen av verktyget manuellt härifrån.
    • Aktivera Secure Shell (SSH): Verktyget informerar dig om att Secure Shell (SSH) är aktiverat på de programservrar som kör Java-webbprogrammen som ska containeriseras.

Logga in på Azure

Klicka på Logga in för att logga in på ditt Azure-konto.

  1. Du behöver en enhetskod för att autentisera med Azure. Om du klickar på Logga in öppnas en modal med enhetskoden.

  2. Klicka på Kopiera kod och logga in för att kopiera enhetskoden och öppna en Azure-inloggningsprompt på en ny webbläsarflik. Om den inte visas kontrollerar du att du har inaktiverat popup-blockeraren i webbläsaren.

    Modal som visar enhetskod.

  3. På den nya fliken klistrar du in enhetskoden och slutför inloggningen med dina autentiseringsuppgifter för Azure-kontot. Du kan stänga webbläsarfliken när inloggningen är klar och återgå till webbgränssnittet för verktyget AppContainerisering.

  4. Välj den Azure-klientorganisation som du vill använda.

  5. Ange den Azure-prenumeration som du vill använda.

Identifiera Java-webbprogram

Hjälpverktyget för appcontainerisering ansluter via fjärranslutning till programservrarna med de angivna autentiseringsuppgifterna och försöker identifiera Java-webbprogram (körs på Apache Tomcat) som finns på programservrarna.

  1. Ange IP-adressen/FQDN och autentiseringsuppgifterna för servern som kör Java-webbprogrammet som ska användas för fjärranslutning till servern för programidentifiering.

    • De angivna autentiseringsuppgifterna måste vara för ett rotkonto (Linux) på programservern.
    • För domänkonton (användaren måste vara administratör på programservern) prefixet användarnamnet med domännamnet i formatet <domän\användarnamn>.
    • Du kan köra programidentifiering för upp till fem servrar åt gången.
  2. Klicka på 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 visar statuskolumnen statusen Mappad.

    Skärmbild för serverns IP-adress och autentiseringsuppgifter.

  3. Klicka på Fortsätt för att starta programidentifieringen på de valda programservrarna.

  4. När programidentifieringen har slutförts kan du välja listan över program som ska containeriseras.

    Skärmbild för identifierad Java-webbapp.

  5. Använd kryssrutan för att välja de program som ska containeriseras.

  6. Ange containernamn: Ange ett namn för målcontainern för varje valt program. Containernamnet ska anges 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 konfigurationen parameteriseras blir den tillgänglig som en tidsparameter för distributionen. På så sätt kan du konfigurera den här inställningen 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.

  1. Klicka på Appkonfigurationer för att granska identifierade konfigurationer.

  2. Markera kryssrutan för att parameterisera de identifierade programkonfigurationerna.

  3. Klicka på Använd när du har valt de konfigurationer som ska parameteriseras.

    Skärmbild för java-programmet för appkonfigurationsparameterisering.

Externalisera filsystemberoenden

Du kan lägga till andra mappar som programmet använder. Ange om de ska ingå i containeravbildningen eller 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.

  1. Klicka på Redigera under Appmappar för att granska de identifierade programmapparna. De identifierade programmapparna har identifierats som obligatoriska artefakter som krävs av programmet och kopieras till containeravbildningen.

  2. Klicka på Lägg till mappar och ange de mappsökvägar som ska läggas till.

  3. Om du vill lägga till flera mappar till samma volym anger du kommaavgränsade värden (,).

  4. Välj Azure-filresurs som lagringsalternativ om du vill att mapparna ska lagras utanför containern på beständig lagring.

  5. Klicka på Spara när du har granskat programmapparna. Skärmbild för val av lagring av appvolymer.

  6. Klicka på Fortsätt för att fortsätta till containeravbildningsfasen.

Skapa containeravbildning

  1. Välj Azure Container Registry: Använd listrutan för att välja ett Azure Container Registry som ska användas för att skapa och lagra containeravbildningarna för apparna. Du kan använda ett befintligt Azure Container Registry eller välja att skapa ett nytt med alternativet Skapa nytt register.

    Skärmbild för app-ACR-val.

Kommentar

Endast Azure-containerregister med administratörsanvändare aktiverade visas. Administratörskontot krävs för närvarande för att distribuera en avbildning från ett Azure-containerregister till Azure App Service. Läs mer.

  1. Granska Dockerfile: Dockerfile som behövs för att skapa containeravbildningarna för varje valt program genereras i början av byggsteget. Klicka på 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 påbörjar byggprocessen.

  2. Konfigurera Application Insights: Du kan aktivera övervakning för java-appar som körs i App Service utan att instrumentera koden. Verktyget installerar den fristående Java-agenten som en del av containeravbildningen. När Java-agenten har konfigurerats under distributionen samlar den automatiskt in en mängd begäranden, beroenden, loggar och mått för ditt program som kan användas för övervakning med Application Insights. Det här alternativet är aktiverat som standard för alla Java-program.

  3. Utlösargenereringsprocess: Välj de program som du vill skapa avbildningar för och klicka på Skapa. Om du klickar på Skapa startas containeravbildningsversionen för varje program. Verktyget fortsätter att övervaka byggstatusen kontinuerligt och låter dig gå vidare till nästa steg när bygget har slutförts.

  4. Spåra byggstatus: Du kan också övervaka förloppet för byggsteget genom att klicka på länken Skapa i pågår under kolumnen Byggstatus . Länken tar några minuter att vara aktiv när du har utlöst byggprocessen.

  5. När bygget är klart klickar du på Fortsätt för att ange distributionsinställningarna.

    Skärmbild för slutförande av appcontaineravbildning.

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.

  1. Välj Azure App Service-planen: Ange 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 välja att skapa en från verktyget genom att klicka på Skapa ny App Service-plan.
    • Klicka på Fortsätt när du har valt App Service-planen.
  2. Ange hemlig lagring och övervakningsarbetsyta: Om du hade valt att parametrisera programkonfigurationer anger du det hemliga arkiv 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. Läs mer.

    • Om du har valt App Service-programinställningar för att hantera hemligheter klickar du på Fortsätt.
    • Om du vill använda ett Azure Key Vault för att hantera dina programhemligheter anger du det Azure Key Vault som du vill använda.
      • Om du inte har ett Azure Key Vault eller vill skapa ett nytt Key Vault kan du välja att skapa ett från verktyget genom att klicka på Skapa ny.
      • Verktyget tilldelar automatiskt de behörigheter som krävs för att hantera hemligheter via Key Vault.
    • Övervakningsarbetsyta: Om du har valt att aktivera övervakning med Application Insights anger du den Application Insights-resurs som du vill använda. Det här alternativet visas inte om du har inaktiverat övervakningsintegrering.
      • Om du inte har någon Application Insights-resurs eller vill skapa en ny resurs kan du välja att skapa från verktyget genom att klicka på Skapa ny.
  3. Ange Azure-filresurs: Om du hade lagt till fler kataloger/mappar och valt alternativet Azure-filresurs för beständig lagring anger du den Azure-filresurs som ska användas av Azure Migrate: Verktyget Containerisering av appar under distributionsprocessen. Verktyget kopierar över de programkataloger/mappar som är 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 välja att skapa på från verktyget genom att klicka på Skapa nytt lagringskonto och filresurs.
  4. Konfiguration av programdistribution: När du har slutfört stegen ovan måste du ange distributionskonfigurationen för programmet. Klicka på 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 och användas som prefix för andra resurser som skapas som en del av den här distributionen.
    • Programkonfiguration: För alla programkonfigurationer som parametriserades anger du de värden som ska användas för den aktuella distributionen.
    • Lagringskonfiguration: Granska informationen för programkataloger/mappar som har konfigurerats för beständig lagring.

    Skärmbild för konfiguration av distributionsapp.

  5. Distribuera programmet: När distributionskonfigurationen för programmet har sparats genererar verktyget Kubernetes-distributionens YAML för programmet.

    • Klicka på Granska för att granska distributionskonfigurationen för programmen.

    • Välj det program som ska distribueras.

    • Klicka på Distribuera för att starta distributioner för de valda programmen

      Skärmbild för konfiguration av appdistribution.

    • När programmet har distribuerats kan du klicka på kolumnen Distributionsstatus för att spåra de resurser som har distribuerats för programmet.

Felsöka problem

Om du vill felsöka eventuella problem med verktyget kan du titta på loggfilerna på Windows-datorn som kör verktyget AppContainerisering. Verktygsloggfiler är tillgängliga i mappen C:\ProgramData\Microsoft Azure Migrate App Containerization\Logs .

Nästa steg

  • Containerisera Java-webbappar på Apache Tomcat (på Linux-servrar) och distribuera dem på Linux-containrar i AKS. Läs mer
  • Containerisera ASP.NET webbappar och distribuera dem i Windows-containrar på AKS. Läs mer
  • Containerisera ASP.NET webbappar och distribuera dem i Windows-containrar i Azure App Service. Läs mer