Bereitstellen von Java-Anwendungen mit Vertrauen und Leichtigkeit

Das Java-Ökosystem umfasst verschiedene Technologien wie Java SE, Jakarta EE (Nachfolger von Java EE und J2EE), Spring, zahlreiche Anwendungsserver und andere Frameworks. Ganz gleich, was Sie mit Java tun – Erstellen einer App, Verwenden eines Frameworks und Ausführen eines Anwendungsservers – Azure-Support Ihre Workload mit einer Fülle von Auswahlmöglichkeiten. Ebenso Azure-Support jede Anwendungsarchitektur – von monolithischen Anwendungen, die auf virtuellen Computern oder in Containern ausgeführt werden, bis hin zu cloudeigenen, mikroservicesbasierten Anwendungen, die auf vollständig verwalteten Diensten ausgeführt werden.

Um Ihre Java-Anwendung auszuführen, stellen Sie sie in der Regel auf einem Anwendungsserver bereit – eine Instanz des virtuellen Java-Computers (JVM), die Ihre Anwendungen ausführt. Sie können auch eine eigenständige Anwendung mit einem eingebetteten Anwendungsserver erstellen. Auf beide Weise bietet der Anwendungsserver allgemeine Anwendungsinfrastruktur und funktionale Funktionen, die zusammenarbeiten mit Webcontainern, um eine dynamische, angepasste Antwort auf eine Clientanforderung zurückzugeben. Die Clientanforderung kann mithilfe von Softwarekomponenten verarbeitet werden, die Servlets, dynamische Seiten, Enterprise-Bohnen, unterstützende Klassen, abhängige Bibliotheken und Datentreiber enthalten können.

Tomcat, JBoss EAP, WildFly, WebLogic und WebSphere sind beliebte Anwendungsserver. Ebenso sind Spring Boot, Quarkus und Open Liberty beliebte Frameworks zum Erstellen eigenständiger Anwendungen mit eingebetteten Anwendungsservern. Azure-Support sie alle, sodass Sie jeden Java-Anwendungsserver verwenden und Ihre Java-Anwendung problemlos bereitstellen können.

Bereitstellen von Spring Boot oder Java-App auf einem beliebigen Anwendungsserver – Tomcat und Jakarta EE

Mit Azure können Sie jede Version und jede Verteilung von Java und jedem Anwendungsserver ohne Einschränkungen ausführen und ohne ihre eigene physische Infrastruktur verwalten zu müssen. Sie entscheiden, wie viel Kontrolle Sie benötigen oder wie viel tägliche Verwaltung Azure für Sie mit Optionen wie virtuellen Computern, Containern und vollständig verwalteten Diensten verarbeiten soll. Wenn Sie kommerziell unterstützte Java-App-Server oder Frameworks verwenden – z. B. VMware Spring Runtime, Red Hat JBoss EAP, Oracle WebLogic Server oder IBM WebSphere, Liberty oder OpenLiberty – bietet Azure gemeinsam entwickelte und unterstützte Angebote für alle an.

Bereitstellungsoptionen

Azure bietet eine Fülle von Bereitstellungsoptionen für Java-Anwendungen, einschließlich Infrastructure-as-a-Service (IaaS), Container-as-a-Service (CaaS) und PaaS-Hostingdienste (Platform-as-a-Service). Sie können vorhandene Java-Anwendungen auf virtuelle Computer (VMs) heben und verschieben, sie auf mehrere Arten containern oder auf vollständig verwaltete PaaS-Dienste bereitstellen, um die Verwaltung, Entwickler- und Betriebsproduktivität und die Gesamtbetriebskosten zu optimieren.

VMs und Container

