开发者学堂课程【2022阿里云云原生中间件开发者大会集锦:云原生微服务趋势】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1053/detail/15299
云原生微服务趋势
内容介绍:
一、行业趋势
二、技术趋势
三、云原生网关逐步成型
四、开源&产品规划
本课程分享的题目是原生微服务趋势。将通过行业的一些趋势,技术趋势,和阿里巴巴在开源的一个布局,产品规划这三部分进行一个分享。
一、行业趋势
在行业趋势里,会根据整个开源的一个趋势和整个一个行业的一个报告进行一个整体的分享。
1.行业报告
首先看一下行业报告,可以看到从整个行业报告上来看,就是整个微服务行业保持着22.4%的一个增长,并且亚太地区35%的一个市场份额。在整个亚太地区都是国内为主导的。然后第二个,就是说大家可以看到图中右边这张表,就是整个阿里微服务的DNS最佳组合,一个发展情况,从整个star数上来看的话,基本上也在20%左右。然后,第二个事情就是它发生的变化就是star数可以基本上都接近都突破两万,然后,有广大的一个用户基础,这就意味着每年就有这个数万家企业,进行整个微服务的一个架构的一个改造。
然后第二个一个行业报告的一个数据显示是27%的一个用户采用服务网格的一个技术。然后,增速和上面整个行业的一个趋势上来看,基本是相当的比整个这个符网格在微服务的子领域里面,它比微服务的这个增速稍微高一点,但是,基本也可以看到比几年前的一个火热,现在基本上已经回归到一个理性的一个状态了,为什么会这样?后面再技术这个环节进行分享然。
最后一个就是一个数据就是37%的ingress实现选择了envoy,第一个是ingress 第二个就是envoy,它是在相比19年增加了116%,这个增速是最高的,快速的成为了第二位,而且,就是说在五月份的时候也就是上个月envoy社区推出了gateway的一个子产品,它通过整个gateway API再推进ingress的标准化和网关标准化的一些相关的一些事情,这个事情还是非常值得关注的。
2. 微服务行业分析
(1)、效率图
然后为什么整个微服务行业能有这么快的一个发展?那可以看到下图左边,左边这张图其实是一个由单体应用变成微服务应用的时候,然后在什么时候生产效率开始发生改变?纵坐标是应用的复杂度,人数的复杂度,纵坐标是整个研发效率,生产效率,运维效率。
然后可以看到,当应用小的时候,就是举个例子不超过十个人不超过十个子系统的时候,就是说采用单体应用效率比较高,但随着整个业务规模复杂的提升,可以看到采用当地应用效率是能力大幅下降,采用微服务效率就会逐渐显示出优势了。
(2)、三个变化
然后在这张图里面,那就是说这个时间点发生了什么变化,其实这个有三个变化已经在产生。
第一个变化,就是说达到这个拐点的企业越来越多了,用户群体的蓄水池越来越大了,就是说整个数字化的进程,在让整IT系统变得复杂,比如说最早采用微服务的互联网行业,,它已经从最早的过去的十年,从web1.0演进到web3.0,它的整个架构是非常的复杂的。阿里巴巴有十万个应用,都是在这十年间产生的,那这是相当复杂的。然后也助力了整个互联网的一个蓬勃发展,快速的迭代。
然后第二个就是发生的一个变化,那就是说互联网的整个行业,微服务已经从互联网开始渗透到各个行业,比如说从一个传统行业,比如说这个房地产领域最早的可能它也就是一个的一个网站页面,到现在可能贝壳这样的一些新型的一个领域,它整个做的时候都是一个互联网的一种做法,它直接进入web3.0的一个数字化的深度,然后它的整个it系统的复杂度,大幅的一个提升。
然后第三个其实发生了一个很大的变化,对于很多it企业,它因为它有很多的新老系统,包括多个sv提供的一些系统,这些猎夫兰对于的一个快速迭代来说,它都是一个比较大的负担,如果采用微服务系统这些复杂度,给它隔离开通过网关把新老系统做一些集成,快速迭代新的系统,直接在微服务架构上去演进。
(3)、数字化进程让it系统更复杂
本课先第一个,第一个就是到拐点的用户,现在是越来越多,然后,因此助力了整个微服务的一个增速。
(4)、开源&云大幅降低门槛
第二个其实也发生一个变化,就是说这个拐点再向左移,左移就是意味着有更多的用户,比如之前有十个子系统,十个人用。才能发挥更大的效率,现在其实可能到五个人,五个子系统,可能采用微服务比单体应用具有更高的效率,为什么这么说呢?因为云开源大幅的降低了整个微服务的使用的门槛,在最早采用微服务架构的时候,就是阿里巴巴最早去做这个分布式架构,演进的时候,采用微服务架构的时候,其实阿里投了数十个人去做这套系统,然后维护这套系统,其实它的投入其实还是非常高的,那都是几百万,但是随着整个开源的推荐,就是比如阿里巴巴主导了整个开源技术站,那把几十个人开发的整个微服务系统,全部对社会开源开放,那这样把整个技术的标准化,技术门槛大幅下降了。
第二就是通过云计算,云计算它通过集中化的一种模式,把之前的整个微服务的服务门槛,使用门槛成本又大幅的从百万级下降到万级,大幅的降低了整个微服务使用的一个编译成本,这样也就是说,无论是从技术门槛,而从成本上的大幅下降了。
第三个其实也发生了一个变化,就是和第一个是相辅相成的,就是随着整个原2.0的一个推进,应用架构的理念已经得到了整个行业的一个广泛的认可,并且通过互联网的第一代的发展,在这个领领域积累了大量的一个人才,这些大量的人才能反过来推动了各行各业的,整个微服务的一个发展的一个历程,这就是通过单体到微服务应用的改造的一个拐点的左移,让更多的企业成为了微服务的受众。
(5)、采用微服务投入产出比大幅提升
最后一个就是说,对于处于当前已经是微服务架构的这些公司来说,它后边开发新系统也一定也采用微服务,而且会有更高的一个投入。因为随着整个云计算的推进,就是算力成本在不断的下降,但人力成本其实在不断的提升的,那为服务作为整个应用架构,是能大幅的提升整个研发效率,迭代效率,让企业在竞争中保持先发的优势,因此会得到越来越高的一个投入产出比。
然后另外,随着整个微服务的推荐,能让这个业务的部署块,从大块变成小块,然后这样就能提高整个灵活的调动能力,充分的享受云计算的一个红利,充分利用云的弹性的能力,降低整个资源成本。然后,对稳定性高的流量大的,就可以多准备一些机器扩容,剩下的对于这些一要求不高的,那就可以使用salinas类似的架构,然后随时的弹性,这也就是为什么整个微服务行业现在能够保持一个高速蓬勃的发展,也相信在未来的十年,微服务会依然持续保持20%的一个增长。
3.微服务开源趋势
最后介绍一下,就是开源的一个技术趋势,是通过开源加速了整个微服的一个标准化,然后从整个微服务的趋势上来看的话就是,微服务和容器构成了云原生应用架构的一个基础思想,那么,微服务解决dev的问题,容器更多解决的是ops的问题。
(1)、效率
整个云原生的领域从devops到整个devsecops的整个方向去演进,对于整个这个微服务的整个开发者而言,其实它在整个开发的过程中需要关心下图的四个领域,它最早可能就是起来一个需求,它需要快速高速的去,交互,解决,研发效率的问题。
(2)、性能、可用
效率解决之后上线之后,它会遇到各种性能稳定性的一些挑战,它就陆续需要解决性能,稳定性问题。到最后可能用户规模变大了,经常有黑产,可能它就必须去关心安全问题,它是一步步往前去迭代去演进的,对整个开发者其实能力是越来越高的,当然那就是说在微服务领域,也是迎合着围绕着开发者各领域的一个布局,从整个开源的整个cncf的整个大图,可以看到,就是注册中心,配置中心,在整个微服务最早的阶段解决,效率和整个性能扩展性的问题,已经进入了一个相对成熟稳定的一个阶段,进入了一个相对标准的一个阶段,然后服务网格它解决,叶浏量控制,一个标准化的事情,包括服务治理相关的事情,它解决核心解决的是高可用的一个问题,目前正在成为一个主流。
(3)、安全
最近几年,为服务核心在演进服务治理的一个能力,面对未来,可能就是安全作为一个重要的一个需求,从整个网关入口解决安全的问题,是性价比最高的一种模式,然后,可以看到左上角就是api gateway,其实就是有大量的新产品开源,大量的厂商涌入,其实核心就是把网关做一个安全入口,它得到了一个非常蓬勃的发展,也就是安全得到了越来越多的开发者,越来越多的一个公司的一个重视,这就是整个微服务领域从整个devops到devsecops一个整个演进的趋势。
这部分就是分享的整个行业的一个趋势。
二、技术趋势
下面分享一下,就是为服务的整个技术趋势,在整个为服务的整个技术领域,整个行业也发生了非常标准的一些事情。第一个,就是纵向的分层。然后横向的分工,整个标准已经逐渐的在形成,按照这个顺序讲一下,这个领域的一些标准怎么产生的?
1. 个微服务架构分层逐渐清晰
第一个就是从整个微服务架构上纵向的分层已经逐步在形成,微服务架构核心的就是围绕开发者解决研发效率,让业务聚焦业务,聚焦业务开发,所以这个纵向分层是分为三个层面。
(1)、后端baas化
最下面的其实后端baas化,然后,提高开箱即用后端服务,解决高可用问题。
(2)、中间层轻量化
然后中间内层的核心解决是客户端轻量化,让业务的侵入越小,启动越快,冲突越小,然后也方便多语言和一些流量控制,高可用的一些增强。
(3)、上层业务serverless化
最上层业务serverless化,no server,让业务更加聚焦业务开发,提高整个研发,对效率而不用关心复杂的一些底层的一些细节。然后,这样就是可以只关心接口的开发,这样能得到现发效率得到一个充分的提升。
这是维护纵向的一个架构分层在产生。
2.微服务技术标准逐步形成
(1)、组成
下一部分就介绍一下整个微服技术标准,其实,在做横向的一个分工,那最左边的就是数据面,中间是控制面,右面是治理面。
数据面,核心解决的是流量连接的问题。控制面解决的是控制流量的一些标准的问题。最右边的治理面,解决的是区域流量控制的标准,提升整个微服务的高可用和是安全的一个问题,这样就是纵向其实它的整个分工已经逐步形成,通过中间的控制面的一些标准正在逐增加。
(2)、演进趋势变化
那面对未来这个标准之上,未来整个微服的演进的一个趋势就是提升整个服务治理的一个能力,然后,从而形成整个差异化的竞争力,引导未来的十年的整个微服务的一个发展。这就是整个微服务的一个大的标准,那在这个标准的形成过程中的每个子领域也在发生一些变化,那从网关从盗控制面一直到服务器里的一个整个顺序分享一下这方面在发生的一些变化。
三、云原生网关逐步成型
1.标准化控制东西南北流量
第一个先介绍一下,就是整个云原生网关的标准一个成型,网关是作为整个容器和整个微服务的一个连接点,然后,容器通过ingress把整个网关标准化,然后网关又作为整个微服务的一个流量的入口,然后,它通过ingress标准化之后统一了数据面,然后,通过envoy统一了整个控制面。这样,又通过了另外一个在微服务领域又通过了服务网格这个技术,然后把这个东西向流量用标准化控制了,那也要基于istio向上统一了东西南北的一个流量控制,对象它屏蔽了k8s,nacos等不同的注册中心的一个服务来源,从而达到了一个标准化控制东西向东西南北流量的一个能力,这就是网关基本上标准已经成型。
2.高集成
什么样的网关是符合下一代的一个原生网关?认为就是一个高集成的一个网关,把安全网关,流量网,官微服务网关三位一体的合一,然后这就是一个在入口统一的提高整个安全和高可用的一个网关,那就是一个云原生网关。
(1)、集成安全能力
首先,原始网关要在入口建立一个安全的一个防线,然后它需要和整个证书管理,登录认证机制,健全加密和整个waf网关高度集成,提升整个网站入口的安全能力。然后解决证书过期,然后暴露服务,出去有安全泄露的一些风险的问题,这是第一个要集成安全的一些能力,
(2)、流量控制的能力
第二个要集成整个微服务网关的一个流量控制的能力,那也要基于标准化控制东西南北流量,那云原生网关要统一的控制东西南北的一个流量,在这里面要集成为服务领域里面的限流降级垄断,整个流量灰度的一些能力,从入口建立一个高可用的一个防线,然后向下原生网关需要支持多种work cloud,包括最传统的单体应用,它可以路由,微服务的可以路由,服务网格的,serverless的各种后端的work cloud它都可以把流量路由负载的下端统一流量入口,然后面对东西向不同的业务域不同的安全域,不同的reason,在微服务的连接问题也可以通过原生网关统一的去控制,这样就提升了整个流量控制的安全性和稳定性。这就是未来的云原生网管的一个发展趋势。
阿里巴巴目前已经在这个领域布局了三年多,现在去年也通过一个云产品把这个原生网关商业化了,也欢迎大家去体验一下,相信有了安全的这个抓手,这个演进的方向,这个网关会得到越来越多的一个重视发展。
3.数据面sidecarproxy与proxyless模式融合
下面就是介绍完南北向网关之后介绍一下东西向流量控制的一个变化。
就是东西向流量,其实rpc领域,它在sidecarproxy与proxyless两个模式在融合发展,然后作为整个这个rpc体系里,就是srevice模式,mesh模式和对应的rpc这种cloud proxyless模式,其实它各自有各自的优劣。
采用sidecar的模式,它可能无侵入的去做流量控制,然后带来的问题,其实它是会有更复杂的链路,定位问题的成本比较高,稳定性其实包括运维成本也会上升,rt包括性能的消耗。
然后,这个proxyless模式就是的整个grpc double直接对接了产品seata可以控制面打通,这种模式的好处,其实它的可定卫性,易用性都是比较好的。相对弱一点的,就是说它可能就是升级的时候侵入性,因为需要依赖一个sdk,稍微高一点,各自有各自的优劣,让相信长期演进的话,应该是整个proxyless去演进,因为mesh它把流量标准化之后,可以看到从四层的流量标准化,到七层的流量标准化之后,现在rtp这些协议,tcp这些也没有人单独在做一个sidecar去拦截流量,一定是lub包这种依赖标准达到了,那一定是lub包依赖多语言的去实现就好了,目前阿里在dubbo这个协议上,3.1的实现上,也加强了对xDS协议的一个支持,这就是在r pc领域做的一个布局规划。
3.服务治理透明化,控制面标准化
下面介绍一下,就是说基于东西南北流量下面的整个控制在发生这些变化,那首先在今年开源了open sergo这个服务治理的一个项目,它本质就是解决数据控制面的标准化控制了一个问题,在阿里的整个java,整个微服务开源有一套完整的一个微服务治理体系。
以服务网格代表的也有一个服务治理的体系,但是它能力比较弱,那基于整个这个开源的这些解决方案,抽象了整个服务治理的产品,这个产品,其实它从整个开发态到运行态,做了整个完整的一个流量控制的一个定义,然后从能力上,其实治理核心解决的是高可用的,治理安全治理,那也做成了一个完备的一个布局,目前,在和字节头条,一起在贡献标准,目前已经发布,大家可以关注一下,服务治理标准化之后,基于服务治理能力的构建就是未来的一个关键发展,布局的路。
4.分布式事务从多样化到标准化
基于控制面之后,那下面的一些buzz化的一些服务里面,会在分布式事务领域做很好的布局,目前,就是seata已经成为了整个分布式事务的一个事实标准,然后,并且在at和xa这种业务的一种事务模式也得到了广泛的使用,从整个seata发展上来看的话,就是说多语言的诉求,包括整个这个seata的模式也得到了一个非常好的一个发展,那也会在未来seata的整个2.x的规划中加强这方面的布局,提升多语言性能的seata的一种模式。
5.多语言解决方案标准化
最后介绍一下,整个微服务多语言的一个情况,阿里中间件java做的是最强的,然后基本上都已经武装到牙齿,但是随着阿里巴巴收购越来越多的公司,然后陆续的从java到c加加到node js前端的应用,做了一个完整的支持,也就意味着几乎支持了所有的主流语言,这也是因为阿里巴巴的非常大的庞大的业务,是复杂系统带来的,基本上就是每个领域,每个多元领域都做了一个布局。
从整个行业来看的话就是,java,厌世,微服务,最主要的语言,其次就是go语言在过去的两三年,其实得到了一个蓬勃的发展,node js做一个前端主流框架,也得到了一个非常好的普及。
然后,支持多语言的方式,一个是lide包的模式,还有一种就是和runtime去集成,包括服务网格dapr这样的一些多运行时的架构做成了集成,提供一个无侵入的一个运行时的一个方案,目前也集成的非常好,在阿里巴巴也有非常多的一个应用。这就是在整个多语言声带,这是标准化上做了一个非常好的一个布局。
四、开源&产品规划
1.阿里微服务开源整体规划
下面最后介绍一下,阿里巴巴的整个开源微服务的开源和产品的一个规划。在整个阿里巴巴的整个微服开源里边,就把它分成三层,中间层就是为服务消息,然后是整个主导的一个领域,就是非常强的领域,对象那今年会和整个阿里jdk,就是阿里的jdk,进行一个融合,目前从企业级的测试上来看,阿里的java中间件在这个dragon wild这个这jdk下面性能几乎可以提升一倍,近一倍的一个性能提升,这个是有助于阿里中间件有更好的一个性能的一个表现,后面社区会陆续有更多的一些信息介绍。
第二步就是微服务的这一层基本的过去十年,开源的很更多的产品是解决微服务从0到1的一个拆分的问题,基础的一些配置管理服务发现,这是一些对应的分布式组件,在未来的十年,那可能更多的解决从1到100的一个服务治理的能力,开始的open sergo,蓝色的部分,基于open sergo这个标准,sentinel会继续做服务治理流量,包括通过APP stag做一些容灾演练,parser plane的一些混沌工程,会支撑整个服务治理高可用的一个验证。
然后在消息领域,那rocketMQ5.0,然后基于消息事件流一体,也会在流方面,rocketMQ的一个布局流的领域欢迎各位小伙伴一起参与共建。
这就是阿里在整个微服务的一个开源规划,重点就是发力微服务治理,提升整个系统的高可用。
2. 阿里微服务个产品规划
然后,简单介绍一下,就是阿里微服务的这个产品规划。就在过去的三年里,已经基于阿里云打造了mse微服务引擎这款产品,然后,提供了整个阿里开源的这套微服务体系的一个企业级的解决方案,并且,也几乎支持了所有的主流的微服务框架,并且,提供了默认高可用的技能力。
(1)、高可用、高性能
然后,在这个竞争力里边,核心就是围绕着整个性能比用户自建50%,然后让用户有更好的一个性能表现,可以做大量的一些性能调优的一些一些动作,其次在可能性上,因为作为一个backend服务,在流量测,让你感受不到它的存在,比自建会高一个九的一个稳定性。
(2)、易用、安全
最后,基于整个产品化的方面提升安全的一个集成,和对应的应用性的一个大幅的提升,提供一个开箱即用的一个服务,不用让用户关心这么复杂的一个东西,然后在产品规划上,就是微服务领域产品规划上,第一个在入口网关会不断的去加强安全、高可用的一个防线,目前已经把waf集成的一些相关的工作,包括三方认证的工作,都已经做好了,然后,在本月也完成了和sentinel这个开源产品的整合,从入口建立整个安全高可用的防线,保证整个系统的问题性。
第二个,就是说在基于治理平面,那会基于open sergo的开源标准继续提升全面升级服务治理的能力,从之前解决优雅上线,优雅全链路灰度到审核限流,降低熔断高可用这些能力,最后,会提供分布式事务的一个解决方案seata的目前已经开始免费公测,也欢迎各位小伙伴使用。
这就是阿里巴巴的整个微服务产品的一个规划,也期望通过产品化的方式,通过云的模式,把一个微服务的一个成本成百万级降到几万块钱,这样的将整个微服务的普及度大范围的降低,使用微服务的一个编辑成本,从而让业务快速的去迭代。然后在整个竞争中保持一个先机。
然后最后,就是这个,如果在刚才这个分享的过程中有一些问题,或者疑问,或者有需要讨论的一些问题,可以扫下边产品的群,然后把问题提上来,下来会收集反馈,右边如果对产品感兴趣的,可以扫右边这个码,进行一个线上的一个交流哦,了解一下这个现在的一些企业能力,可以体验一下。