【.com快译】近年来,Java在企业中的应用不断广泛。例如:LinkedIn正在使用500多个Java微服务,Minecraft的游戏客户端是用Java编写的,Yammer的后端也是用Java编写的,甚至微软的Azure云也包含一些Java应用程序。用于交互组件以及特定于Java的应用程序。可以说,随着Java生态逐渐被Spring主导,微软不仅积极参与Java社区,还推出了AzureSpringCloud等Java开源项目,以更好地支持Java应用,集成AzureCloud组件。每10个开发人员中就有6个会使用Spring来开发他们的应用程序。AzureSpringCloud是Azure产品家族中的一款PaaS产品,由微软和VMware共同打造。SpringCloud依托SpringBoot,可以与Azure云组件集成,为用户提供无缝的云原生应用开发体验。作为完全托管的云服务,AzureSpringCloud由完全托管的AKS集群提供支持。因此,它为在云中构建、部署和管理微服务提供了真正的无服务器体验。快速入门为了简单起见,我们假设我们已经有一个有效的Azure订阅帐户,并选择Maven(https://maven.apache.org/)作为生成和依赖管理的工具。请参考以下步骤在AzureSpringCloud上部署SpringBoot+SpringCloud应用程序:通过Azure门户创建一个新的AzureSpringCloud实例。请下载并安装AzureCLI。使用命令“azextensionadd-nspring-cloud-y”添加AzureSpringCloud的扩展。请注意,由于AzureCLI的版本不同,spring-cloud命令集可能已经添加到默认的AzureCLI命令中,所以这一步不一定需要。使用“azconfigure--defaultsgroup={resource_group}”和“azconfigure--defaultsspring-cloud={asc_instance}”设置资源组和AzureSpringCloud实例的默认值。请按照以下代码将AzureSpringCloudClient的依赖项包含到您的项目中。您可能希望在单独的配置文件中执行此操作,以免“污染”那些本地开发的依赖项。<配置文件><配置文件>云<依赖项><依赖项>com.microsoft.azurespring-cloud-starter-azure-spring-cloud-client2.2.0使用命令:mvncleanpackage-Pcloud启用上一步添加的配置文件并构建应用.使用:azspring-cloudappcreate-n{my-app}在AzureSpringCloud实例中创建一个新的AzureSpringCloud应用程序(第一次就这样做)。通过以下命令将应用程序部署到AzureSpringCloud:azspring-cloudappdeploy-n{my-app}--jar-pathtarget/my-app.jar代码为零,对项目的影响极小。我们计算在几分钟内,成功地将第一个应用程序部署到完全托管的AKS集群。AzureApplicationInsights上分布式跟踪的应用程序映射示例AzureSpringCloud可以为您的应用程序提供开箱即用的分布式跟踪功能。它主要依靠AzureApplicationInsights来构建完整的“应用程序地图”,以显示传入请求将如何流入系统、组件如何相互交互、采样调用的跟踪以及有关输出和调用持续时间的信息。您可以指定要依赖的AzureApplicationInsights的预先存在的实例,或者通过启用分布式跟踪创建一个全新的AzureApplicationInsights实例以供AzureSpringCloud使用。日志存储诊断设置示例,实现日志和各种指标重定向到LogAnalytics。AzureSpringCloud通过LogAnalytics、AzureStorage或AzureEventCenter提供日志和各种指标的收集和存储。我们可以通过“诊断设置”指定存储日志和指标的方式,并启用该功能。在实际操作中,最常用的方法是将所有的日志和指标发送到AzureLogAnalytics的工作空间,从而依靠强大的LogAnalyticsQueryLanguage(日志分析查询语言)来执行特定的、准确的各种历史信息检查。值得一提的是,我们还可以使用一个特殊的表——AppPlatformLogsForSpring,来查询LogAnalytics。此表包含部署在AzureSpringCloud上的各种应用程序的所有日志。日志追踪根据AzureSpringCloud一月份的更新,我们已经可以通过运行以下命令将流式日志实时传输到终端:azspring-cloudapplogs--name{app-name}--resource-group{resource-group}--service{asc-instance}-f在开发过程中,这个函数对于验证应用程序的行为,或者试图解决“类生产环境”中的问题非常有用。监控和警报https://devblogs.microsoft.com/java/whats-new-in-azure-spring-cloud-jan-update/AzureSpringCloud还在其1月更新中添加了创建警报规则的功能。它可以帮助用户:从应用程序中提取和分析相关指标。根据这些指示器的设置条件触发警报等操作。定义警报将如何执行(例如发送警告电子邮件等)。而且,设置这些关键功能并不复杂。集中配置Spring用户在云原生应用需要集中配置时,往往需要使用SpringCloudConfigServer。在使用AzureSpringCloud时,我们不需要自己搭建和部署SpringCloudConfigServer,只需要配置一个自动化部署,然后完全交给AzureSpringCloud管理的SpringCloudConfigServer。全托管SpringCloudConfigServer配置示例另外,需要联系SpringCloudConfigServer的应用不需要任何配置,我们只需要准备spring-cloud-starter-config的依赖即可。AzureSpringCloud将确保所有客户端应用程序在部署时自动配置,以安全地连接到上述完全托管的SpringCloudConfigServer。服务发现应用程序注册在一个完全托管的服务注册中心服务发现与集中配置非常相似,它可以提供开箱即用的服务。即:完全托管的SpringCloudEurekaServer始终在后台运行,以方便客户端在其服务注册表中注册。同样,客户端应用程序无需任何配置即可与上述SpringCloudEurekaServer进行交互。他们只需要包含spring-cloud-starter-netflix-eureka-client依赖项。服务绑定设置AzureCosmosDB绑定AzureSpringCloud有一个非常独特的功能,称为“服务绑定”。它允许应用程序与Azure云组件(例如AzureCosmosDB、AzureCacheforRedis和AzureDatabaseforMySQL)进行交互,而无需为要建立的连接提供凭据。一旦我们为应用程序创建了服务绑定,在运行时(runtime),AzureSpringCloud会自动注入那些可以连接的属性来匹配Azure服务。纵向扩展(Scaleup)我们可以通过Azure门户或者等效的AzureCLI命令,方便地按需扩展应用在AzureSpringCloud上的资源。如上图所示,我们可以采用“标准”的扩展计费方式,即每个应用的最大vCPU数为4,分配给应用的内存最大GB数为8。然后垂直扩展可以在此基础上进行扩展。横向扩展在AzureSpringCloud上手动扩展应用程序同样,我们可以通过Azure门户或等效的AzureCLI命令手动执行横向扩展,以指定特定时间存在的实例副本总数(最多500个)。只要平均CPU使用率≥70%超过10分钟,就应该扩展应用程序。更有趣的是,我们可以选择一个基于实时收集和分析指标的自动化流程来扩展应用。正如前面“监控和警报”部分所述,我们可以通过选择任何指标来设置触发条件。当满足此条件时,将触发用户定义的横向扩展操作(例如,将实例数增加1)。设置最小、最大和默认的自动缩放限制如上图所示,对于任何给定的应用程序,我们需要设置自动缩放的触发机制,它可以包括最小、最大和默认的实例数。可用性只需单击几下即可部署到生产环境使用AzureSpringCloud,我们可以轻松实现最短的停机时间。首先,“标准”AzureSpringCloud层遵守“至少99.9%的可用性”——服务级别协议。其次,我们还可以通过几次点击执行蓝/绿部署,允许开发人员在“类生产”环境中验证功能,最大限度地减少对最终用户的影响,并消除发布更新时的延迟。停机时间。计费AzureSpringCloud采用“按需付费”模式,在“经济”可扩展性的基础上满足用户的各种实际使用情况。“标准”计费模型规定,具体来说,其基本费率是:用户每小时最多可以使用16个vCPU和32GB内存。超出部分将按小时计费。服务概要AzureSpringCloud总体上可以提供以下服务:缩短开发周期,方便部署到生产环境。更少的基础架构管理开销,使开发人员可以专注于软件应用程序本身而不是Kubernetes集群。通过SLA和易于实施的蓝/绿部署显着减少停机时间。将网络的管理任务委托给微软的安全网络。它不仅提供了弹性和可扩展的基础设施,而且具有灵活匹配的计费模型。实用资源如果想更熟悉AzureSpringCloud,请参考以下资源:AzureSpringCloud官方文档(https://azure.microsoft.com/en-us/services/spring-cloud/)AzureSpringJoshLong和JulienDubois的云培训文档(https://github.com/microsoft/azure-spring-cloud-training)《Bootiful Azure Spring Cloud》(https://www.youtube.com/watch?v=WAuGojnf2lA)得出的结论是AzureSpringCloud是一种云应用服务,可用于快速构建、部署和管理。您无需花费过多的精力即可快速享受其丰富的功能。如果你当前的应用恰好依赖与AzureSpringCloud相同的技术栈,那么你绝对值得一试。原标题:AzureSpringCloud:AComprehensiveOverview,作者:DomenicoSibilio