Łatwe wdrażanie aplikacji Java

Ekosystem Java obejmuje różne technologie, takie jak Java SE, Jakarta EE (następca java EE i J2EE), Spring, wiele serwerów aplikacji i innych platform. Niezależnie od tego, co robisz z językiem Java— tworzenie aplikacji, korzystanie ze struktury i uruchamianie serwera aplikacji — pomoc techniczna platformy Azure obciążenia z dużą ilością wyboru. Podobnie pomoc techniczna platformy Azure dowolną architekturę aplikacji — od aplikacji monolitycznych działających na maszynach wirtualnych lub w kontenerach po natywne dla chmury aplikacje oparte na mikrousługach działających w pełni zarządzanych usług.

Zazwyczaj w celu uruchomienia aplikacji Java należy wdrożyć ją na serwerze aplikacji — wystąpieniu maszyny wirtualnej Java (JVM) uruchamianej przez aplikacje. Możesz też utworzyć aplikację autonomiczną z osadzonym serwerem aplikacji. Tak czy inaczej, serwer aplikacji zapewnia wspólną infrastrukturę aplikacji i funkcje, współpracując z kontenerami sieci Web w celu zwrócenia dynamicznej, dostosowanej odpowiedzi na żądanie klienta. Żądanie klienta można przetworzyć przy użyciu składników oprogramowania, które mogą obejmować serwlety, strony dynamiczne, fasolę przedsiębiorstwa, klasy pomocnicze, biblioteki zależne i sterowniki danych.

Tomcat, JBoss EAP, WildFly, WebLogic i WebSphere to popularne serwery aplikacji. Podobnie platforma Spring Boot, Quarkus i Open Liberty to popularne struktury do tworzenia autonomicznych aplikacji z osadzonymi serwerami aplikacji. pomoc techniczna platformy Azure je wszystkie, umożliwiając korzystanie z dowolnego serwera aplikacji Java i wdrażanie aplikacji Java z pewnością i łatwo.

Wdrażanie aplikacji Spring Boot lub Java na dowolnym serwerze aplikacji — Tomcat i Jakarta EE

Za pomocą platformy Azure można uruchamiać dowolną wersję i dowolną dystrybucję języka Java i dowolnego serwera aplikacji, bez ograniczeń i bez konieczności zarządzania własną infrastrukturą fizyczną. Decydujesz, ile chcesz kontrolować lub ile chcesz zarządzać na co dzień, platforma Azure ma obsługiwać za Ciebie opcje, takie jak maszyny wirtualne, kontenery i w pełni zarządzane usługi. Jeśli używasz komercyjnie obsługiwanych serwerów aplikacji Java lub struktur — takich jak VMware Spring Runtime, Red Hat JBoss EAP, Oracle WebLogic Server lub IBM WebSphere, Liberty lub OpenLiberty — oferty platformy Azure wspólnie opracowane i obsługiwane dla wszystkich z nich.

Opcje wdrażania

Platforma Azure oferuje mnóstwo opcji wdrażania dla aplikacji Java, w tym usług hostingowych typu infrastruktura jako usługa (IaaS), kontenery jako usługa (CaaS) i usługi typu "platforma jako usługa" (PaaS). Istniejące aplikacje Java można przenosić na maszyny wirtualne, konteneryzować je na wiele sposobów lub wdrażać je w w pełni zarządzanych usługach PaaS, aby zoptymalizować łatwość zarządzania, dewelopera i wydajności operacyjnej oraz całkowity koszt posiadania.

Maszyny wirtualne i kontenery

