學習在雲上部署Java應用程式

微軟技術棧發表於2022-04-21

根據 Stack Overflow 和 GitHub 的說法,Java 是最常用的語言之一。Java 虛擬機器 (JVM) 為高效執行 Java 應用程式提供了一種成熟的方法。在今天的學習推送中,我們將首先介紹 Java 應用程式最典型的部署型別,並且根據你需要的部署型別,指導你如何選擇合適的Azure服務

應用程式部署型別

你是想要在虛擬機器(VM) 上、容器內,還是作為平臺即服務 (PaaS) 解決方案來部署應用程式呢?

使用虛擬機器,你所處的環境會類似於本地或傳統資料中心環境。Azure 提供一組預配置的 VM,這些 VM 執行主作業系統(Windows 和 Linux),並且你需要配置和維護這些虛擬機器。

使用容器,你仍然擁有對 VM 的大部分控制,但操作會更少。你可以安裝自己的 Java 虛擬機器 (JVM) 或某些特定軟體,並且你的容器可在本地或任何雲供應商上執行。

使用平臺即服務(PaaS)解決方案,大部分維護和操作任務將由雲供應商承擔。作業系統 (OS) 更新、Java 修補程式、安全性和符合性都會提供。因此,此選項通常更安全,且成本更低。它還會附帶一些可伸縮性功能,這些功能應能讓你的應用程式更好地適應客戶的需求。藉助它還可獲得更好的負載下的效能,並在流量較少的情況下降低成本。

▌部署選項

無論你是使用 VM、容器還是平臺即服務解決方案,通常都可以通過以下兩種方式之一將 Java 應用程式部署到雲:

  • 原始碼部署:將原始碼提交到 Git 儲存庫,雲提供商會執行一個過程,該過程將編譯、生成並打包應用程式。
  • JAR、WAR 或 EAR 檔案部署:將應用程式打包為可執行的 JAR(Java 存檔)檔案,但也能夠以 WAR(Web 應用程式存檔)、EAR(企業應用程式存檔)和其他檔案格式進行打包。然後,雲供應商將執行此可執行檔案。

比較解決方案

▌Azure 應用服務

Azure 應用服務為執行 Java Web 應用程式提供了一種易於使用的服務,其中包含自動作業系統和 Java 虛擬機器 (JVM) 更新和修補程式,以及自動縮放或監控。應用服務可以執行任何可執行的 JAR 檔案(如 Spring Boot 提供的檔案),還可以在最常用的應用程式伺服器(如 Apache Tomcat 或 Red Hat JBoss)上部署任何 WAR 應用程式。對於執行簡單的 Java 單片應用程式,這是更優選擇。

▌Azure Functions

在 Azure Functions 上執行 Java 應用程式通常需要一些較小配置和設定。從本質上說,無伺服器函式將具有較短的生命週期(通常只有幾分鐘), 通常情況下,某個函式通過事件(如 HTTP 請求)喚醒,只在幾分鐘內保持“熱”狀態,之後它會重新進入休眠狀態。從本質上講,無伺服器函式需要專門進行編碼。它們的功能取決於執行它們的雲供應商,並且它們較短的生命週期使得使用傳統解決方案(如快取記憶體或 HTTP 會話複製)變得複雜。無伺服器函式可以很好地進行縮放,併為低使用量環境提供最優價格。同時,它們能夠應對要求最高的流量負載。因此,一些傳統上會使用的服務可能不如 Azure 應用服務高效或實用。

▌Azure Spring Cloud

Azure Spring Cloud 是一項獨一無二的 Azure 服務,它提供了平臺即服務解決方案,用於執行 Spring Boot 微服務。Spring Cloud 提供了許多工具,如服務登錄檔或配置伺服器。它還提供了特定的自動縮放和安全機制,可極大地簡化基於 Spring Boot 的微服務體系結構的使用。

你還可以使用 Azure Spring Cloud 服務執行其他工作負載,如 Spring Boot 單片應用程式,或甚至是使用 Steeltoe 的 .NET 微服務,但該服務主要用於執行 Spring Boot 微服務。

還有更多解決方案,這裡不一一介紹,可前往相關頁面閱讀。

我們已經討論了用於在雲中部署 Java 應用程式的可選項,哪個選項最可能滿足你的特定需求呢?歡迎繼續學習在雲上部署Java應用程式

相關文章