Sie können jede Verteilung und Version von Java – und alle Anwendungsserver – verwenden, wenn Sie sie auf virtuellen Computern oder Containern in Azure bereitstellen. Die Wahl liegt ganz bei Ihnen. Denken Sie nur daran, dass Sie die Infrastruktur und die zugehörigen Komponenten manuell konfigurieren müssen. Bereitstellungsoptionen, die in diese Kategorie fallen, umfassen:

  • Virtuelle Azure-Computer, die Ihnen die Flexibilität der Virtualisierung bieten, ohne die physische Hardware zu kaufen und zu Standard, die sie ausführt. Sie müssen die VM jedoch weiterhin Standard beibehalten, indem Sie die darauf ausgeführte Software installieren, konfigurieren und patchen.

  • Azure Virtual Machine Scale Sets, mit denen Sie eine Gruppe von virtuellen Computern mit Lastenausgleich erstellen und verwalten können. Die Anzahl von VM-Instanzen kann automatisch erhöht oder verringert werden, wenn sich der Bedarf ändert, oder es kann ein Zeitplan festgelegt werden.

  • Azure Kubernetes Service (AKS), der die Bereitstellung eines verwalteten Kubernetes-Clusters vereinfacht, indem der gesamte Betriebsaufwand für Sie verarbeitet wird – einschließlich kritischer Aufgaben wie Standard tenance und Integritätsüberwachung. AKS unterstützt die elastische Bereitstellung der Kapazität, einschließlich ereignisgesteuerter Autocaling- und KEDA-Trigger.

  • Azure Red Hat OpenShift, das hoch verfügbare, vollständig verwaltete OpenShift-Cluster bei Bedarf bereitstellt. OpenShift bietet Mehrwertfeatures, um Kubernetes zu ergänzen, wodurch es zu einer schlüsselfertigen Containerplattform wird, die eine verbesserte Entwickler- und Operatorerfahrung bietet.

Sie können zwar jede Java-Runtime für alle diese IaaS- und CaaS-Dienste bereitstellen, wir empfehlen jedoch, eine der folgenden Laufzeiten zu verwenden:

Beide Builds sind kostenlos für lokale Entwicklung und Tests sowie für das Erstellen von produktionsbereiten Binärdateien mit beliebigen Plattform- oder DevOps-Tools verfügbar , ohne lizenzgebühren zu müssen. Wir empfehlen ihnen die Einfachheit. Wenn Sie eines dieser Builds verwenden, können Sie ein Azure-Support Ticket ohne weitere Kosten öffnen, wenn Sie Probleme haben und über einen qualifizierenden Supportplan für Azure verfügen. Das heißt, es lohnt sich, darauf hinzuweisen, dass diese Empfehlungen nur das sind - die Optionen, die wir unter verschiedenen anderen frei verfügbaren Builds von OpenJDK für eine einfache Unterstützung empfehlen. Weitere Informationen finden Sie im Artikel zur Java-Unterstützung in Azure und Azure Stack.

Diagramm mit der Überschrift

All diese IaaS- und CaaS-Bereitstellungsoptionen ermöglichen Ihnen die einfache Bereitstellung des Apache Tomcat-Anwendungsservers. Wenn Sie ein kommerzielles Angebot verwenden – z. B. Spring Runtime von VMware, JBoss EAP von Red Hat, WebLogic Server von Oracle oder WebSphere von IBM – bietet Azure gemeinsam entwickelte und unterstützte Hostingoptionen von diesen Anbietern an. Sie werden später unter gemeinsam aufgebauten und unterstützten Lösungen mit Java-Ökosystempartnern behandelt.

Vollständig verwaltete (PaaS)-Dienste

Vollverwaltete PaaS-Dienste für die Ausführung von Java-Anwendungen in Azure umfassen die folgenden Optionen:

  • Azure Spring Apps, die das Bereitstellen von Spring Boot-Anwendungen in Azure vereinfachen – ohne Codeänderungen. Der Dienst verwaltet alle Infrastruktur für Spring Boot-Anwendungen. Diese Infrastruktur umfasst umfassende Überwachung und Diagnose, Konfigurationsverwaltung, Dienstermittlung, Sicherheit, Anwendungslebenszyklus, Veröffentlichungsprotokolle und Metriken, CI/CD-Integration, blaugrüne Bereitstellungen und vieles mehr. Azure Spring Apps, die in Partnerschaft mit Pivotal (jetzt Teil von VMware) entwickelt wurden, werden gemeinsam von Microsoft und VMware betrieben und unterstützt.
  • Azure-App Dienst, ein HTTP-basierter Dienst zum Hosten von Webanwendungen, REST-APIs und mobilen Back-Ends – mit integrierter Sicherheit, Lastenausgleich, AutomatischesCaling und automatisierter Verwaltung. Der App-Dienst unterstützt auch umfassende DevOps-Funktionen wie kontinuierliche Bereitstellung, Paketverwaltung, Stagingumgebungen, benutzerdefinierte Do Standard s und TLS/SSL-Zertifikate.
  • Azure Container Apps, mit denen Sie Microservices und containerisierte Anwendungen auf einer serverlosen Plattform ausführen können. Häufig werden API-Endpunkte bereitgestellt, Hintergrundverarbeitungsanwendungen gehostet, ereignisgesteuerte Verarbeitung verarbeitet und Microservices ausgeführt. Anwendungen, die auf Azure-Container-Apps basieren, können dynamisch basierend auf HTTP-Datenverkehr, ereignisgesteuerter Verarbeitung, CPU oder Arbeitsspeicherlast oder einem KEDA-unterstützten Scaler skaliert werden.