Możesz używać dowolnej dystrybucji i wersji języka Java — i dowolnego serwera aplikacji — podczas wdrażania na maszynach wirtualnych lub kontenerach na platformie Azure. Wybór jest całkowicie do Ciebie. Pamiętaj tylko, że należy ręcznie skonfigurować infrastrukturę i jej składniki. Opcje wdrażania, które należą do tej kategorii, obejmują:

  • Usługa Azure Virtual Machines, która zapewnia elastyczność wirtualizacji bez konieczności kupowania i konserwacji fizycznego sprzętu, który go uruchamia. Jednak nadal musisz zachować maszynę wirtualną, instalując, konfigurując i stosując poprawki oprogramowania, na którym działa.

  • Zestawy skalowania maszyn wirtualnych platformy Azure, które umożliwiają tworzenie grupy maszyn wirtualnych o zrównoważonym obciążeniu i zarządzanie nimi. Liczba wystąpień maszyn wirtualnych może automatycznie zwiększać się lub zmniejszać w reakcji na zapotrzebowanie lub według zdefiniowanego harmonogramu.

  • Usługa Azure Kubernetes Service (AKS), która upraszcza wdrażanie zarządzanego klastra Kubernetes przez obsługę wszystkich obciążeń operacyjnych — w tym krytycznych zadań, takich jak monitorowanie konserwacji i kondycji. Usługa AKS obsługuje elastyczną aprowizację pojemności, w tym wyzwalacze automatycznego skalowania opartego na zdarzeniach i KEDA.

  • Azure Red Hat OpenShift, która zapewnia wysoce dostępne, w pełni zarządzane klastry OpenShift na żądanie. Platforma OpenShift udostępnia funkcje o wartości dodanej, aby uzupełnić platformę Kubernetes, dzięki czemu jest to gotowa do użycia platforma kontenerów, która zapewnia ulepszone środowisko deweloperów i operatorów.

Chociaż można wdrożyć dowolne środowisko uruchomieniowe Java we wszystkich tych usługach IaaS i CaaS, zalecamy użycie jednego z następujących środowisk uruchomieniowych:

Oba te kompilacje są dostępne bezpłatnie dla lokalnego programowania i testowania oraz do tworzenia plików binarnych gotowych do produkcji przy użyciu dowolnej platformy lub narzędzi DevOps — bez konieczności płacenia żadnych opłat licencyjnych. Zalecamy je jako sprawę wygody. Jeśli używasz jednej z tych kompilacji, jeśli masz jakiekolwiek problemy i masz kwalifikujący się plan pomocy technicznej dla platformy Azure, możesz otworzyć bilet pomoc techniczna platformy Azure — bez dodatkowych kosztów. To znaczy, że warto podkreślić, że te zalecenia są tylko takie - opcje, które zalecamy wśród różnych bezpłatnych dostępnych kompilacji OpenJDK w celu ułatwienia obsługi. Aby uzyskać więcej informacji, zobacz Obsługa języka Java na platformie Azure i w usłudze Azure Stack.

Diagram z nagłówkiem

Wszystkie te opcje wdrażania IaaS i CaaS umożliwiają łatwe wdrażanie serwera aplikacji Apache Tomcat. Jeśli korzystasz z oferty komercyjnej — takiej jak Spring Runtime z oprogramowania VMware, JBoss EAP z oprogramowania Red Hat, WebLogic Server from Oracle lub WebSphere firmy IBM — platforma Azure oferuje wspólnie opracowane i obsługiwane opcje hostingu od tych dostawców. Zostaną one omówione później w obszarze Wspólne kompilowane i obsługiwane rozwiązania z partnerami ekosystemu Java.

W pełni zarządzane (PaaS) usługi

W pełni zarządzane usługi PaaS do uruchamiania aplikacji Java na platformie Azure obejmują następujące opcje:

  • Usługa Azure Spring Apps ułatwia wdrażanie aplikacji Spring Boot na platformie Azure bez żadnych zmian w kodzie. Usługa zarządza całą infrastrukturą aplikacji Spring Boot. Ta infrastruktura obejmuje kompleksowe monitorowanie i diagnostykę, zarządzanie konfiguracją, odnajdywanie usług, zabezpieczenia, cykl życia aplikacji, publikowanie dzienników i metryk, integrację ciągłej integracji/ciągłego wdrażania, wdrożenia blue-green i nie tylko. Opracowany we współpracy z rozwiązaniem Pivotal (obecnie częścią oprogramowania VMware), usługa Azure Spring Apps jest wspólnie obsługiwana i obsługiwana przez firmy Microsoft i VMware.
  • aplikacja systemu Azure Service, oparta na protokole HTTP usługa do hostowania aplikacji internetowych, interfejsów API REST i zapleczy mobilnych — z wbudowanymi zabezpieczeniami, równoważeniem obciążenia, skalowaniem automatycznym i automatycznym zarządzaniem. Usługa App Service obsługuje również kompleksowe funkcje metodyki DevOps, takie jak ciągłe wdrażanie, zarządzanie pakietami, środowiska przejściowe, domeny niestandardowe i certyfikaty TLS/SSL.
  • Usługa Azure Container Apps, która umożliwia uruchamianie mikrousług i konteneryzowanych aplikacji na platformie bezserwerowej. Typowe zastosowania obejmują wdrażanie punktów końcowych interfejsu API, hostowanie aplikacji przetwarzania w tle, obsługę przetwarzania sterowanego zdarzeniami i uruchamianie mikrousług. Aplikacje utworzone w usłudze Azure Container Apps mogą dynamicznie skalować na podstawie ruchu HTTP, przetwarzania sterowanego zdarzeniami, procesora CPU lub obciążenia pamięci lub dowolnego obsługiwanego modułu skalowania KEDA.

