新版本预览
本次发布的 Spring Cloud Alibaba 2.2.8 版本是基于项目2.2.x分支构建发布的,是在 Spring Cloud Hoxton.SR12、Spring Cloud 2.3.12.RELEASE 的基础上对其中包括注册配置中心、分布式消息等在内的众多组件进行了升级,属于一个组件升级与 Bug 修改的版本。本次发布的 Spring Cloud Alibaba 2.2.8 版本对以下组件版本进行了升级:
- Nacos:升级Nacos客户端到2.1.0版本[1],该版本新增了包括认证插件和配置加密插件等相关能力。
- RocketMQ:升级到了4.9.3版本[2],该版本提供了轻量级消息队列和为延迟消息提供异步发送功能等在内的诸多特性。
- Sentinel:升级到了 1.8.4 版本[3],该版本完善了 transport 和网关流控参数解析模块的扩展性,提供拦截器扩展以支持用户自定义鉴权。
- Seata:升级到了1.5.1版本[4],该版本提供了控制台,SkyWalking APM能力等在内的诸多新特性。
除了组件升级,另外也修复了一些之前版本所存在的问题,进一步提升了Spring Cloud Alibaba 使用的稳定性与健壮性。更多内容可参见发版公告[5]。Spring Cloud Alibaba 与 Spring Cloud 和 Spring Boot 当前各版本对应关系可参见官网Wiki版本说明[6]。
打造更好用的微服务技术
经过三年多的飞速发展,截止到当前,Spring Cloud Alibaba 共发布了28个版本,在GitHub上的累计 stars 数目超过了 22.5k,fork 数达到了7.0k,用户数达到了24k之多,各项关键数据遥遥领先国内外各大云厂商推出的同类开源微服务产品。
除了支撑阿里巴巴经济体日常复杂的微服务应用场景,Spring Cloud Alibaba也被数千家外部企业用户在生产场景中广泛使用。
未来 Spring Cloud Alibaba 会继续对齐 Spring Cloud 主流版本发展演进,同时支持以 Spring Cloud 2021.x 和 Hoxton 两个当前主流版本对应的 Spring Cloud Alibaba 2021.x 和 2.2.X 版本迭代。
在发展规划方面,如果说Spring Cloud Alibaba 过去的第一阶段工作是提供微服务解决方案组件丰富Spring Cloud 生态,让广大外部用户能够轻松地拥抱微服务。未来,第二阶段,Spring Cloud Alibaba会通过自身的努力让外部的用户用好微服务,通过构建微服务治理和业务高可用相关能力,满足用户在微服务使用过程中的这些更高层次的诉求。具体的话将投入力量构建Spring Cloud生态的微服务治理、微服务高可用和分布式任务调度等方面能力。近期主要规划的内容包括以下2部分。
- 依托Service Mesh构建Spring Cloud生态应用微服务治理能力
目前 Spring Cloud 生态缺乏成熟完整的微服务治理能力,服务网格作为当下云原生微服务治理领域的热门技术,通过Sidecar代理方式将业务与框架解耦带来了比如基础框架与应用解耦、支持多语言和应用易迁移等诸多优势。其中,Istio是服务网格中最具代表性的实现,其定义的很多规则成为了服务治理领域的一个通用描述,通过Istio + Sidecar的模式可以实现如金丝雀发布、鉴权、可观测等微服务治理功能。依托Service Mesh技术构建微Spring Cloud生态微服务治理能力的具体方案包括以下2种:
(1)Sidecar模式
Sidecar 代理模式是作为应用 Mesh 化的通用方法,其通过在部署于 Kubernetes 的业务 Pod 中增加一个 Sidecar 代理容器以实现对业务流量的劫持进而实现如服务鉴权、金丝雀发布等微服务治理功能,应用通过Sidecar 模式实现微服务治理功能详细的架构如下图所示:
由于在该种模式下,Spring Cloud应用的流量都由业务 Pod 中的 Sidecar代理进行托管,所有的治理规则管理下发和规则执行都依托于Service Mesh中的控制面和数据面能力,因此在不需要改动应用框架的条件下就可为Spring Cloud应用便捷的提供服务治理功能。Sidecar代理模式为Spring Cloud应用提供服务治理能力的方式完全保留了Mesh Service原生优良设计,但由于在应用的调用过程中多了一层代理来进行流量转发,其性能上会有一定损耗。
(2)Proxyless Service Mesh模式
由于Sidecar代理模式在性能上的不足,Proxyless Service Mesh 无代理Mesh化技术被业界提出,作为相对于Sidecar代理模式而言的另外Mesh化方案,其不再利用原来Service Mesh中数据面Sidecar的流量拦截能力,而是仅利用控制面 Istio 的规则管理与下发能力,通过在框架层面对接 xDS 协议,在框架(此处指Spring Cloud Alibaba)中重新实现对接 xDS 协议的服务发现与负载均衡功能,让其能解析从控制面下发的治理规则,从而实现服务治理。其架构如下图所示:
该种方式较好的继承了Mesh Service中控制面Istio的治理规则管控能力,并摒弃了Sidecar方案在性能上的不足,是一种当前微服务框架与Service Mesh的折中方案,能解决现有微服务框架中微服务治理能力欠缺问题,同时避免出现明显的性能瓶颈。社区接下来,计划在上述两种Service Mesh方式上都做相关探索,构建 Spring Cloud 生态的微服务治理能力。
- 集成 AppActive 方案,构建 Spring Cloud 生态的应用高可用方案
AppActive,由阿里巴巴开源于2021年12月开源的一个面向业务应用构建云原生高可用多活容灾架构的开源中间件。它提供了应用多活容灾架构的标准、实现和 Demo,适用于丰富的业务场景(单 AZ、单 Region、单云、多 AZ、多 Region、多云、自建 IDC等)。
AppActive 建立在 阿里巴巴 使用 AHAS-MSHA 系统大规模运行生产应用系统的8年经验之上,且结合了来自阿里云商业化服务的外部多家客户和社区的最佳实践,具备高可靠、可拓展等特性。其整体的方案从网关入手到业务应用最后到数据服务涵盖了当今常规软件系统全部组件的高可用解决方案,详细的方案如下图所示:
社区接下来,计划与AppActive社区一起,将 AppActive 的相关能力,通过集成到Spring Cloud Alibaba中,为Spring Cloud用户提供开箱即用的应用高可用能力。
激励计划
季度活跃贡献者计划
由于Spring Cloud Alibaba项目模块多,内容面涉及广等特点。由少数同学参与全部模块的PR的Code Review和issues处理任务量大,效率偏低。社区决定把模块进行划分,3个月为一轮,将项目分为Nacos、Sentinel、RocketMQ、Seata和Sidecar这5个模块,每个模块招募1~2个同学负责对应模块的issues处理和PR Code Review工作。
要求:
- 对相关模块有一定了解,最好有相关贡献经历;
- 在招募期间,需要每隔1~2天浏览GitHub上相关issues和PR情况,有所负责的模块相关的issues和PR,需要能及时处理,一般尽量在3天内给出回复;
- 在招募期间,无特殊原因的情况下,能按时参加社区双周会。
收获:
- 所有参与招募任务的同学,报名可获得Spring Cloud Alibaba社区定制文化衫1件,如果3个月活动结束时能顺利完成招募任务可获得社区定制水杯1个;
- 一次比较好的机会,能让自己长期参与社区活动,帮助外部同学解决问题过程中提升自身对相关模块的理解程度,掌握相关关联开源框架的实现原理,对自身核心竞争力提升有帮助;
- 如果对相关模块能参与贡献有价值得到社区成员认可的贡献,有机会提名成为社区Committer。
月度活跃参与者计划
为了对长期参与社区活动(周会,社区讨论或线上/线下Meetup等),在社区交流群中积极解决外部用户问题,活跃在社区项目GitHub主页的同学给与一定的奖励,社区从6月份开始,每月会由核心贡献者提名投票选出1位Spring Cloud Alibaba社区月度活跃参与者,奖励社区定制文化衫1件。
说明:
- 对获奖同学身份没有要求,所有参与社区的内外部同学都有机会获得;
- 无论是参与社区活动,还是解答issues或是提交PR都可算作参与社区贡献;
- 获奖需经过社区核心贡献成员提名并投票;
- 参与季度活跃贡献者计划的同学在招募期内不能同时被提名为月度活跃参与者。
欢迎感兴趣的同学,通过扫描下方二维码加入Spring Cloud Alibaba社区,一起为构建更好用的微服务技术努力!