Java-Runtimes für Azure Spring Apps und Azure-App Service werden bereitgestellt und von Microsoft Standard tained. Sie unterstützen nur LTS-Distributionen von OpenJDK mit Eclipse Adoptium Temurin für Java 8 und dem Microsoft Build von OpenJDK für Java 11 und 17. Das heißt, es gibt einige Vorbehalte - z. B. unsere gemeinsam entwickelten und unterstützten Partnerangebote (die später erläutert werden) nutzen ihre eigenen Laufzeiten.

Da Sie für Azure-Container-Apps Ihre eigenen Containerimages aus Quellcode erstellen und verwalten müssen, können Sie die Verteilung und Version von Java – und Anwendungsserver – Ihrer Wahl verwenden.

Serverlose Funktionen

Manchmal benötigen Sie keine gesamte Java-Anwendung. Für die Echtzeitdatenverarbeitung benötigen Sie möglicherweise nur einen kleinen Code, der im Maßstab ausgelöst werden kann – vielleicht durch Millionen und Millionen von Ereignissen. Solche Ereignisse können über Azure Event Hubs erfasst, von ereignisgesteuertem serverlosen Java-Code verarbeitet werden, der in Azure-Funktionen skaliert ausgeführt wird und in einem Datenspeicher wie Azure Cosmos DB gespeichert wird.

Gemeinsam aufgebaute und unterstützte Lösungen mit Java-Ökosystempartnern

Microsoft hat sich mit führenden Anbietern im Java-Ökosystem zusammengetan, um erstklassige Lösungen für die Ausführung von Java auf Azure bereitzustellen – von gemeinsam entwickelten und unterstützten verwalteten Diensten bis hin zu Azure Marketplace-Angeboten für beliebte Java-Anwendungsserver. Wir haben auch beliebte Anwendungsüberwachungstools integriert, die später in dieser Dokumentation behandelt werden.

Diagramm mit der Überschrift

Azure Spring Apps (Pivotal/VMware)

Gemeinsam von Microsoft und Pivotal entwickelt, ist Azure Spring Apps ein vollständig verwalteter Dienst, der viele der häufig auftretenden Herausforderungen für Entwickler, IT-Operatoren und DevOps-Teams löst, wenn Spring Boot-Anwendungen im großen Maßstab ausgeführt werden. Es abstrahiert die Komplexität der Verwaltung der Infrastruktur für die Ausführung von Spring-basierten Anwendungen und Spring Cloud Middleware-Komponenten, sodass Java-Entwickler sich auf ihren Code konzentrieren können, während Azure die dynamische Skalierung, Sicherheitspatches, Compliancestandards, hohe Verfügbarkeit usw. übernimmt.

JBoss EAP (Red Hat)

Red Hat bietet Open-Source-Lösungen für das Unternehmen. Eine solche Lösung ist die JBoss Enterprise Application Platform (EAP), eine beliebte Anwendungsserverplattform, die java EE Certified und Jakarta EE-kompatibel sowohl im Webprofil als auch in der vollständigen Plattform ist. Red Hat ist auch ein Mitwirkender für die Java-StandardsOpenJDK, MicroProfile, Jakarta EE und Aggregationus.

