Spring Cloud Azure 4.0 GA – 实现 Spring 框架与 Azure 服务的无缝集成
作者:Sean Li
翻译:Alan Wang
校对:Xiaolu Dai
排版:Rani
Spring Cloud Azure 是一个开源项目,提供 Azure 服务与 Spring 框架的无缝集成。它使得开发人员能够用 Spring 惯用的方式,来连接和使用 Azure 服务,仅需几行配置和极少的代码变更。我很高兴地宣布,Spring Cloud Azure 4.0 现已正式发布。本次大版本,我们的目标是带来更安全的连接 Azure 服务的方式,更精简的依赖关系,以及 Spring Boot 生产就绪功能的支持等等。4.0 版本代表了我们产品路线上的一个重要里程碑,如果没有 Spring 社区的集体智慧以及用户的反馈,这个版本将无法交付。我代表 Azure Spring 产品团队,感谢你们让这一切成为可能!
统一的开发体验
在微软 Developer
Division,我们非常重视开发者体验。为了提供更加一致、更加简单的开发体验,我们不断挑战自我,以避免我们的用户面对混乱的开发选择。这是一个漫长的、自我进化的过程,因为一致性总是相对的,总会有我们无法控制的事情发生。如今,我们在这个方向虚心迈出新的一步,通过统一
project name、artifact ID以及 properties 来提升用户体验。
简化的依赖管理
依赖管理是 Spring Boot 的核心价值基础之一,它帮助 Spring 建立了优于其他 Java 框架的卓越地位。秉承这一精神,我们始终在探索如何能够使依赖管理对 Azure 上的 Spring 开发者来说更加简单。本次版本中,我们将原有的两个 BOM 合并成了一个新的 BOM,spring-cloud-azure-dependencies,我们相信,这样可以进一步降低学习曲线,用户不再像以前一样,需要决定在哪种场景下使用哪一个BOM。
扩大的 Azure Support 支持范围
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 Cloud Stream Binder(spring-cloud-azure-stream-binder-eventhubs)、Spring Integration(spring-integration-azure-eventhubs)以及 Spring Kafka(spring-messaging-azure)来与 Azure Event Hubs 进行交互。
更安全、更细粒度的认证方式
认证与密码管理是每一个实际应用的核心。支持托管标识已成为 Azure 的一项基本准则,在个体服务层面提供了一个安全基线。我们相信遵循这些准则将使广大的Spring 开发者们受益,并将 Managed Identity 支持添加到了 App Configuration、Event Hub、Service Bus、Cosmos、Key Vault、Storage Blob 以及 Storage Queue 中。这样可以搭建免证书应用,这一模式无论在微软还是社区都获得了巨大的发展势头。除 Managed Identity 外,你还可以使用我们 Spring 库中底层 Azure SDK 所支持的任意认证方式。例如,你可以使用 SAS token 以及 token credential 对 Service Bus 及 Event Hubs 进行认证。目前默认使用 Credential chain,它允许应用程序从应用属性、环境变量、托管标识以及 IDE 等中获取证书。所有的这些都促进了在一个零信任的编程模型中保护你的应用程序。
最后,为满足企业用户的需求,在资源层级(如 Service Bus
queue)提供更加细粒度的权限管理往往至关重要。我们已向用户开放了这些控制,以实现更好的安全管理,更好地遵守
IT 政策。
Spring 惯用方式带来的更多选项
Spring Boot开发者们一直以来享受着在应用配置文件中定义客户端选项的便利。在 Spring Azure 4.0 中,所有自动配置的 Azure SDK 客户端对象的属性都可以在配置文件中进行修改。我们显著改善了 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。例如,现在你可以在 Zipkin dashboard 上通过 Spring Boot actuator 端点来查看 storage blob 是上升还是下降,以及跟踪依赖项与应用延迟。
入门
希望你和我们一样期待本次版本。关注我们的最新消息,开始上手吧。