Spring Cloud Azure 4.0 现已正式发布

工程 | Josh Long | 2022 年 3 月 30 日 | ...

注意:Spring 粉丝们大家好!这是来自我们在 Microsoft 的朋友 Sean Li 的客座文章。

我很高兴宣布 Spring Cloud Azure 4.0 现已正式发布。通过此重要版本,我们旨在带来更好的安全性、更精简的依赖、对生产就绪性的支持等等。版本 4 代表了我们产品路线图中的一个重要里程碑,如果没有 Spring 社区的集体智慧和客户反馈,我们将无法实现这一目标。我代表 Spring on Azure 产品团队,感谢大家促成了这一切!

统一的开发体验

在微软的开发者事业部,我们非常重视开发者体验。我们不断挑战自己,思考如何让事情更一致、更容易理解,这样我们的客户就不会面临随意选择开发方案的情况。这是一条漫长且自我演进的旅程,因为一致性是相对的,并且存在一些我们无法控制的事情。现在,我们谦逊地朝着这个方向又迈出了一步,通过统一项目名称、artifact ID 和属性来改善我们的开发者体验。


<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-dependencies</artifactId>
      <version>4.0.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

简化的依赖管理

依赖管理是帮助 Spring 在其他 Java 框架中建立领先地位的核心价值支柱之一。本着这种精神,我们也在探索如何让 Azure 上的 Spring 开发者更容易进行依赖管理。在此版本中,我们整合了 Spring 专家的最佳实践和专业知识,并将我们所有的依赖 BOM 浓缩为一个 spring-cloud-azure-dependencies,我们相信这将进一步降低学习曲线并避免对依赖项的处理不当。

扩展的 Azure 支持范围

Spring Initializr 中的 Azure Support 模块提供了许多 Azure 服务的自动配置。

在此版本中,我们扩展了 Azure Support 的范围,新增了以下 3 项服务:

  • Event Hubs
  • Azure Cache for Redis
  • App Configuration

我们的旅程并未在此结束,随着时间的推移,我们将把更多 Azure 服务纳入其中。

更灵活的 Spring 编程模型

我们一直收到的反馈之一是,我们的 Spring 模块不必要地堆叠了过多的依赖层,这阻碍了更广泛的采用。例如,我们早期的所有 Spring 模块都依赖于 Spring Boot,而我们的许多客户在 Tomcat 中运行 Spring MVC 应用程序,仅使用 Spring Data 等来与数据服务进行通信。我们从头开始重新设计了 Spring 模块的依赖关系,使其更好地适应不同的方法。以 Azure Event Hubs 的编程模型为例。图中的紫色方框代表 Spring Cloud Azure 客户端库。您可以使用 Spring binder (spring-cloud-azure-stream-binder-eventhubs)、Spring integration (spring-integration-azure-eventhubs) 和 Spring Kafka (spring-messaging-azure) 与 Azure Event Hubs 进行交互。

更多控制和更安全

任何实际应用的核心是身份和秘密管理。对托管身份 (Managed Identity) 的支持已成为 Azure 的基本原则,为单个服务级别提供了安全基线。我们相信遵循这些指导方针也将广泛惠及 Spring 开发者,并且我们已为 App Configuration、Event Hub、Service Bus、Cosmos、Key Vault、Storage Blob 和 Storage Queue 添加了托管身份支持。这使得构建无需凭证的应用程序成为可能,这种模式在微软和社区中都获得了巨大的发展势头。除了托管身份,您还可以使用我们 Spring 库中底层 Azure SDK 支持的任何身份验证方法。例如,您可以使用 SAS 令牌和令牌凭证来验证 Service Bus 和 Event Hubs。凭据链 (Credential chain) 现在默认启用,允许应用程序从应用程序属性、环境变量、托管身份、IDE 等获取凭据,所有这些都促进了在零信任编程模型中保护您的应用程序安全。

最后,在资源级别(例如:Service Bus 队列)提供细粒度的访问控制对于满足企业客户的需求通常至关重要。我们现在已向客户开放了这些控制,以实现更好的安全治理并遵守 IT 策略。

以 Spring 惯用方式公开更多选项

Spring 开发者长期以来一直享受在应用程序配置文件中定义客户端选项的便利。我们当然不希望剥夺这一特权,并通过客户端对象来增加 Spring 开发者设置选项的负担。为此,我们显著提高了 Azure SDK 客户端在同步和异步场景下的自动配置覆盖率。举例来说,以下是您可以使用 Spring Integration Azure Service Bus 进行设置的配置选项的预览。

更具备生产就绪性

最后,如果没有足够的功能覆盖来支持我们在生产环境中的客户,那么以上所有努力都将是徒劳的。要让应用程序具备生产就绪性,我脑海中会想到很多事情,但可观测性通常是最重要的。我们为 App Configuration、Event Hubs、Cosmos、Key Vault、Storage Blob、Storage Queue、Storage File 添加了健康指示器,并为所有基于 HTTP 的 Azure SDK 添加了 Spring Cloud Sleuth 支持。例如,您现在可以通过 Spring Boot actuator 端点探测存储 blob 是否正常运行,以及在 Zipkin 面板中跟踪依赖关系和应用程序延迟。

入门

我们希望您和我们一样对这个版本感到兴奋。要开始使用,请参阅我们最新的:

订阅 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,以助您加速前进。

了解更多

获取支持

Tanzu Spring 通过简单的订阅方式,为 OpenJDK™、Spring 和 Apache Tomcat® 提供支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看全部