Bootiful Azure:开始使用 Microsoft Azure (1/6)

工程 | Josh Long | 2019年01月03日 | ...

这是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的粉丝们!在本系列文章中,我将介绍Microsoft Azure的Spring支持,重点关注该平台为Spring应用程序提供的有趣技术。我想强调的是,正如我一贯所做的,您应该在Microsoft Azure提供差异化体验的地方利用它。Microsoft AzureGoogle CloudAmazon Web ServicesAlicloud都提供基础设施服务,如自定义消息队列、存储、数据库等,这些服务提供了比标准商品化和开源替代品更具吸引力甚至有时更优越的替代方案。所有平台在某些方面都有自己独特的优势。这些优势必然具有引力;任何人都可以运行MySQL或Redis,但很少有人能运行Google Cloud Spanner或Microsoft CosmosDB。使用正确的工具来完成工作!如果CosmosDB是您需要的解决方案,就使用它。

如果您正在做的工作足够通用,不受特定平台的限制,那么您应该尽可能以不受限制的方式来使用它。尽可能保持通用。想运行Java或Node.js进程?使用Kubernetes之类的容器编排器。或者,如果您喜欢自己,并且喜欢快速部署到生产环境,那么可以使用像Heroku或Cloud Foundry这样的平台即服务(PaaS),它们的货币是应用程序,而不是低级容器。这些技术让您可以从应用程序二进制文件的角度思考,并快速交付到生产环境。它们也是开源的,拥有庞大的用户群和生态系统,因此它们是最简单的解决方案也是最强大的解决方案。在这种情况下,使用通用工具在技术上也是最佳选择。使用Cloud Foundry(只需在Microsoft Azure上安装并部署Pivotal Cloud Foundry服务)或Microsoft Azure上的Kubernetes等工具非常容易上手。

数据库是一个特别棘手的问题。如果您投资于像Google Spanner这样的专有数据库,您应该预期,如果您有一天想迁移数据,将数据从该平台迁移出去将非常困难。Riak前CTO Dave McCrory谈到了数据引力的概念——即数据池会吸引与之相关的应用程序生态系统,这些应用程序会向数据池输入和从中提取数据。这些应用程序越有用,使用它们的人就越多,人们就越有可能在此基础上进行集成。Salesforce就是一个很好的例子。它产生的数据很棘手。Salesforce CRM功能丰富且广泛,但它绝不是唯一功能齐全的CRM。它比任何竞争产品都拥有更多的合作伙伴集成生态系统,人们已经对此产生了依赖。这些合作伙伴集成使Salesforce成为一个“加州旅馆”式的选择:您可以入住,但永远无法离开。因此,显然,要使用最佳的工具来完成工作,但要认识到,除了管理开销很大之外,这些工具还有可选性成本。

设置

让我们来看看Microsoft Azure本身。您需要登录到门户来获取在本系列课程中将要介绍的各种服务的相关配置密钥。门户是您应该收藏书签的地方。通常,当您查看门户中与您正在使用的服务相关的部分时,您会看到一个名为“密钥”或“配置密钥”或类似名称的部分。不幸的是,这在不同服务之间并非100%一致。

在本系列文章中,我们将专注于利用该平台的优势——即Microsoft通过其Azure平台提供的差异化优势。您可以使用az命令行工具来实现本文介绍的大部分功能。由于它是用Python编写的,因此在多种操作系统上安装它很容易。请查阅此处的文档,了解如何安装Microsoft Azure CLI az

差不多就是这些了。假设您有一个Azure帐户并准备好使用az CLI,那么您就可以开始编码了。Azure没有平台级的身份验证概念。您需要按服务进行身份验证。这使得与每个独立服务的工作变得直接,但这意味着——总体而言——您在前期的身份验证方面比使用Google Cloud等平台时要担心得多。这并不是说一个会引入更多工作。在使用Google Cloud时,您经常需要明确“选择加入”特定服务,然后才能使用它。所以:半斤八两,我想。

您可以使用Spring Boot开始新项目,正如您所料,使用Spring Initializr。选择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个区域,比任何其他云提供商都多。

以下是如何在美国的“西二区”创建一个名为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 社区所有即将举行的活动。

查看所有