Distribuera Java-program med säkerhet och enkelhet
Java-ekosystemet innehåller olika tekniker som Java SE, Jakarta EE (efterföljare till Java EE och J2EE), Spring, många programservrar och andra ramverk. Vad du än gör med Java – att skapa en app, använda ett ramverk och köra en programserver – Azure Support din arbetsbelastning med ett överflöd av val. På samma sätt Azure Support alla programarkitekturer – från monolitiska program som körs på virtuella datorer eller i containrar till molnbaserade mikrotjänstbaserade program som körs på fullständigt hanterade tjänster.
För att köra Java-programmet distribuerar du det vanligtvis till en programserver – en instans av den virtuella Java-datorn (JVM) som kör dina program. Eller så kan du skapa ett fristående program med en inbäddad programserver. Hur som helst tillhandahåller programservern gemensam programinfrastruktur och funktionella funktioner och samarbetar med webbcontainrar för att returnera ett dynamiskt, anpassat svar på en klientbegäran. Klientbegäran kan bearbetas med hjälp av programvarukomponenter som kan innehålla servletar, dynamiska sidor, företagsbönor, stödklasser, beroende bibliotek och datadrivrutiner.
Tomcat, JBoss EAP, WildFly, WebLogic och WebSphere är populära programservrar. På samma sätt är Spring Boot, Quarkus och Open Liberty populära ramverk för att skapa fristående program med inbäddade programservrar. Azure Support dem alla, så att du kan använda valfri Java-programserver och distribuera Java-programmet med säkerhet och lätthet.
Distribuera Spring Boot- eller Java-app till valfri programserver – Tomcat och Jakarta EE
Med Azure kan du köra valfri version och distribution av Java och valfri programserver, utan begränsningar, och utan att behöva hantera din egen fysiska infrastruktur. Du bestämmer hur mycket kontroll du vill ha eller hur mycket daglig hantering du vill att Azure ska hantera åt dig med alternativ som virtuella datorer, containrar och fullständigt hanterade tjänster. Om du använder java-appservrar eller ramverk som stöds kommersiellt – till exempel VMware Spring Runtime, Red Hat JBoss EAP, Oracle WebLogic Server eller IBM WebSphere, Liberty eller OpenLiberty – erbjuder Azure gemensamt utvecklade och stödda erbjudanden för alla.
Distribueringsalternativ
Azure tillhandahåller ett överflöd av distributionsalternativ för Java-program, inklusive IaaS (infrastructure-as-a-service), containrar som en tjänst (CaaS) och paaS-värdtjänster (plattform som en tjänst). Du kan lyfta och flytta befintliga Java-program till virtuella datorer (VM), containerisera dem på flera sätt eller distribuera dem till fullständigt hanterade PaaS-tjänster för att optimera enkel hantering, utvecklare och driftproduktivitet samt total ägandekostnad.
Virtuella datorer och containrar
Du kan använda valfri distribution och version av Java – och valfri programserver – när du distribuerar till virtuella datorer eller containrar i Azure. Valet är helt upp till dig. Kom bara ihåg att du måste konfigurera infrastrukturen och dess komponenter manuellt. Distributionsalternativ som ingår i den här kategorin är:
Azure Virtual Machines, som ger dig flexibiliteten i virtualisering utan att behöva köpa och underhålla den fysiska maskinvara som kör den. Du behöver dock fortfarande underhålla den virtuella datorn genom att installera, konfigurera och korrigera programvaran som körs på den.
Skalningsuppsättningar för virtuella Azure-datorer, som gör att du kan skapa och hantera en grupp med belastningsutjämning av virtuella datorer. Antalet VM-instanser kan automatiskt öka eller minska som svar på efterfrågan eller ett definierat schema.
Azure Kubernetes Service (AKS) som förenklar distributionen av ett hanterat Kubernetes-kluster genom att hantera alla driftkostnader för dig – inklusive kritiska uppgifter som underhåll och hälsoövervakning. AKS stöder elastisk etablering av kapacitet, inklusive händelsedriven autoskalning och KEDA-utlösare.
Azure Red Hat OpenShift, som tillhandahåller fullständigt hanterade OpenShift-kluster med hög tillgänglighet på begäran. OpenShift levererar mervärdesfunktioner som komplement till Kubernetes, vilket gör det till en nyckelfärdig containerplattform som ger bättre utvecklar- och operatörsupplevelse.
Du kan distribuera valfri Java-körning på alla dessa IaaS- och CaaS-tjänster, men vi rekommenderar att du använder någon av följande körningar:
Microsoft Build of OpenJDK för Java 11 eller 17 – de grundläggande containeravbildningar som Microsoft tillhandahåller och underhåller för.
Eclipse Adoptium Temurin för Java 8 – Java-körningen som tillhandahålls av Eclipse Adoptium-projektet (tidigare OpenJDK-projektet).
Båda dessa versioner är tillgängliga kostnadsfritt för lokal utveckling och testning, och för att skapa produktionsklara binärfiler med valfri plattform eller DevOps-verktyg – utan att behöva betala några licensavgifter. Vi rekommenderar dem som en bekvämlighetsfråga. Om du använder någon av dessa versioner, om du har några problem och har en kvalificerande supportplan för Azure, kan du öppna en Azure Support biljett – utan mer kostnader. Som sagt, det är värt att påpeka att dessa rekommendationer är just det - de alternativ som vi rekommenderar bland olika andra fritt tillgängliga versioner av OpenJDK för enkel support. Mer information finns i Java-stöd i Azure och Azure Stack.
Med alla dessa IaaS- och CaaS-distributionsalternativ kan du enkelt distribuera Apache Tomcat-programservern. Om du använder ett kommersiellt erbjudande – till exempel Spring Runtime från VMware, JBoss EAP från Red Hat, WebLogic Server från Oracle eller WebSphere från IBM – erbjuder Azure även gemensamt utvecklade och stödda värdalternativ från dessa leverantörer. De beskrivs senare under Gemensamt byggda och stödda lösningar med Java-ekosystempartners.
Fullständigt hanterade (PaaS)-tjänster
Fullständigt hanterade PaaS-tjänster för att köra Java-program i Azure innehåller följande alternativ:
- Azure Container Apps, där du kan köra mikrotjänster och containerbaserade program på en serverlös plattform. Vanliga användningsområden är att distribuera API-slutpunkter, vara värd för program för bakgrundsbearbetning, hantera händelsedriven bearbetning och köra mikrotjänster. Program som bygger på Azure Container Apps kan skalas dynamiskt baserat på HTTP-trafik, händelsedriven bearbetning, PROCESSOR- eller minnesbelastning eller alla KEDA-skalningsprogram som stöds.
- Azure App Service, en HTTP-baserad tjänst för värd för webbprogram, REST-API:er och mobila serverdelar – med inbyggd säkerhet, belastningsutjämning, automatisk skalning och automatiserad hantering. App Service stöder även omfattande DevOps-funktioner, till exempel kontinuerlig distribution, pakethantering, mellanlagringsmiljöer, anpassade domäner och TLS/SSL-certifikat.
Java-körningar för Azure App Service och för Azure Container Apps som distribueras som kod eller binärfiler (JAR/WAR) tillhandahålls och underhålls av Microsoft. De stöder endast LTS-distributioner av OpenJDK med Eclipse Adoptium Temurin för Java 8 och Microsoft Build of OpenJDK för Java 11 och 17. Som sagt, det finns vissa varningar - till exempel använder våra gemensamt utvecklade och stödda partnererbjudanden (som diskuteras senare) sina egna körningar.
För Azure Container Apps som skapats från dina egna containeravbildningar, eftersom du behöver skapa och hantera dina egna containeravbildningar från källkod, kan du använda valfri distribution och version av Java – och programservern .
Serverlösa funktioner
Ibland behöver du inte ett helt Java-program. För databearbetning i realtid kanske du bara behöver en liten kod som kan utlösas i stor skala – kanske av miljontals händelser. Sådana händelser kan matas in via Azure Event Hubs, bearbetas av händelsedriven serverlös Java-kod som körs i stor skala i Azure Functions och sparas i ett datalager som Azure Cosmos DB.
Gemensamt byggda och stödda lösningar med Java-ekosystempartner
Microsoft har samarbetat med ledande leverantörer i Java-ekosystemet för att leverera förstklassiga lösningar för att köra Java på Azure – allt från gemensamt utvecklade och stödda hanterade tjänster till Azure Marketplace-erbjudanden för populära Java-programservrar. Vi har också integrerat populära programövervakningsverktyg, som beskrivs senare i den här dokumentationen.
JBoss EAP (Red Hat)
Red Hat tillhandahåller lösningar med öppen källkod för företaget. En sådan lösning är JBoss Enterprise Application Platform (EAP), en populär programserverplattform som är Java EE-certifierad och Jakarta EE-kompatibel i både webbprofil och fullständig plattform. Red Hat är också deltagare i Java-standarder , OpenJDK, MicroProfile, Jakarta EE och Quarkus.
Vi samarbetade med Red Hat för att leverera Red Hat JBoss Enterprise Application Platform (EAP) på Azure App Service – så att Java-utvecklare kan distribuera sina Jakarta EE-program till App Service utan att kräva en separat Red Hat-prenumeration eller licens med integrerad support från båda företagen. Vi har också lanserat liknande gemensamma erbjudanden för JBoss EAP på virtuella Azure-datorer, på Skalningsuppsättningar för virtuella Azure-datorer och på Azure RedHat OpenShift (ARO) – den senare drivs också gemensamt av Microsoft och Red Hat.
WebLogic Server (Oracle)
Vi samarbetade med Oracle för att leverera Oracle WebLogic Server (WLS) på virtuella Azure-datorer och Oracle WebLogic Server i Azure Kubernetes Service. De här lösningarna underlättar enkel migrering till Azure genom att automatisera pannplåtsåtgärder som att etablera virtuella nätverk/lagring, installera Linux-/Java-resurser, konfigurera WebLogic Server och konfigurera säkerhet med en nätverkssäkerhetsgrupp.
WebSphere/Liberty/Open Liberty (IBM)
Vi samarbetade med IBM och utvecklade gemensamt lösningar för WebSphere Application Server (WAS) på virtuella Azure-datorer, WebSphere Liberty och Open Liberty på Azure Kubernetes Service samt WebSphere Liberty och Open Liberty på Azure Red Hat OpenShift. Mer information finns i Vad är lösningar för att köra IBM WebSphere-serien med produkter i Azure? De här lösningarna möjliggör enkel migrering av WebSphere-arbetsbelastningar till Azure, vilket automatiserar de flesta av de resursetableringsuppgifter som krävs för att konfigurera ett WebSphere-kluster med hög tillgänglighet. Partnerskapet omfattar en rad olika användningsfall – från befintliga verksamhetskritiska arbetsbelastningar till molnbaserade program.
Apache Kafka på Confluent Cloud (Confluent)
Tidigare var Azure-kunder som ville använda Confluents Kafka-tjänst tvungna att skapa och hantera resurser och användare separat i Azure och Confluent Cloud. För att lindra den här smärtan samarbetade Confluent och Microsoft för att leverera Apache Kafka for Confluent Cloud, ett Azure Marketplace-erbjudande som tillhandahåller Apache Kafka som en fullständigt hanterad tjänst , inklusive möjligheten att skapa och hantera Confluent Cloud-resurser via Azure Portal, Azure CLI eller Azure Management SDK:er.
Idag är kundupplevelsen enklare, säkrare och smidigare. Kunder kan etablera och hantera Confluent Cloud-resurser tillsammans med sina Azure-resurser som en del av ett enhetligt arbetsflöde – och dra nytta av fullständigt hanterade anslutningsappar som skapats för Azure Functions, Azure Blob Storage, Azure Event Hubs, Azure Data Lake Storage Gen2 och Microsoft SQL Server. Utvecklare kan fortsätta att koda med apache Kafka-klientbibliotek.
Sammanfattning
Gemensam utveckling med partners för många av dessa erbjudanden är en kontinuerlig, pågående insats. När våra partner fortsätter att förnya sina erbjudanden har vi ett nära samarbete med dem för att snabbt få samma innovationer till Azure – så att kunderna kan distribuera och skala sina Java-program med säkerhet och lätthet.
Sammanfattningsvis Azure Support din arbetsbelastning med ett överflöd av val oavsett vad du gör med Java. Du kan skapa valfri Java-app, använda valfritt ramverk, köra valfri programserver och stödja alla programarkitekturer – från monolitiska program som körs på virtuella datorer eller i containrar till molnbaserade mikrotjänstbaserade program som körs på fullständigt hanterade tjänster.
Gå vidare
Skala med säkerhet, övervakning och automatisering från slutpunkt till slutpunkt