Wir haben uns mit Red Hat zusammengetan, um Die Red Hat JBoss Enterprise Application Platform (EAP) auf Azure-App Service zu liefern– damit Java-Entwickler ihre Jakarta EE-Anwendungen in App Service bereitstellen können, ohne dass ein separates Red Hat-Abonnement oder eine separate Lizenz mit integriertem Support von beiden Unternehmen erforderlich ist. Wir haben auch ähnliche gemeinsame Angebote für JBoss EAP auf Azure-VMs, auf Azure VM Scale Sets und auf Azure RedHat OpenShift (ARO) eingeführt – letzteres auch gemeinsam von Microsoft und Red Hat betrieben.

WebLogic Server (Oracle)

Wir haben uns mit Oracle zusammengetan, um Oracle WebLogic Server (WLS) auf Azure VMs und Oracle WebLogic Server auf Azure Kubernetes Service bereitzustellen. Diese Lösungen erleichtern einfache Migrationen zu Azure, indem Sie Textbausteine automatisieren, z. B. virtuelle Netzwerke/Speicher bereitstellen, Linux-/Java-Ressourcen installieren, WebLogic Server einrichten und Sicherheit mit einer Netzwerksicherheitsgruppe konfigurieren.

WebSphere/Liberty/Open Liberty (IBM)

Wir sind mit IBM zusammengeschlossen, entwickeln gemeinsam Lösungen für WebSphere Application Server (WAS) auf Azure VMs, WebSphere Liberty und Open Liberty auf Azure Kubernetes Service sowie WebSphere Liberty und Open Liberty auf Azure Red Hat OpenShift. Weitere Informationen finden Sie unter Was sind Lösungen zum Ausführen der IBM WebSphere-Produktfamilie auf Azure? Diese Lösungen ermöglichen eine einfache Migration von WebSphere-Workloads zu Azure und automatisieren die meisten Ressourcenbereitstellungsaufgaben, die zum Einrichten eines hochverfügebaren WebSphere-Clusters erforderlich sind. Die Partnerschaft umfasst eine Reihe von Anwendungsfällen – von vorhandenen unternehmenskritischen Workloads bis hin zu cloudeigenen Anwendungen.

Apache Kafka auf Confluent Cloud (Confluent)

In der Vergangenheit mussten Azure-Kunden, die den Kafka-Dienst von Confluent verwenden wollten, Ressourcen und Benutzer separat in Azure und Confluent Cloud erstellen und verwalten. Um diesen Schmerz zu erleichtern, partnereten Confluent und Microsoft apache Kafka für Confluent Cloud, ein Azure Marketplace-Angebot, das Apache Kafka als vollständig verwalteten Dienst bereitstellt – einschließlich der Möglichkeit, Confluent Cloud-Ressourcen über die Azure-Portal, Azure CLI oder Azure Management SDKs zu erstellen und zu verwalten.

Heute ist die Kundenerfahrung einfacher, sicherer und nahtloser. Kunden können Confluent Cloud-Ressourcen zusammen mit ihren Azure-Ressourcen als Teil eines einheitlichen Workflows bereitstellen und verwalten und von vollständig verwalteten Connectors profitieren, die für Azure-Funktionen, Azure Blob Storage, Azure Event Hubs, Azure Data Lake Storage Gen2 und Microsoft SQL Server erstellt wurden. Entwickler können weiterhin coden mit Apache Kafka-Clientbibliotheken.

Zusammenfassung

Die gemeinsame Entwicklung mit Partnern für viele dieser Angebote ist ein kontinuierlicher, kontinuierlicher Aufwand. Da unsere Partner weiterhin innovationen auf ihren Angeboten basieren, arbeiten wir eng mit ihnen zusammen, um diese Innovationen schnell in Azure zu bringen – damit Kunden ihre Java-Anwendungen mit Vertrauen und Leichtigkeit bereitstellen und skalieren können.

Zusammenfassend Azure-Support Ihre Arbeitsauslastung mit einer Fülle von Auswahlmöglichkeiten unabhängig davon, was Sie mit Java tun. Sie können jede Java-App erstellen, ein beliebiges Framework verwenden, einen beliebigen Anwendungsserver ausführen und jede Anwendungsarchitektur unterstützen – von monolithischen Anwendungen, die auf VMs oder in Containern auf cloudneigenen, mikroservicesbasierten Anwendungen ausgeführt werden, die auf vollständig verwalteten Diensten ausgeführt werden.

Diagramm mit der Überschrift

Nächster Schritt

Skalieren mit End-to-End-Sicherheit, Überwachung und Automatisierung