Bootiful Azure:使用 Microsoft Azure 的入門指南 (1/6)

工程 | Josh Long | 2019 年 1 月 3 日 | ...

這是共 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 AzureGoogle Cloud 以及 Amazon Web ServicesAlicloud 都提供基礎架構服務,例如自訂訊息佇列、儲存、資料庫等,這些服務提供了比更常見的商品和開放原始碼替代方案更具吸引力,有時也更出色的替代方案。所有平台都有它們在某種程度上領先於其他平台的地方。這些東西必然具有吸引力;雖然任何人都可以運行 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 服務代理程式

您可以利用Cloud Foundry 服務代理,快速啟動各種 Microsoft Azure 服務,然後將它們綁定到您的應用程式。 這個服務代理使得在 Cloud Foundry 上執行應用程式,尤其是在 Microsoft Azure 之上執行,成為應用程式以 Microsoft Azure 服務為目標的最簡單生產路徑。

完成了!您現在已經了解設置 Spring 應用程式以利用 Microsoft Azure 服務所需的一切。

獲取 Spring 電子報

保持與 Spring 電子報的聯繫

訂閱

領先一步

VMware 提供培訓和認證,以加速您的進程。

了解更多

獲得支援

Tanzu Spring 在一個簡單的訂閱中,為 OpenJDK™、Spring 和 Apache Tomcat® 提供支援和二進位檔案。

了解更多

即將舉行的活動

查看 Spring 社群中所有即將舉行的活動。

查看全部