Jämför lösningarna

Slutförd

Vi beskrev de vanligaste distributionstyperna för Java-program. Nu ska vi se vilken Azure-tjänst som fungerar bäst, beroende på vilken distributionstyp du behöver.

Azure Container-applikationer

Med Azure Container Apps kan du fokusera på att skapa containerbaserade Java-program, oavsett om de är monolitiska eller mikrotjänster, utan att behöva hantera infrastrukturen. Du kan distribuera JAR, WAR eller till och med källkod, och plattformen optimerar automatiskt minne och skalar dina program baserat på efterfrågan. Den integrerar även avancerade diagnostikfunktioner för JVM-felsökning, vilket säkerställer effektiva prestanda för dina Java-appar.

Dessutom har Azure Container Apps stöd för hanterade Spring-komponenter som Spring Cloud Service Registry och Spring Cloud Config Server, vilket ger sömlös Spring-integrering. Som en del av Azure-ekosystemet kan det hantera företagsarbetsbelastningar med kostnadseffektiv skalning och avancerad minneshantering, vilket gör det idealiskt för både traditionella och moderna programarkitekturer.

Azure App Service

Azure App Service är en PaaS-lösning (plattform som en tjänst) som tillhandahålls av Azure. Den erbjuder en lätthanterad tjänst för att köra Java-webbprogram med automatiska uppdateringar och korrigeringar av virtuella datorer (JVM) för operativsystem och Java samt automatisk skalning eller övervakning.

App Service kan köra valfri körbar JAR-fil, vilket gör den till ett alternativ till Azure Container Apps för att köra enkla Java-monolitiska program.

Den kan också distribuera alla WAR-program ovanpå populära programservrar som Apache Tomcat eller Red Hat JBoss. Den här möjligheten gör det till den bästa lösningen för att köra Jakarta EE-program i Azure.

Azure-funktioner

Azure Functions är den serverlösa plattform som tillhandahålls av Azure och har stöd för körning av Java-arbetsbelastningar.

Att köra en Java-applikation på Azure Functions kräver vanligtvis viss mindre konfiguration och inställning. Till sin natur har serverlösa funktioner korta livslängder (vanligtvis några minuter), så vissa av de tjänster som du traditionellt använder kanske inte är lika effektiva eller praktiska som Azure App Service.

Därför är Azure Functions skräddarsytt för program som behöver en stor mängd skalbarhet. Du kan stoppa dem regelbundet för att minska kostnaderna, och du kan skala upp dem för att svara på höga belastningar.

Azure Kubernetes Service

Azure Kubernetes Service (AKS) är en hanterad och skyddad Kubernetes-lösning som tillhandahålls av Azure. Den kan köra alla Docker-avbildningar och den drar nytta av att tillhöra hela Kubernetes-ekosystemet. AKS fungerar bra om du vill leverera molnbaserade program på valfritt språk, inklusive Java.

Azure Kubernetes Service är en bra lösning om du har heterogena arbetsbelastningar eller om du vill ha exakt kontroll över din miljö. AKS kör Java-arbetsbelastningar bra, men du måste skapa och underhålla Dina Docker-avbildningar.

Azure-VM:er

Om du kör virtuella datorer i Azure får du största möjliga flexibilitet och många olika alternativ. Du kan välja mellan flera operativsystem, vanligtvis Windows och de viktigaste Linux-distributionerna. Du kan ta med din egen programvara eller använda några av de bilder som tillhandahålls.

Specifikt för Java använder du främst virtuella datorer för att:

  • Installera och kör ett Java-webbprogram manuellt ovanpå Windows eller Linux.
  • Installera och kör Docker eller till och med AKS för att köra en konfigurationsfil som innehåller en Java-webbapplikation.
  • Använd ett av de erbjudanden som stöds, till exempel Oracle WebLogic, för att köra Java-webbprogram på dina virtuella datorer.

När du använder virtuella Azure-datorer finns det ingen gräns för vad du kan installera och köra eftersom du har fullständig kontroll över dem. Den största nackdelen med virtuella datorer är dock att du behöver underhålla och skydda dem. För virtuella datorer är det här underhållsarbetet ditt ansvar.