Java-toepassingen met vertrouwen en gemak implementeren
Het Java-ecosysteem omvat diverse technologieën zoals Java SE, Jakarta EE (opvolger van Java EE en J2EE), Spring, talloze toepassingsservers en andere frameworks. Wat u ook doet met Java: een app bouwen, een framework gebruiken en een toepassingsserver uitvoeren, ondersteuning voor Azure uw workload met een overvloed aan keuze. Op dezelfde manier ondersteuning voor Azure elke toepassingsarchitectuur: van monolithische toepassingen die worden uitgevoerd op VM's of in containers naar cloudeigen, microservicestoepassingen die worden uitgevoerd op volledig beheerde services.
Als u uw Java-toepassing doorgaans wilt uitvoeren, implementeert u deze op een toepassingsserver: een exemplaar van de Java Virtual Machine (JVM) waarop uw toepassingen worden uitgevoerd. U kunt ook een zelfstandige toepassing bouwen met een ingesloten toepassingsserver. In beide gevallen biedt de toepassingsserver algemene toepassingsinfrastructuur en functionele mogelijkheden, die samenwerken met webcontainers om een dynamische, aangepaste reactie op een clientaanvraag te retourneren. De clientaanvraag kan worden verwerkt met behulp van softwareonderdelen die mogelijk servlets, dynamische pagina's, enterprise beans, ondersteunende klassen, afhankelijke bibliotheken en gegevensstuurprogramma's bevatten.
Tomcat, JBoss EAP, WildFly, WebLogic en WebSphere zijn populaire toepassingsservers. Op dezelfde manier zijn Spring Boot, Quarkus en Open Liberty populaire frameworks voor het bouwen van zelfstandige toepassingen met ingesloten toepassingsservers. ondersteuning voor Azure ze allemaal, zodat u elke Java-toepassingsserver kunt gebruiken en uw Java-toepassing met vertrouwen en gemak kunt implementeren.
Spring Boot- of Java-app implementeren op elke toepassingsserver - Tomcat en Jakarta EE
Met Azure kunt u elke versie en elke distributie van Java en elke toepassingsserver uitvoeren, zonder beperkingen en zonder dat u uw eigen fysieke infrastructuur hoeft te beheren. U bepaalt hoeveel beheer u wilt, of hoeveel dagelijkse beheer u wilt verwerken door Azure met opties zoals virtuele machines, containers en volledig beheerde services. Als u commercieel ondersteunde Java-app-servers of -frameworks gebruikt, zoals VMware Spring Runtime, Red Hat JBoss EAP, Oracle WebLogic Server of IBM WebSphere, Liberty of OpenLiberty, biedt Azure gezamenlijk ontwikkelde en ondersteunde aanbiedingen voor allemaal.
Implementatieopties
Azure biedt een overvloed aan implementatieopties voor Java-toepassingen, waaronder IaaS-hostingservices (Infrastructure-as-a-Service), Containers-as-a-Service (CaaS) en PaaS-hostingservices (Platform-as-a-Service). U kunt bestaande Java-toepassingen lift-and-shiften naar virtuele machines (VM's), ze op meerdere manieren in een container plaatsen of implementeren op volledig beheerde PaaS-services om het beheer, de ontwikkelaar en de operationele productiviteit en de totale eigendomskosten te optimaliseren.
VM's en containers
U kunt elke distributie en versie van Java en elke toepassingsserver gebruiken wanneer u implementeert op virtuele machines of containers in Azure. De keuze is helemaal aan jou. Vergeet niet dat u de infrastructuur en de bijbehorende onderdelen handmatig moet configureren. Implementatieopties die in deze categorie vallen, zijn onder andere:
Virtuele Azure-machines, die u de flexibiliteit van virtualisatie bieden zonder dat u de fysieke hardware hoeft aan te schaffen en te onderhouden waarop deze wordt uitgevoerd. U moet de virtuele machine echter nog steeds onderhouden door de software te installeren, configureren en patchen die erop wordt uitgevoerd.
Virtuele-machineschaalsets van Azure, waarmee u een groep vm's met gelijke taakverdeling kunt maken en beheren. Het aantal VM-exemplaren kan automatisch toenemen of afnemen in reactie op vraag of een ingesteld schema.
Azure Kubernetes Service (AKS) die het implementeren van een beheerd Kubernetes-cluster vereenvoudigt door alle operationele overhead voor u af te handelen, inclusief kritieke taken zoals onderhoud en statuscontrole. AKS biedt ondersteuning voor het elastisch inrichten van capaciteit, waaronder gebeurtenisgestuurde automatische schaalaanpassing en KEDA-triggers.
Azure Red Hat OpenShift, dat maximaal beschikbare, volledig beheerde OpenShift-clusters op aanvraag biedt. OpenShift biedt toegevoegde waardefuncties om Kubernetes aan te vullen, waardoor het een kant-en-klare containerplatform is dat een verbeterde ervaring voor ontwikkelaars en operatoren biedt.
Hoewel u elke Java-runtime op al deze IaaS- en CaaS-services kunt implementeren, raden we u aan een van de volgende runtimes te gebruiken:
Microsoft Build van OpenJDK voor Java 11 of 17: de basiscontainerinstallatiekopieën waarvoor Microsoft microsoft levert en onderhoudt.
Eclipse Adoptium Temurin voor Java 8: de Java-runtime waarvoor het Eclipse Adoptium-project (voorheen het OpenJDK-project) wordt geleverd.
Beide builds zijn gratis beschikbaar voor lokale ontwikkeling en tests en voor het bouwen van binaire bestanden die gereed zijn voor productie met elk platform of DevOps-hulpprogramma's, zonder dat u licentiekosten hoeft te betalen. We raden ze aan als een kwestie van gemak. Wanneer u een van deze builds gebruikt, als u problemen ondervindt en een in aanmerking komend ondersteuningsplan voor Azure hebt, kunt u een ondersteuning voor Azure ticket openen, zonder meer kosten. Dat gezegd hebbende, het is de moeite waard om erop te wijzen dat deze aanbevelingen alleen dat zijn: de opties die we aanbevelen tussen verschillende vrij beschikbare builds van OpenJDK voor gebruiksgemak. Zie Java-ondersteuning voor Azure en Azure Stack voor meer informatie.
Met al deze IaaS- en CaaS-implementatieopties kunt u eenvoudig de Apache Tomcat-toepassingsserver implementeren. Als u een commerciële aanbieding gebruikt, zoals Spring Runtime van VMware, JBoss EAP van Red Hat, WebLogic Server van Oracle of WebSphere van IBM, biedt Azure ook gezamenlijk ontwikkelde en ondersteunde hostingopties van deze leveranciers. Ze worden later behandeld, onder Gezamenlijk gebouwde en ondersteunde oplossingen met Java-ecosysteempartners.
Volledig beheerde (PaaS)-services
Volledig beheerde PaaS-services voor het uitvoeren van Java-toepassingen in Azure bevatten de volgende opties:
- Azure Container Apps, waarmee u microservices en toepassingen in containers kunt uitvoeren op een serverloos platform. Veelvoorkomende toepassingen zijn het implementeren van API-eindpunten, het hosten van achtergrondverwerkingstoepassingen, het verwerken van gebeurtenisgestuurde verwerking en het uitvoeren van microservices. Toepassingen die zijn gebouwd op Azure Container Apps, kunnen dynamisch worden geschaald op basis van HTTP-verkeer, gebeurtenisgestuurde verwerking, CPU of geheugenbelasting, of een keda-ondersteunde scaler.
- Azure-app Service, een HTTP-service voor het hosten van webtoepassingen, REST API's en mobiele back-ends, met ingebouwde beveiliging, taakverdeling, automatisch schalen en geautomatiseerd beheer. App Service biedt ook ondersteuning voor uitgebreide DevOps-mogelijkheden, zoals continue implementatie, pakketbeheer, faseringsomgevingen, aangepaste domeinen en TLS/SSL-certificaten.
Java-runtimes voor Azure-app Service en voor Azure Container Apps die zijn geïmplementeerd als code of binaire bestanden (JAR/WAR) worden geleverd en onderhouden door Microsoft. Ze ondersteunen alleen LTS-distributies van OpenJDK, met behulp van Eclipse Adoptium Temurin voor Java 8 en de Microsoft Build van OpenJDK voor Java 11 en 17. Dat gezegd hebbende, er zijn enkele opmerkingen: onze gezamenlijk ontwikkelde en ondersteunde partneraanbiedingen (later besproken) maken bijvoorbeeld gebruik van hun eigen runtimes.
Voor Azure Container Apps die zijn gebouwd op basis van uw eigen containerinstallatiekopieën, omdat u uw eigen containerinstallatiekopieën moet bouwen en beheren vanuit broncode, kunt u de distributie en versie van Java en toepassingsserver van uw keuze gebruiken.
Serverloze functies
Soms hebt u geen volledige Java-toepassing nodig. Voor realtime gegevensverwerking hebt u bijvoorbeeld alleen een klein stukje code nodig dat op schaal kan worden geactiveerd, mogelijk door miljoenen en miljoenen gebeurtenissen. Dergelijke gebeurtenissen kunnen worden opgenomen via Azure Event Hubs, verwerkt door serverloze Java-code die op schaal wordt uitgevoerd in Azure Functions, en opgeslagen in een gegevensarchief zoals Azure Cosmos DB.
Gezamenlijk gebouwde en ondersteunde oplossingen met Java-ecosysteempartners
Microsoft werkt samen met toonaangevende leveranciers in het Java-ecosysteem om toonaangevende oplossingen te leveren voor het uitvoeren van Java op Azure, variërend van gezamenlijk ontwikkelde en ondersteunde beheerde services tot Azure Marketplace-aanbiedingen voor populaire Java-toepassingsservers. We hebben ook populaire hulpprogramma's voor toepassingsbewaking geïntegreerd, die verderop in deze documentatie worden behandeld.
JBoss EAP (Red Hat)
Red Hat biedt opensource-oplossingen voor de onderneming. Een dergelijke oplossing is JBoss Enterprise Application Platform (EAP), een populair toepassingsserverplatform dat Java EE Certified en Jakarta EE Compliant is in zowel webprofiel als volledig platform. Red Hat is ook een bijdrager voor de Java-standaarden, OpenJDK, MicroProfile, Jakarta EE en Quarkus.
We hebben samengewerkt met Red Hat om Red Hat JBoss Enterprise Application Platform (EAP) te leveren op Azure-app Service, waardoor Java-ontwikkelaars hun Jakarta EE-toepassingen kunnen implementeren in App Service zonder dat hiervoor een afzonderlijk Red Hat-abonnement of -licentie met geïntegreerde ondersteuning van beide bedrijven nodig is. We hebben ook vergelijkbare gezamenlijke aanbiedingen gelanceerd voor JBoss EAP op Azure-VM's, op Azure VM-schaalsets en op Azure RedHat OpenShift (ARO) - de laatste wordt ook gezamenlijk beheerd door Microsoft en Red Hat.
WebLogic Server (Oracle)
We werken samen met Oracle om Oracle WebLogic Server (WLS) te leveren op Azure-VM's en Oracle WebLogic Server in Azure Kubernetes Service. Deze oplossingen vereenvoudigen eenvoudige migraties naar Azure door standaardbewerkingen te automatiseren, zoals het inrichten van virtuele netwerken/opslag, het installeren van Linux-/Java-resources, het instellen van WebLogic Server en het configureren van beveiliging met een netwerkbeveiligingsgroep.
WebSphere/Liberty/Open Liberty (IBM)
We werken samen met IBM en ontwikkelen gezamenlijk oplossingen voor WebSphere Application Server (WAS) op Azure-VM's, WebSphere Liberty en Open Liberty in Azure Kubernetes Service, en WebSphere Liberty en Open Liberty in Azure Red Hat OpenShift. Zie Wat zijn oplossingen voor het uitvoeren van de IBM WebSphere-serie producten in Azure voor meer informatie? Deze oplossingen maken eenvoudige migratie van WebSphere-workloads naar Azure mogelijk, waarbij de meeste resourceinrichtingstaken die nodig zijn voor het instellen van een maximaal beschikbare WebSphere-cluster, worden geautomatiseerd. Het partnerschap omvat een reeks gebruiksvoorbeelden, van bestaande bedrijfskritieke workloads tot cloudtoepassingen.
Apache Kafka in Confluent Cloud (Confluent)
In het verleden moesten Azure-klanten die de Kafka-service van Confluent wilden gebruiken, resources en gebruikers afzonderlijk maken en beheren in Azure en Confluent Cloud. Om deze pijn te verlichten, werken Confluent en Microsoft samen om Apache Kafka voor Confluent Cloud te leveren, een Azure Marketplace-aanbieding die Apache Kafka als een volledig beheerde service biedt, waaronder de mogelijkheid om Confluent Cloud-resources te maken en te beheren via de Azure-portal, Azure CLI of Azure Management SDK's.
Tegenwoordig is de klantervaring eenvoudiger, veiliger en naadlozer. Klanten kunnen Confluent Cloud-resources inrichten en beheren, samen met hun Azure-resources, als onderdeel van een geïntegreerde werkstroom, en profiteren van volledig beheerde connectors die zijn gebouwd voor Azure Functions, Azure Blob Storage, Azure Event Hubs, Azure Data Lake Storage Gen2 en Microsoft SQL Server. Ontwikkelaars kunnen code blijven gebruiken met behulp van Apache Kafka-clientbibliotheken.
Samenvatting
Gezamenlijke ontwikkeling met partners voor veel van deze aanbiedingen is een doorlopende inspanning. Naarmate onze partners blijven innoveren op hun aanbod, werken we nauw samen met hen om snel dezelfde innovaties naar Azure te brengen, zodat klanten hun Java-toepassingen met vertrouwen en gemak kunnen implementeren en schalen.
Kortom, ondersteuning voor Azure uw workload met een overvloed aan keuze, ongeacht wat u met Java doet. U kunt elke Java-app bouwen, elk framework gebruiken, elke toepassingsserver uitvoeren en elke toepassingsarchitectuur ondersteunen, van monolithische toepassingen die worden uitgevoerd op VM's of in containers tot cloudeigen, microservicestoepassingen die worden uitgevoerd op volledig beheerde services.
Volgende stap
Schalen met end-to-end beveiliging, bewaking en automatisering