自信且輕鬆部署Java應用程式
Java 生態系統包含各種技術,例如 Java SE、Jakarta EE(Java EE 和 J2EE 的後續任務)、Spring、許多應用程式伺服器和其他架構。 無論您在 Java 上做什麼 - 使用架構建置應用程式,以及執行應用程式伺服器 ,Azure 支援 您工作負載的豐富選擇。 同樣地,Azure 支援 任何應用程式架構 - 從在 VM 或容器中執行的整合型應用程式,到在完全受控服務上執行的雲端原生微服務型應用程式。
一般而言,若要執行 Java 應用程式,您可以將它部署至應用程式伺服器-執行應用程式的 Java 虛擬機實例。 或者,您可以使用內嵌的應用程式伺服器來建置獨立應用程式。 無論哪種方式,應用程式伺服器都提供常見的應用程式基礎結構和功能功能,與 Web 容器共同作業以傳回用戶端要求的動態自定義回應。 用戶端要求可以使用可能包含 servlet、動態頁面、企業豆類、支援類別、相依連結庫和數據驅動程式的軟體元件來處理。
Tomcat、JBoss EAP、WildFly、WebLogic 和 WebSphere 是熱門的應用程式伺服器。 同樣地,Spring Boot、Quarkus 和 Open Liberty 是使用內嵌應用程式伺服器建置獨立應用程式的常用架構。 Azure 支援 全部,讓您能夠使用任何 Java 應用程式伺服器,並放心地部署 Java 應用程式。
將 Spring Boot 或 Java 應用程式部署到任何應用程式伺服器 - Tomcat 和 Jakarta EE
使用 Azure,您可以執行任何版本和任何 Java 和任何應用程式伺服器散發,而不需要管理您自己的實體基礎結構。 您可以使用虛擬機、容器和完全受控服務等選項,決定您想要讓 Azure 處理多少控制,或想要讓 Azure 處理多少日常管理。 如果您使用商業支援的 Java 應用程式伺服器或架構 -- 例如 VMware Spring Runtime、Red Hat JBoss EAP、Oracle WebLogic Server 或 IBM WebSphere、Liberty 或 OpenLiberty - Azure 會針對所有伺服器共同開發及支援供應專案。
部署選項
Azure 提供大量 Java 應用程式的部署選項,包括基礎結構即服務 (IaaS)、容器即服務 (CaaS)和平臺即服務 (PaaS) 裝載服務。 您可以將現有的 Java 應用程式隨即轉移至虛擬機器(VM),以多種方式將其容器化,或將它們部署到完全受控的 PaaS 服務,以優化管理、開發人員和作業生產力以及總擁有成本。
VM 和容器
當您部署至 Azure 上的虛擬機或容器時,您可以自由使用任何散發和版本的 Java 和任何應用程式伺服器。 選擇完全由您決定。 請記住,您必須手動設定基礎結構及其元件。 屬於此類別的部署選項包括:
Azure 虛擬機器,可讓您彈性地進行虛擬化,而不需要購買和維護執行虛擬的實體硬體。 不過,您仍然需要安裝、設定及修補其上執行的軟體,以維護 VM。
Azure 虛擬機器擴展集,可讓您建立和管理一組負載平衡的 VM。 VM 執行個體的數目可以自動增加或減少,以因應需求或已定義的排程。
Azure Kubernetes Service (AKS)可藉由為您處理所有作業額外負荷來簡化部署受控 Kubernetes 叢集,包括維護與健康情況監視等重要工作。 AKS 支援彈性布建容量,包括事件驅動自動調整和 KEDA 觸發程式。
Azure Red Hat OpenShift,可提供高可用性且完全受控的 OpenShift 叢集隨選。 OpenShift 提供增值功能來補充 Kubernetes,使其成為提供改良開發人員和操作員體驗的周全容器平臺。
雖然您可以在所有這些 IaaS 和 CaaS 服務上部署任何 Java 執行時間,但建議您使用下列其中一個運行時間:
Microsoft建置適用於 Java 11 或 17 的 OpenJDK - Microsoft提供和維護的基底容器映射 。
Eclipse Adoptium Temurin for Java 8 - Eclipse Adoptium 專案提供的 Java 運行時間(先前稱為 OpenJDK 專案)。
這兩個組建都可免費取得本機開發和測試,以及使用任何平臺或 DevOps 工具建置生產就緒二進位檔,而不需要支付任何授權費用。 我們建議他們作為便利性問題。 當您使用上述其中一個組建時,如果您有任何問題,而且有 Azure 的合格支援方案,您可以開啟 Azure 支援 票證,而不需要花費更多成本。 話雖然如此,但值得指出的是,這些建議只是這些建議——我們建議在OpenJDK的各種免費組建中提供的選項,以方便支援。 如需詳細資訊,請參閱 Azure 和 Azure Stack 上的 Java 支援。
所有這些 IaaS 和 CaaS 部署選項都可讓您輕鬆地部署 Apache Tomcat 應用程式伺服器。 如果您使用來自 VMware 的商業供應專案,例如來自 VMware 的 Spring Runtime、來自 Red Hat 的 JBoss EAP、來自 Oracle 的 WebLogic Server 或 IBM 的 WebSphere - Azure 也提供來自這些廠商的共同開發和支援裝載選項。 稍後,在與 Java 生態系統合作夥伴共同建置和支援的解決方案下,涵蓋這些解決方案。
完全受控 (PaaS) 服務
在 Azure 上執行 Java 應用程式的完全受控 PaaS 服務包含下列選項:
- Azure Container Apps,可讓您在無伺服器平台上執行微服務和容器化應用程式。 常見用途包括部署 API 端點、裝載背景處理應用程式、處理事件驅動處理,以及執行微服務。 建置在 Azure Container Apps 上的應用程式可以根據 HTTP 流量、事件驅動處理、CPU 或記憶體負載,或任何 KEDA 支援的縮放器,動態調整規模。
- Azure App 服務,裝載 Web 應用程式、REST API 和行動後端的 HTTP 型服務,內建安全性、負載平衡、自動調整和自動化管理。 App Service 也支援完整的 DevOps 功能,例如持續部署、套件管理、預備環境、自定義網域和 TLS/SSL 憑證。
Azure App 服務 和部署為程式代碼或二進位檔的 Azure Container Apps 的 Java 運行時間是由 Microsoft 提供和維護。 它們僅支援 OpenJDK 的 LTS 散發套件,使用 Eclipse Adoptium Temurin for Java 8 和 Microsoft適用於 Java 11 和 17 的 OpenJDK 建置。 也就是說,有一些警告-例如,我們共同開發和支援的合作夥伴供應專案(稍後討論)使用自己的運行時間。
針對從您自己的容器映射建置的 Azure Container Apps,因為您需要從原始程式碼建置和管理自己的容器映像,因此您可以自由使用您選擇的 Java 散發和版本和應用程式伺服器。
無伺服器函式
有時候您不需要整個 Java 應用程式。 例如,針對實時數據處理,您可能只需要一小段可大規模觸發的程式代碼,或許是由數百萬個和數百萬個事件觸發。 這類事件可以透過 Azure 事件中樞 擷取、由事件驅動的無伺服器 Java 程式代碼大規模在 Azure Functions 中執行,並儲存到 Azure Cosmos DB 等數據存放區中。
與 Java 生態系統合作夥伴共同建置和支援的解決方案
Microsoft已與 Java 生態系統中的領先廠商合作,為在 Azure 上執行 Java 提供頂級解決方案,範圍從共同開發和支援的受控服務到熱門 Java 應用程式伺服器的 Azure Marketplace 供應專案。 我們也整合了熱門的應用程式監視工具,本檔稍後會涵蓋這些工具。
JBoss EAP (Red Hat)
Red Hat 為企業提供開放原始碼解決方案。 其中一個解決方案是 JBoss Enterprise Application Platform (EAP),這是一個熱門的應用程式伺服器平臺,其同時符合 Web 配置檔和完整平臺的 Java EE 認證和 Jakarta EE 相容。 Red Hat 也是 Java 標準、OpenJDK、MicroProfile、Jakarta EE 和 Quarkus 的參與者。
我們與 Red Hat 合作,在 Azure App 服務 上提供 Red Hat JBoss Enterprise Application Platform (EAP)-讓 Java 開發人員能夠將其 Jakarta EE 應用程式部署至 App Service,而不需要透過這兩家公司的整合支持個別 Red Hat 訂用帳戶或授權。 我們也在 Azure VM、Azure VM 擴展集和 Azure RedHat OpenShift (ARO) 上推出類似的 JBoss EAP 聯合供應專案,後者也由 Microsoft 和 Red Hat 共同運作。
WebLogic Server (Oracle)
我們與 Oracle 合作,在 Azure VM 上傳遞 Oracle WebLogic Server 和 Azure Kubernetes Service 上的 Oracle WebLogic Server。 這些解決方案可透過自動化布建虛擬網路/記憶體、安裝Linux/Java資源、設定WebLogic Server,以及使用網路安全組設定安全性等重複使用作業,以方便移轉至 Azure。
WebSphere/Liberty/Open Liberty (IBM)
我們與 IBM 合作,共同開發 Azure VM 上的 WebSphere 應用程式伺服器 (WAS)解決方案、Azure Kubernetes Service 上的 WebSphere Liberty 和 Open Liberty,以及 Azure Red Hat OpenShift 上的 WebSphere Liberty 和 Open Liberty。 如需詳細資訊,請參閱 在 Azure 上執行 IBM WebSphere 系列產品有哪些解決方案? 這些解決方案可讓您輕鬆地將 WebSphere 工作負載移轉至 Azure,將設定高可用性 WebSphere 叢集所需的大部分資源布建工作自動化。 此合作關係涵蓋一系列使用案例,從現有的任務關鍵性工作負載到雲端原生應用程式。
Confluent Cloud 上的 Apache Kafka (Confluent)
過去,想要使用 Confluent Kafka 服務的 Azure 客戶必須分別在 Azure 和 Confluent Cloud 中建立和管理資源和使用者。 為了減輕這種痛苦,Confluent 和 Microsoft合作提供 Apache Kafka for Confluent Cloud,這是 Azure Marketplace 供應專案,提供 Apache Kafka 作為完全受控的服務,包括透過 Azure 入口網站、Azure CLI 或 Azure 管理 SDK 建立和管理 Confluent Cloud 資源的能力。
現今,客戶體驗更簡單、更安全且更順暢。 客戶可以布建和管理 Confluent Cloud 資源及其 Azure 資源,作為統一工作流程的一部分,並利用針對 Azure Functions、Azure Blob 儲存體、Azure 事件中樞、Azure Data Lake Storage Gen2 和 Microsoft SQL Server 建置的完整受控連接器。 開發人員可以使用 Apache Kafka 用戶端連結庫繼續撰寫程式代碼。
摘要
與合作夥伴共同開發其中許多供應專案是持續且持續的努力。 隨著我們的合作夥伴持續創新其供應項目,我們正與他們密切合作,快速將這些相同的創新帶到 Azure,讓客戶可以放心地部署和調整其 Java 應用程式。
總而言之,不論您使用 Java 做什麼,Azure 支援 您工作負載都有很多選擇。 您可以建置任何 Java 應用程式、使用任何架構、執行任何應用程式伺服器,以及支援任何應用程式架構,從在 VM 或容器中執行的整合型應用程式,到在完全受控服務上執行的雲端原生微服務型應用程式。