領先一步
VMware 提供培訓和認證,以加速您的進程。
了解更多這是共 6 部分系列的第 1 部分,每週一和週四發布新文章,介紹適用於 Spring 開發人員的 Microsoft Azure。如果沒有 Microsoft 的 Asir Vedamuthu Selvasingh、Yitao Dong、Bruno Borges、Brian Benz 和 Theresa Nguyen 的投入,我不可能完成這一切。您可以在 Github 上找到本系列的程式碼。在閱讀時,請在 Twitter (@starbuxman) 上與我聯繫,提供任何意見或問題。您也可以在我的 Spring Tips (@SpringTipsLive) 文章 Bootiful Azure 中了解更多關於 Microsoft Azure 的資訊。
以下是所有文章
嗨,Spring 粉絲們!在本系列中,我將介紹 Spring 對 Microsoft Azure 的支援,重點介紹該平台為 Spring 應用程式提供的一些有趣技術。我想像往常一樣強調,您應該在 Microsoft Azure 提供差異化體驗的地方加以利用。Microsoft Azure 和 Google Cloud 以及 Amazon Web Services 和 Alicloud 都提供基礎架構服務,例如自訂訊息佇列、儲存、資料庫等,這些服務提供了比更常見的商品和開放原始碼替代方案更具吸引力,有時也更出色的替代方案。所有平台都有它們在某種程度上領先於其他平台的地方。這些東西必然具有吸引力;雖然任何人都可以運行 MySQL 或 Redis,但很少有人可以運行 Google Cloud Spanner 或 Microsoft CosmosDB。請使用適合工作的工具!如果 CosmosDB 是您需要的解決方案,請使用它。
如果您嘗試做的工作足夠通用,以至於沒有與特定平台綁定,那麼您絕對應該儘可能以不綁定的方式來使用它。儘可能保持通用性。想要運行 Java 或 Node.js 流程嗎?請使用容器協調器,如 Kubernetes。或者,如果您喜歡自己,並且喜歡快速上線部署,請使用平台即服務 (PaaS),如 Heroku 或 Cloud Foundry,它們的貨幣是應用程式,而不是底層容器。這些技術讓您可以從應用程式二進位檔的角度進行思考,並快速交付到生產環境。它們也都是開放原始碼,並且擁有龐大的使用基礎和生態系統,因此它們是最簡單且最強大的解決方案。在這種情況下,使用通用工具也是最好的選擇,從技術上來說。使用 Cloud Foundry (只需在 Microsoft Azure 上安裝和部署 Pivotal Cloud Foundry 服務) 或 Microsoft Azure 上的 Kubernetes 等工具非常容易上手。
資料庫是一個特別棘手的問題。如果您投資像 Google 的 Spanner 這樣的專有資料庫,您應該預期,如果您有一天想將資料從該平台上移走,將會非常困難。前 Riak CTO Dave McCrory 談到了資料吸引力的概念 - 這種概念認為資料池會激發應用程式的生態系統,這些應用程式會饋入該池並從中提取資料。這些應用程式越有用,使用它們的人就越多,人們就越有可能建立在這些整合之上。Salesforce 就是一個很好的例子。它的資料是黏性的。Salesforce,這個 CRM,功能豐富且廣泛,但它絕不是唯一功能齊全的 CRM。它確實擁有,比任何競爭產品都更多的是,一個合作夥伴整合的生態系統,人們從那時起就開始依賴這個生態系統。這些合作夥伴整合使 Salesforce 成為一家像 Hotel California 一樣的公司:你可以入住,但永遠無法離開。所以,很明顯,使用最好的工具來完成工作,但要認識到,除了擁有相當大的管理成本之外,這些工具也有選擇性成本。
讓我們看一下 Microsoft Azure 本身。您需要登入入口網站,以取得我們在本系列課程中將介紹的各種服務的相關組態金鑰。入口網站是您應該加入書籤的東西。通常,當您查看您使用的服務的入口網站的相關部分時,您會看到一個名為「金鑰」或「組態金鑰」的部分,或類似的東西。不幸的是,並非所有服務都 100% 一致。
在本系列中,我們將重點關注平台的優勢 - Microsoft 通過其 Azure 平台提供差異化優勢的地方。您可以使用 az
命令列工具實現我們將在本文章中介紹的大部分內容。由於它是用 Python 撰寫的,因此很容易在多個作業系統上安裝。請參閱此文件以了解有關如何安裝 Microsoft Azure CLI,az
的更多資訊。
大概就是這樣了。假設您有一個 Azure 帳戶並且 az
CLI 已準備好使用,您就可以開始編碼了。Azure 沒有平台範圍的身份驗證概念。您需要針對每個服務進行身份驗證。這使得使用每個單獨的服務變得簡單,但也意味著 - 從整體上來說 - 您需要比使用 Google Cloud 等服務時更頻繁地擔心身份驗證。這並不是說它會帶來更多的工作。使用 Google Cloud 時,您通常必須在可以使用特定服務之前明確地「選擇加入」。所以:半斤八兩,我想。
您可以使用 Spring Initializr 啟動新的 Spring Boot 專案,正如您可能期望的那樣。除了您想要使用的任何其他內容之外,還請選擇 Azure Support
。或者,如果您想將 Microsoft Azure 相依性引入現有應用程式,您可以手動將 Maven BOM (物料清單) 構件新增到 Spring Boot 專案的 Maven 或 Gradle 建置中。以下是如何為 Maven 執行此操作。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-spring-boot-bom</artifactId>
<version>${azure.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在我的例子中,Maven 屬性 azure.version
被設定為 2.0.5
。
從這裡開始,我將使用 Ivy 語法介紹 Maven 儲存庫相依性座標:groupId
: artifactId
: version
。有時,version
不是必需的,因此我將省略它,因為 BOM 將為我們管理這些版本。
如果您想使用安裝在本地電腦上的 az
CLI 繼續學習這些示例,您需要運行 az login
。否則,您可以從 Azure 入口網站啟動 Microsoft Azure Cloud Shell。它會為您提供兩種選擇:Bash 或 Powershell。
登入後,您需要配置一個資源群組。資源群組是資源的命名集合。這是一件方便的事情,因為您可以建立與 Spring 和 Microsoft Azure 的介紹相關的所有資源,將每個資源與此資源群組相關聯,然後,當您完成所有操作後,銷毀資源群組,它將級聯刪除與之相關的所有內容。
這使得計費、生命週期管理等等都非常方便!每個資源群組都與一個區域相關聯。Microsoft Azure 擁有大量您可以運行服務的區域。截至撰寫本文時,全球共有 54 個區域,比任何其他雲端提供者都多。
以下是如何在美國的 West US 2
位置建立一個名為 bootiful
的資源群組。我們將在後面的示例中使用它。
az group create --name bootiful --location "West US 2"
您可以運行以下命令來迭代所有可能的位置:az account list-locations
。您會注意到,當我們發出命令時,我們需要在建立時將資源與特定位置相關聯,通常使用 -l
或 --location
。這可能很乏味,因此指定預設位置,然後在後續調用中省略它會很有幫助,如下所示:az configure --defaults location=westus
。
通過運行 az configure
確認一切正常。
您可以利用Cloud Foundry 服務代理,快速啟動各種 Microsoft Azure 服務,然後將它們綁定到您的應用程式。 這個服務代理使得在 Cloud Foundry 上執行應用程式,尤其是在 Microsoft Azure 之上執行,成為應用程式以 Microsoft Azure 服務為目標的最簡單生產路徑。
完成了!您現在已經了解設置 Spring 應用程式以利用 Microsoft Azure 服務所需的一切。