开发者学堂课程【Dubbo 开源、自研、商业化三位一体战略解读:Dubbo 开源、自研、商业化三位一体战略解读】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/957/detail/14878
Dubbo 开源、自研、商业化三位一体战略解读
内容介绍
一、阿里巴巴服务框架三位一体的选型与实践
二、Dubbo 3.0在阿里云商业化方向上的实践
三、Dubbo 3.0+MSE 服务治理在钉钉的实践
一、 阿里巴巴服务框架三位一体的选型与实践
1、何为阿里云原生三位一体选择
开源:生态/开放
自研:性能/高可用
商业化:易用/安全
2、Dubbo 和 HSE 在阿里巴巴的实践
Dubbo:在2011年开源后,迅速成为业界广受欢迎的一个微服务框架的产品,在国内外均有着广泛的应用和发布项目。它诞生于2008年,起初他仅仅只是在阿里内部的一个系统使用。当在2011年的时候,阿里 B2B 决定将整个项目开源,在期间仅用了一年的时间就收获了来自不同行业的大批用户。2014年由于团队内部的调整暂停更新,但是于2017年9月重新开启开源。同时在2019年5月于 Apache 孵化毕业,成为第二个由阿里巴巴捐献阿帕奇毕业的一个项目.
HSF:和 Dubbo 并列在阿里内部运用的服务框架,HSF 是由阿里巴巴使用,更多是承接了内部从单体应用到微服务架构的一个演进,支撑了历年阿里双十一的平稳运行,2008年5月份 HSF1.1发布之后历经数年,HSF 作为一个基础的RPC 框架,逐渐演变成日支持支撑十万亿级别调用的,并且是拓展的微服务框架。对于集团的需求而言,核心是稳定性跟性能,因此,当时选型在电商高并发场景下久经考的 HSF 作为一个新一代的服务框架的一个核心,随后 HSF 推出了2.0版本,并且针对之前的问题进行了改造,大大降低了维护成本,同时进一步提高了稳定性和性能,因为 HSF 兼有原来的 Dubbo 协议所以原来的客户可以平稳的迁移至新版本。所以 HSF 在阿里内部迅速铺开,部署的 server 数量达到数十万,基本达到了阿里巴巴内部微服务,并且框架的统一,并且经历过了多年双十一零点流量的洪峰验证。
Dubbo3:作为 Dubbo 捐献给 Apache 的里程碑版本于2021年6月 Dubbo3.0正式发布,也代表了 Dubbo Apache 版本全面拥抱云原生的节点。
2021年3月份交付 Ttriple 版本、2021年9月份交付 Proxyless Mesh 能力、2021年11月份3.1发布 Dubbo3.0生产可用级,届时会带来 Dubbo 在 Mesh 上的最佳实践、2022年3月份 Dubbo3.2正式发布交付服务柔性能力,在大规模应用部署下实现智能流量调度,提高系统的稳定性与资源利用率
3、下一代微服务的挑战和机遇
业务的发展和自身框架的迭代 Double 跟 HSF 微服务框架从协议层简单的兼容已经无法满足了。同时,随着云原生的不断发展和云原生理念的一个广泛传播,微服务的发展有着以下的趋势
(1)云原生时代的微服务发展趋势
1、K8S 成为资源调度的事实标准,Mesh 化逐渐被接受:屏蔽掉底层的一个基础设施,成为软件架构的一个核心的一个演进目标。无论是阿里巴巴还是其他企业用户所面临的问题都已经从是否上云变成了如何平滑稳定且低版本的迁移上云.
2、底层基础设施易变,云上微服务多元化:由于上云路径的多样化,以及现有架构迁移至云原生架构的一个过渡态的存在部署,应用设施的灵活易变,云上微服务也呈现多元的一个趋势,同时跨语言、跨厂商、跨环境的调调用必然会产生。催生出基于开放标准的统一协议和框架来满足互通的需求。
3、端上应用对后台服务的访问呈爆发性增长:端上对后台的服务的访问呈爆炸式的增长的趋势,应用的规模和整个微服务的规模体系也都随之增长。这些趋势都给HSF跟double带来了新的挑战。
(2)如何解决云原生微服务发展所带来的问题
抛弃私有协议
选型标准协议,网关友好,生态完善
服务云原生
在 K8S 和 Mesh 场景中支持原生服务发布和治理
规模化增强
面向失败设计,降低单机资源消耗,提高全链路资源利用率,支持超大规模集群水平扩容无感
多语言
减低多语言 SDK 支持门槛,优化框架抽象,包括协议、序列化和注册发现
4、三位一体战略下微服务框架的最终选择 Dubbo3
微服框架是基础的组件,大部分公司在早期选型或者业务发展到一定规模的时候都需要确定使用某一个框架儿。一个稳定高效的资源框架需要较长的时间的打磨和优化,对于阿里云而言,这就带来一个问题,内部使用的学员 HSF 框架与云上用户使用的 Dubbo 开源框架在协议、内部模块抽象以及编程接口和功能支持上存在着各种差异。所以如何让改善这些差异成为目前必须解决的问题。同时,像原有的部门或公司,技术站如何更快的融入现有的体系; HSF 无法直接用于广大的云上用户和外部的其他用户儿以及开源产品对闭源的挑战也会随着开源和云的不断发展而愈演愈力愈烈。
越早解决的这个问题,阿里巴巴和外部企业的云原生迁移的成本就会越低,产生的价值也儿越大。因此,HSF 跟Dubbo 的融合是大势所趋,为了能更好地服务内外客户和两个框架更好地发展,Dubbo3和以 Dubbo3为内核的一个集团的一个适配集团基础生态的园区F3应运而生。
(1)全新服务发现模型
应用粒度服务发现,面向云原生设计适配基础设施与异构系统大幅提升性能与集群伸缩性.全新的服务发现模型。Dubbo3从应用模型入手,优化存储结构对云原生主流的设计模型,从而避免在模型上带来互通的问题,同时新的模型在数据组织上高度压缩,能够有效的提升性能跟集群的可扩展性。
(2)统一流量治理模型
面向云原生流量治理,SDK、Mesh、 VM、Container 等统一治理规则;支持更丰富的流量治理场景,从而大大降低了流量治理成本,也使得在异构体系全局流量治理变成可能。
(3)下一代 RPC 协议
基于 HTTP/2的 Triple 协议,兼容 gRPC;穿透性强、语言无关、网关友好全链路 Reactive Stream 支持
(4) Service Mesh
Sidecar Mesh 与 Proxyless Mesh, 更多架构选择,降低迁移落地成本
第一种 CSDK 部署和当前的Service Mesh 主流的部署产品完全一样,并且对 double 进行瘦身,屏蔽掉与 Mesh 相同的一个治理功能,仅保留核心的 RPC 能力。第二种是 process 模式,Double 将接替工作职责,主动与控制面进行通信,同时,基于 Dubbo3的统一治理的应用规则来治理云原生的流量。
二、Dubbo 3.0在阿里云商业化方向上的实践
1、Dubbo3在商业化方向上的选择
自研微服务→Fat-SDK Pandora→One Agent→One Mesh
(1)自研微服务
依赖冲突难管理
SDK 升级成本高
推出 HSF
(2) Fat-SDK Pandora
基于隔离容器
运维治理效率大
幅提升
推出 HSF、Pandora
(3) One Agent
无侵入
0升级成本
全面兼容开源
推出
Dubbo3、Spring Cloud. Service Mesh
(4) One Mesh
无侵入
多语言
全面兼容开源
2、MSE 服务治理无缝支持Dubbo 3.0
通过 Dubbo3+Agent+集团技术发展以及 Dubbo 的演进和商业化技术实践的红利不断且持续输出给云上客户。阿里云上相关的产品也是开箱即用,无需修改任何代码与配置即可应用
(1)用户操作示意图
(2)Agent 提供的能力
无损下线 离群实例摘除 标签路由 服务鉴权 链路跟踪 金丝雀发布 APL 管理 服务测试 限流降级 故障注入
(3)其优点包括
业务无侵入、无感知
0升级成本
全面兼容开源
基于 Arthas 底座的 One Java Agent
One Java Agent
https://github.com/alibaba/one-java-agent/
3、如何将一个 HSF 应用无缝升级成 Dubbo 3.0应用
原理:Dubbo 3.0实现了 Dubbo 和 HSF 框架的技术统一
只需要将运行环境升级成4.0以上即可
三、Dubbo 3.0+MSE 服务治理在钉钉的实践
1、钉钉文档上云之路
钉钉文档介绍
钉钉文档是阿里集团钉钉出品,自主研发的协同办公套件,包含文档、表格等在线创作工具,无需下载文档,在电脑、手机、平板都可编辑查看,内容可实时保存,钉钉文档在2020年开始启动上云战役,目前已经取得了阶段性的成果。
2、业务挑战
终极目标:只保留云上集群
过渡阶段:双集群
之所以需要双集群是因为上云是一个慢慢恢复的过程,需要按百分比、业务不断地将流量往云上迁移同时一些历史数据也需要慢慢迁移。上游服务和下游服务在集团内,目前只能消费 HSF 协议等其通过 Tribe 协议升级后才能从弹内集群拿掉
3、落地方案
上游服务
当弹内的文档集群收到来自 HSF 的请求之后,会往云上发起一起 Trible 协议的调用,这样就完成了一次上游服务对公有云集群的服务
下游依赖
总结:
文档有弹内和云上有两个集群,需要这两个集群代码一致。在集团内,文档集群需要提供 HSF 服务,供上下游调用,需要提供 Triple 服务供云上集群调用,云上的集群呢仅仅提供 Triple 协议,弹队集群和云上集群可以互通。综合以上几点,Dubbo3.0完美符合我们需求。
方案优点:
上下游服务不需要做任何改变,可以仍然使用原有协议;云上集群使用了开源的协议,使得服务治理非常方便。
服务治理:MSE 和服务治理:ARM 直接使用了 Dubbo 框架经行服务测试和调用
4、三位一体
自研、商业化、开源的三位一体,使得在双11中沉淀的核心技术,可以直接的给用户使用,中间省略了经过云上沉淀再输出的过程,降低了用户在获取双11同款技术引擎的门槛和成本,也可以帮助用户快速的迈入云原生的时代。Dubbo3也正是在这个战略下的选择。
Dubbo3和基于 Dubbo3内核的 HSF,外部和内部齐头并进,为阿里云、阿里云上、集团内以及在开源的用户提供最佳的用户体验。