创投圈|阿里云中间件开源往事( 五 )


Arthas Contributors
从中 , 我们不仅看到 Arthas 这类工具型开源项目在开发者群体中的受欢迎程度 , 也发现越来越多的国内开发者开始参与开源贡献 , 并视为一种社区荣誉 。 技术领域 , 一切里程碑的达成 , 都源于一份技术情怀 。 截止目前 , Arthas 已有接近 3w star 和 146 位 Contributors , 这对一款线上诊断工具而言 , 是一份不错的答卷 。
时间来到 2019 年 。
如果把生产阶段比作高考 , 那么 Sentinel 解决的是事中的稳定性问题 , 一旦出现流量徒增 , 可以通过限流和降级来应对 , 而 2019 年开源的 Chaosblade 则是更多从事前的方式来提高架构的高可用性 , 通过建立故障演练机制 , 把各类可以预见的故障提前演练出来 , 例如随机杀节点、延时响应 , 甚至中断机房 。
Chaosblade 和 Sentinel 师出同门 , 源自阿里在全链路压测、线上流量管控、故障演练上沉淀的这一套高可用核心技术 。 阿里云资深技术专家中亭说道:“阿里因其多元化的业务场景和日益复杂的技术架构 , 会遇到各式各样的故障 , 故障治理的难度增量了几个台阶 。 Chaosblade 从 2011 年开始 , 经历了强弱依赖的治理和建设、同城容灾演练、在交易和中间件链路尝试演练三个阶段 , 经过 6 年多的打磨 , 最终将最佳实践和工具框架形成统一的标准 , 对外进行开源 , 帮助 DevOps 人员缩短构建混沌工程的路径 。 ”
在微服务架构普遍落地的今天 , 分布式事务带来的数据一致性问题、性能问题越来越绕不开 。 分布式事务理解起来有点门槛 , 但却无处不在 , 他是相对本地事务而言的 , 服务和服务之间不需要跨网络就能完成的 , 称之为本地事务 , 需要跨网络才能完成的 , 称之为分布式事务 , 例如金融行业银行之间的转账业务需要跨网络才能完成 , 电商行业交易下单调用外部库存系统、物流系统需要跨网络才能完成等 。
虽然业内有一些分布式事务开源的解决方案 , 但要么是性能差、要么是数据一致性不够、要么是侵入性高 , 不容易落地 。 总之 , 是有点“不爽” 。
宣布 Seata 开源的 Meetup 现场
而这种“不爽”集中反映在了分布式事务开源中间件 Seata 上 , 清铭在 2019 年 1 月中间件开发者 Meetup 上宣布分布式事务中间件 Seata 正式开源后的一周内 , Seata 便收获了 3000+ star , 社区讨论的 issue 达 58 个 。
阿里巴巴是国内最早一批进行应用分布式(微服务化)改造的企业 , 所以很早就遇到微服务架构下的分布式事务问题 。 2014 年发布 TXC , 开始为集团内应用提供分布式事务服务 。 2016 年 , TXC 经过产品化改造 , 以 GTS 的身份上线阿里云 , 成为当时业界唯一一款云上提供分布式事务的商业化产品 。 2019 年 , 基于 TXC 和 GTS 的技术积累 , 开源了 Seata , 和社区一起共建分布式事务解决方案 。 2022 年 , 经过多年的打磨 , Seata 发布了 1.5.0 里程碑版本 , 该版本共有 61 名 contributor 贡献了近 7w+代码 , 同时也推出 Seata 企业版 , 并在微服务引擎 MSE 上提供商业化服务 。 企业版相比开源版内核 RT 降低 20% 以上 , TPS 性能提升 30% , 并且解决了高并发场景下的事务处理“毛刺”问题 。
TXC/GTS/Seata/MSE 一脉相承 , 其愿景是让分布式事务的使用像本地事务的使用一样 , 简单和高效 。
从分布式应用架构到分布式应用治理 治理不仅是架构的延续 , 更是下一代应用中间件技术的演进方向 。
分布式应用架构的需求包括 RPC 框架、消息队列、服务发现、配置中心、网关、分布式事务等 , 解决的是分布式应用落地的问题 , 但随着服务数量的增加、服务之间的依赖更加复杂 , 分布式应用治理成为更加迫切的需求 , 包括流量治理、开发测试治理、数据库治理、混沌工程、多活 , 解决的是用好、管好分布式应用的问题 。