Jämför lösningarna
Vi har gått igenom de vanligaste distributionssätten för Java-appar. Nu ska vi se vilka Azure-tjänster som passar bäst beroende på vilken distributionstyp du behöver.
Azure Container Apps
Azure Container Apps är en hanterad tjänst som kör Docker-containrar.
Azure Container Apps kan köra valfritt Java-program när de paketeras som en Docker-avbildning (inklusive Tomcat,Spring Boot- och Quarkus-program). Att skapa och hantera dessa avbildningar är ditt ansvar (till exempel genom att använda GitHub Actions): det ger dig mycket flexibilitet, men kräver också underhåll.
Det är en kostnadseffektiv och skalbar lösning, vilket gör den till ett bra alternativ för små och medelstora arbetsbelastningar.
För att köra ett containerbaserat monolitiskt Java-program är Azure Container Apps därför det bästa alternativet.
Azure App Service
Azure App Service är en PaaS-lösning (plattform som en tjänst) i 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. Detta gör det till den bästa lösningen för att köra Jakarta EE-program på Azure.
Azure Functions
Azure Functions är den serverlösa plattformen i Azure där du kan köra Java-arbetsbelastningar.
När du ska köra en Java-app i Azure Functions krävs vanligtvis lite enklare konfiguration. Serverlösa funktioner har till sin natur korta livslängder (vanligtvis bara 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 har Azure Functions skräddarsytts för program som behöver mycket skalbarhet. Du kan stoppa dem regelbundet för att minska kostnaderna, och du kan skala upp dem för att hantera hög belastning.
Azure Spring Apps
Azure Spring Apps är en unik Azure-tjänst som tillhandahåller en plattform som en tjänstlösning för att köra Spring Boot-mikrotjänster. Spring Cloud erbjuder ett stort antal verktyg, bland annat ett tjänstregister eller en konfigurationsserver. Du hittar även vissa funktioner för automatisk skalning och säkerhetsmekanismer som avsevärt förenklar användningen av en arkitektur för mikrotjänster som baseras på Spring Boot.
Spring Cloud-erbjudandet skapas och hanteras gemensamt av Microsoft och Broadcom, företaget som bygger Spring Framework. Spring Cloud tillhandahåller stöd för både OS- och JVM-uppdateringar och -korrigeringar som Azure App Service, men även för avancerade Spring-tjänster.
Du kan också använda Azure Spring Apps-tjänsten för att köra andra arbetsbelastningar, till exempel monolitiska Spring Boot-program eller till och med .NET-mikrotjänster som använder Steeltoe, men tjänsten används främst för att köra Spring Boot-mikrotjänster.
Azure Kubernetes Service
Azure Kubernetes Service (AKS) är en hanterad och säker Kubernetes-lösning som tillhandahålls av Azure. Den kan köra alla typer av Docker-avbildningar och drar nytta av att ingå i det övergripande 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 mer direkt kontroll över din miljö. AKS kan även köra Java-arbetsbelastningar effektivt, men du måste skapa och underhålla dina egna Docker-avbildningar.
Virtuella Azure-datorer
Genom att köra virtuella datorer i Azure får du störst flexibilitet och flest 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.
I synnerhet med Java använder du vanligtvis virtuella datorer för att:
- Installera och köra en Java-webbapp manuellt i Windows eller Linux.
- Installera och köra Docker eller till och med AKS för att köra en avbildning som innehåller ett Java-webbprogram.
- Köra Java-webbappar på dina virtuella datorer i något av de erbjudanden som stöds, som Oracle WebLogic.
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 att du behöver underhålla och skydda dem. För virtuella datorer är det här underhållet ditt ansvar.