Środowiska uruchomieniowe Języka Java dla usługi Azure Spring Apps i usługi aplikacja systemu Azure są dostarczane i obsługiwane przez firmę Microsoft. Obsługują one tylko dystrybucje LTS zestawu OpenJDK przy użyciu środowiska Eclipse Adoptium Temurin dla języka Java 8 i zestawu Microsoft Build zestawu OpenJDK dla języka Java 11 i 17. Oznacza to, że istnieją pewne zastrzeżenia — na przykład nasze wspólnie opracowane i obsługiwane oferty partnerskie (omówione w dalszej części) korzystają z własnych środowisk uruchomieniowych.

W przypadku usługi Azure Container Apps, ponieważ musisz tworzyć własne obrazy kontenerów i zarządzać nimi z poziomu kodu źródłowego, możesz korzystać z dystrybucji i wersji języka Java — i serwera aplikacji — wybranej przez Ciebie.

Funkcje bezserwerowe

Czasami nie potrzebujesz całej aplikacji Java. Na przykład w przypadku przetwarzania danych w czasie rzeczywistym może być potrzebny tylko mały fragment kodu, który może zostać wyzwolony na dużą skalę — być może przez miliony i miliony zdarzeń. Takie zdarzenia można pozyskiwać za pośrednictwem usługi Azure Event Hubs, przetwarzane przez bezserwerowy kod Java oparty na zdarzeniach działający na dużą skalę w usłudze Azure Functions i zapisywany w magazynie danych, takim jak usługa Azure Cosmos DB.

Wspólne kompilowane i obsługiwane rozwiązania z partnerami ekosystemu Java

Firma Microsoft współpracuje z wiodącymi dostawcami w ekosystemie Java, aby dostarczać najlepsze w klasie rozwiązania do uruchamiania języka Java na platformie Azure — począwszy od wspólnie opracowanych i obsługiwanych usług zarządzanych po oferty witryny Azure Marketplace dla popularnych serwerów aplikacji Java. Zintegrowaliśmy również popularne narzędzia do monitorowania aplikacji, które zostały omówione w dalszej części tej dokumentacji.

Diagram z nagłówkiem

Azure Spring Apps (Pivotal/VMware)

Wspólnie opracowane przez firmę Microsoft i Pivotal usługa Azure Spring Apps to w pełni zarządzana usługa, która rozwiązuje wiele typowych wyzwań, przed którymi stoją deweloperzy, operatorzy IT i zespoły DevOps podczas uruchamiania aplikacji Spring Boot na dużą skalę. Abstrahuje to od złożoności zarządzania infrastrukturą do uruchamiania aplikacji opartych na platformie Spring i składników oprogramowania pośredniczącego Spring Cloud, dzięki czemu deweloperzy języka Java mogą skupić się na swoim kodzie, pozwalając platformie Azure dbać o dynamiczne skalowanie, poprawki zabezpieczeń, standardy zgodności, wysoką dostępność itd.

JBoss EAP (Red Hat)

Firma Red Hat udostępnia rozwiązania typu open source dla przedsiębiorstwa. Jednym z takich rozwiązań jest platforma JBoss Enterprise Application Platform (EAP), popularna platforma serwera aplikacji, która jest certyfikowana w języku Java EE i Zgodne ze standardem Jakarta EE zarówno w profilu internetowym, jak i na pełnej platformie. Red Hat jest również współautorem standardów Java , OpenJDK, MicroProfile, Jakarta EE i Quarkus.

Nawiązaliśmy współpracowaliśmy z platformą Red Hat JBoss Enterprise Application Platform (EAP) w usłudze aplikacja systemu Azure — umożliwiając deweloperom języka Java wdrażanie aplikacji Dżakarta EE w usłudze App Service bez konieczności posiadania oddzielnej subskrypcji lub licencji Red Hat ze zintegrowaną obsługą obu firm. Uruchomiliśmy również podobne wspólne oferty dla oprogramowania JBoss EAP na maszynach wirtualnych platformy Azure, w usłudze Azure VM Scale Sets i w usłudze Azure RedHat OpenShift (ARO) — te ostatnie również wspólnie obsługiwane przez firmy Microsoft i Red Hat.

