开发者学堂课程【2022阿里云云原生中间件开发者大会集锦:阿里云中间件发展历程和开源现状】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1053/detail/15302
阿里云中间件发展历程和开源现状
内容介绍:
一、发展历程和开源现状
二、中间件体系
三、开源项目介绍
四、基金会投入
一、发展历程和开源现状
(1)中间件定义
今天第一个 topic 是给大家介绍一下阿里云中间件的发展历程和的开源现状。
首先来回顾一下中间件的定义,其实中间线不是一个新的概念,已经发展非常多年,那它的出现其实就是为通过标准的接口和协议去解决一个网络环境下分布式应用软件的互联和互操作的问题。但是最近几年随着云原生技术的高速发展,那其实对于中间件的在新的时代云时代的定义又进行扩充。
那可以看一下2020年由信通院牵头组织的云源森中间件白皮书里边,对于云跃升的中间件又提出10项新的要求,这10项要求主要包含在底层资源设计原则运行时和呈现状态4个维度里边,大家有兴趣可以详细阅览一下这个白皮书。
(2)发展四阶段
阿里巴巴的中间件实际上是和阿里业务一起成长起来的,大概有15年的发展历史,把整个阿里巴巴中间件的发展阶段可以看成是阿里云阿里巴巴整体进行延伸实践的15年的一个全程见证者。
那在这个阶段里面,把把中天建的发展分成这样的4个阶段,第一个阶段是中间件1.0时代,那这个时代阿里巴巴彻底开始放弃ioe并且启动自研中间件的这样的一个操作。
在这个阶段发布hsf去做分布式的IPC调用,还包括notify去做消息推送,包含tddl去做自己的自研的数据库的分库分表能力等等。那这一系列的中间件的发布,其实象征着嗯阿里巴巴的技术已经具备支持业务高速发展的能力。并且在这一个时期内,也开始对外孵化阿里云的飞天操作系统。
第二个阶段是中间间2.0时代,随着阿里巴巴内部的业务的规模不断的扩张,那在这种情况下,对于稳定性对于高可用的建设也也是提升到日程。当完成规模化,那第二步其实就是对于规模化的应用,如何稳定高效确定的运行提出新的挑战。这一个阶段以中间件为核心,在阿里巴巴集团内推出单元化一地多活等等高可用架构的一个设计和落地,那并且在这个阶段实现阿里整体的应用架构的这个stable by default的这样的一个模型的落地。那中间点3.0这个时代开始启动藏云中间键借助自己的技术优势,在云上推出像一大4mq、drds等等一系列的商业化的产品,那这是把阿里巴巴内部积累多年的在分布式在微服务领域的一些产品对外进行输出,那普惠大量的外部的企业客户,也为阿里云带来大量的差异化的竞争力。 并且在这个阶段开始,开始意识到技术输出的重要性,除商业化输出之外,也是这个阶段开始投入比较大的资源和力气去做开源。那现在大家所能解到的阿里巴巴中间件的开源项目,比如说阿帕奇的洛克森阿帕奇的double拉克斯等等,也都是在这个阶段去对外进行的,开源那从2020年开始,正式进入到中间件4.0时代,那这个时代推行三位一体的技术发展策略,也就是要求集团内使用的技术和阿里云上使用的技术,以及的开源的技术,要是三位一体的,这样能够让的技术和架构能够形成一个很好的协同发展的一个情况,并且能够更好的赋能给的企业客户。
那在这个阶段能够借助云去帮助企业充分构建弹性、韧性、安全、易用性高SUV的原生应用,并且能够快速的让企业进行数字化的一个转型。
所以经过这样的4个阶段的发展,可以说阿里巴巴的中间件是有别于其他的企业,或者有别于传统中间件定义的中间件体系。
二、中间件体系
那阿里巴巴中间件是根据自身业务发展出来的互联网中间件体系,所以整体在中间件的每一款中间件都无时不刻的体现互联网和云的一些价值,比如说弹性能力、分布式能力,容灾能力等等。
可以看到在中间件的分布中,也是把企业云源深化和分布式化落地过程中,所需要的基础设施一一进行分布,这边主要包含架构监控服务领域,研发框架消息和工具领域,还有微服务托管领域,包括的一些基础设施基础产品领域等等都有中间件的一个分布。
并且这里边有很大一部分中间件都进行开源,那从目前开源的项目来看,取得非常好的一个结果。
可以说的开源项目已经普惠数万的外部企业和百万的开发者。那介绍一下中间件的开源项目,过去10年左右,中间这样开源项目主要集中在分布式应用架构领域,那这个领域其实是解决使用者在自己的企业内推行分布式0~1过程中需要依赖的基础中间件,这些中间件的落地可以让企业的分布式或者微服务化的进程大大的加快,也可以让整体的架构的韧性和稳定性得到非常好的一个提升。
这里边就包含现在经常看到的阿帕奇的两个顶级项目,一个是double,一个是looking 那同时还有Java领域的诊断神器阿尔萨斯,微服务的注册和配置管理的max,分布式事务的西塔,以及和斯芬克劳的合作共建的s分cloud的,阿里巴巴为服务集成方案。
当然只有这个领域,可以看到现在的发展趋势是不够的,那现在越来越多的客户完成微服务化,完成分布式的应用的落地。
随着分布式应用和微服务的规模越来越大,去管好和用好的微服务应用,其实被提上的日程也看到越来越多的需求,越来越多客户把这个作为现在发展中的一个痛点。
所以从去年开始,开始定义分布式应用治理这个领域,后续也会在这个领域不断的去推进的开源项目和的技术去包括的技术产品的一个输出,那分布式应用治理这个领域它主要解决什么问题主要就是解决用户已经完成0~1分布式和微服务落地的过程之后,进一步扩大规模,那怎么保证大量的微服务应用,大量的分布式应用能够运行在一个可靠稳定高效的环境中,能够在出现问题的时候快速容错,能够在没有出现问题的时候快速预警的能力等等这些对于一个企业未来的高速发展都是非常重要的。所以在这个领域,今年推出两个新的开源项目,一个是open circle,主要去做微服务治理,一个APP IQ主要是做应用的多活架构,那同时还有以前开源很久的身体做应用流量管控,和前年开源的cos blade的,目前已经捐给ccf成为ccf的一个砂浆项目,主要是去做混沌工程、故障演练、依赖注入等等这样的一系列的这个领域的一个能力,基于现在这样4个项目,共同组成现在分布式应用治理领域的完整的配套的解决方案,相信客户和使用者能够基于这4个开源项目,构建出自身比较强大的分布式应用治理相关的一系列能力,欢迎大家对于这4个项目有什么需求可以参与进来一起共建。 那接下来介绍一下今年新开业的2个项目,其第一个就是open circle,知道过去很长一段时间微服务领域在治理这块没有统一的标准,这会让使用不同框架的企业和个人和开发者对应用对流量去做管理的话是比较困难的。
选型困难再加上大家也没有统一的规范,这样的话的迁移和这个跨平台使用能力也受到约束。所以去年开始构思这样的一个开源项目,并且和的一些伙伴,比如说像自己 b站快手等等伙伴一起去制定这样的标准。
今年的4月份正式对外推出open circle,在这样一个项目,这个项目是以一套开放的、面向应用的、贴近业务语义的服务治理的规范和参考,实现能够帮企业快速的构建自己面向海量微服务场景下的服务治理相关的能力。
三、开源项目介绍
这里边最主要的还是包含三个部分,第一个部分是的规范部分,规范部分是几家企业一起合作共建的,也希望大家参与进来。
这个领域定义像流量治理、流量防护、可观测服务发现、数据库治理等等一系列的规范,能够让的微服务在全生命周期内都具备一个很好的治理能力。那第二是基于上面的规范,会提供多语言的参考,实现包括Java购 c加加卢比等等。
现在微服务常用的一些开发语言是dkm会参与实话说这个地方的工作量还是比较大,需求也非常多,希望大家能够一起参与共建,把整个生态和项目的完整性做到最好。
第三块是基于的,SDK要去适配目前业界市面上常用的一个框架,里面包含微服务框架,往公安注册中心、配置中心、消息队列等等一系列的微服务所依赖的框架或微服务本身实现的框架,这样能够实现现有的存量用户也能够快速遵循相关规范,让自己的应用具备无缝迁移或者是更好的治理能力。在在这个项目推行之初,就设计这样4条设计原则,其中第一就是标准化,希望通过一致的标准的微服务治理模型和规范,降低用户微孵化微服务化的成本。
因为一旦一个企业一个开源项目要侵入到研发架构和用户的开发流程中,那它的接入成本其实是比较高的。所以希望通过标准化这样的一个规范,去让用户接入这样的系统和实现这样的微服务治理能力的成本比较低,效率比较高。第二是作为一个开源项目,始终要保持自己的开放这样一个定位,所以一开始就设计出要去支持多语言框架,并且提供多种治理模式,这里面还包含现在发展比较快的service脉型以及一些比较新的领域,比如说plus类似模式的max等等,都会是支持的范围。 那另外也是和业界一起去共建开放的规范。
第三个是在个给客户的价值创造和使用者开放。价值创造这块,希希望尽量的减少微服务开发者的心智负担,屏蔽底层差异,让开发者能够更加专注在业务的价值开发上。
第四个是希望能够覆盖微服务应用的全生命周期,让整个微服务从部署、交付、运行、监控,故障排查等等全生命周期都能够具备可自理的能力。
那第二个项目是今年1月份开源的appiq知道随着现在互联网应用的分布越来越广泛,甚至很多应用已经和国际民生息息相关。 那在这种情况下,其实对于现在应用的稳定性和容灾能力,其实提高一个非常高的高度。
过去10年阿里巴巴在容灾这个领域其实积累非常的深厚,知道阿里巴巴的单元化,同城双活、异地多活等等这样的架构都是作为在架构的首先提出者,并且也是在自己的业务中做很好的一个践行。那在这种情况下,今年1月份把过去中间件在异地多活容灾这块的积累、技术积累、经验积累,以开源的形式对外去提出。
所以希望能够借助这样的项目,能够帮企业构建以应用为中心,面向未来的容灾架构。要实现容灾架构,可以知道不管是从流量层、接入层还是数据层,还是传输层还是应用层,都需要具备良好的容灾能力,才能够认为是架构上具备容灾能力。 所以在这种情况下,设计这样的4条设计原则,第一个是分层的设计标准,定义应用多活、接入层、服务层、消息层、数据层的应用多活的标准规范。
如果其使用者基于这样的规范使用,这样的开源项目,就能够让整体的it架构具备端到端的多活能力。第二是精简的接入规范,提供丰富的样例进应用,少量改造及具备应用多核能力。过去和很多的开发者还有客户去交流,他们总是认为要想实现多活,可能对他们来说改造成本会非常的大。那所以在这种情况下,对于精简的接入规范提到一个比较高的高度。那这基于这样的一个精简版的介入规范,用户可以以比较低的成本就能够实现自己的这个多活的能力。
第三是广泛的开源支持,要想做多火,一定要有丰富的生态,能够端到端的实现多活,在这种情况下开源是必不可少的。所以在设计之初就把开源知识作为很核心的一个能力,这边主要就包含一个策略策略开放,核心技术无差别的开源和生态开放,兼容主流的开源技术和标准。那第四个是提供会提供多样的实践的案例,面向多云多行业典型场景的最佳实践和方法论。
也就是说当一个企业想要构建自己的多活架构的时候,无论你是想要去做异地多活,还是多云的多活,还是云和飞云的多活,其实不同的场景以及再结合自身的行业属性去做多活等等,都可以基于这个项目去找到比较适合自己的解决方案。 Ok介绍完两个新开源的项目,那后续再说一下阿里巴巴和阿里云在接下来的开源中的一些整体策略和的投入。那今年 uh年初开源社发布的2021年中国开源年度报告里边显示,阿里巴巴蝉联中国企业开源活跃度第一,这也能很好的体现在开源的投入情况。
并且通中国开源10年洞察报告中也显示,过去10年阿里巴巴始终排名第一,这也是很好的体现去持续做开源的一个决心。那在中国活跃开源项目的Top30的榜单中,阿里巴巴共计有10个项目上榜,其中中间件团队开源的阿帕奇double阿帕奇,look那q拉克斯西塔等等4个项目,就有4个项目上榜,所以占比还是比较高的,中间件团队是一直以来都是阿里巴巴开源力量中的核心部分。
四、基金会投入
那除开源的这个投入之外,还积极参与到许多的这个顶级的基金会里面去,比如说像临时基金会、原生基金会,阿帕奇基金会等等,那还包括现在国内的开放原子基金会,也有参与在里边,并且也有贡献相关的项目。
那贡献的项目现在基本上已经遍布主流的这个开源社区,而且后续也会持续的参与到基金会的建设以及基金会的项目建设里边去,也欢迎大家一起来参与到 ah的开源的这个进程中,一起来去为中国开源技术的发展贡献更多的力量。
那今天的分享主要就到这里,那接下来会有的同事们给大家去更详细的介绍的开源项目以及未来的开源项目的规划。