Serwer WebLogic (Oracle)

Nawiązaliśmy współpracowaliśmy z bazą danych Oracle w celu dostarczania serwera Oracle WebLogic Server (WLS) na maszynach wirtualnych platformy Azure i w programie Oracle WebLogic Server w usłudze Azure Kubernetes Service. Te rozwiązania ułatwiają łatwe migracje na platformę Azure, automatyzując operacje kociołowe, takie jak aprowizowanie sieci wirtualnych/magazynu, instalowanie zasobów systemu Linux/Java, konfigurowanie serwera WebLogic i konfigurowanie zabezpieczeń za pomocą sieciowej grupy zabezpieczeń.

WebSphere/Liberty/Open Liberty (IBM)

Nawiązaliśmy współpracowaliśmy z firmą IBM, wspólnie opracowując rozwiązania dla serwera Aplikacji WebSphere (WAS) na maszynach wirtualnych platformy Azure, w usługach WebSphere Liberty i Open Liberty w usłudze Azure Kubernetes Service oraz webSphere Liberty i Open Liberty w usłudze Azure Red Hat OpenShift. Aby uzyskać więcej informacji, zobacz Co to są rozwiązania do uruchamiania rodziny produktów IBM WebSphere na platformie Azure? Te rozwiązania umożliwiają łatwą migrację obciążeń WebSphere na platformę Azure, automatyzując większość zadań aprowizacji zasobów wymaganych do skonfigurowania klastra WebSphere o wysokiej dostępności. Partnerstwo obejmuje szereg przypadków użycia — od istniejących obciążeń o znaczeniu krytycznym do aplikacji natywnych dla chmury.

Platforma Apache Kafka w chmurze Confluent (Confluent)

W przeszłości klienci platformy Azure, którzy chcieli korzystać z usługi Kafka platformy Confluent, musieli utworzyć zasoby i użytkowników oraz zarządzać nimi oddzielnie na platformie Azure i w chmurze Confluent. Aby rozwiązać ten problem, firma Confluent i firma Microsoft nawiązali akcję partnerską w celu dostarczania platformy Apache Kafka dla platformy Confluent Cloud, oferty witryny Azure Marketplace, która udostępnia platformę Apache Kafka jako w pełni zarządzaną usługę — w tym możliwość tworzenia zasobów platformy Confluent Cloud i zarządzania nimi za pośrednictwem witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub zestawów SDK zarządzania platformą Azure.

Obecnie środowisko klienta jest prostsze, bezpieczniejsze i bardziej bezproblemowe. Klienci mogą aprowizować zasoby chmury Confluent i zarządzać nimi wraz z zasobami platformy Azure w ramach ujednoliconego przepływu pracy — i korzystać z w pełni zarządzanych łączników utworzonych dla usług Azure Functions, Azure Blob Storage, Azure Event Hubs, Azure Data Lake Storage Gen2 i Microsoft SQL Server. Deweloperzy mogą nadal kodować przy użyciu bibliotek klienckich platformy Apache Kafka.

Podsumowanie

Wspólny rozwój z partnerami dla wielu z tych ofert to ciągły, ciągły wysiłek. Ponieważ nasi partnerzy nadal wprowadzają innowacje w swoich ofertach, ściśle współpracujemy z nimi, aby szybko wprowadzić te same innowacje na platformę Azure — dzięki czemu klienci mogą wdrażać i skalować swoje aplikacje Java z ufnością i łatwością.

Podsumowując, pomoc techniczna platformy Azure obciążenia z dużą ilością wyboru niezależnie od tego, co robisz z językiem Java. Możesz utworzyć dowolną aplikację Java, użyć dowolnej platformy, uruchomić dowolny serwer aplikacji i obsługiwać dowolną architekturę aplikacji — od aplikacji monolitycznych działających na maszynach wirtualnych lub w kontenerach po aplikacje oparte na mikrousługach opartych na chmurze działające w pełni zarządzanych usługach.

Diagram z nagłówkiem

Następny krok

Skalowanie przy użyciu kompleksowego zabezpieczeń, monitorowania i automatyzacji