本文是“2021 InfoQ 年度技术盘点与展望”系列文章之一。
服务网格的 2021,“稳” 字当先。不管是原生社区发展,还是行业实践落地,都以 “稳定” 为第一要义。少了前几年大跃进式的架构演进、功能更迭,多了更务实、更落地的行业探索与实践,2021 年的服务网格正从当年那个狂奔的“少年”、“流量明星”,成长为真正的“实力派”,逐步进入成熟期,被更多行业、企业和标准化组织所接纳。本文将从社区进展、实践落地、行业标准、技术生态等角度回顾服务网格的 2021,帮助读者了解过去一年服务网格的整体进展,为企业选型、落地服务网格提供一些参考。
2021 年,Istio 社区如约每三个月推出一个版本:1.9,1.10,1.11,1.12。稳定的版本发布周期显示出 Istio 社区发展进入常态化,也为企业选择合适的版本提供了便利。总的来说,2021 年 Istio 社区没有发布特别重大的架构调整或者创新能力,更多在接入性、运维性、API 等方面提供更好的原生支持:
纵观 2021 年 Istio 社区发布的四个版本,不难看出:
服务网格技术最早起源于大型互联网公司(Google、IBM、Twitter/Buoyant),服务网格技术早期的应用落地也多为互联网公司:互联网大厂凭借其技术方面的深厚功力与持续投入,在最近几年已经完成了服务网格从初期探索到大规模生产应用的跨越;中小型互联网公司也紧跟大厂步伐,顺应云原生技术浪潮,完成了服务网格“初体验”。2021 年,更多行业的企业开始尝试落地服务网格。
以大规模、高稳定、强安全著称的金融行业为例, 2021 年国内多家大型国有银行、头部股份制银行、头部券商的基础架构团队都开始引进服务网格技术,进行技术研究、平台搭建、业务试用。这里结合我们在 2021 年服务过的多家金融行业头部企业,及其他公开的技术资料,总结了金融行业企业对服务网格技术的典型诉求。
在 微服务2020年度复盘 一文中,我们提出 “平滑落地支撑” 是企业落地服务网格的两大关键要素之一。在金融行业,这一点尤为明显。服务网格 落地零门槛,是企业的核心诉求之一。
我们归纳了服务网格支撑企业落地需要具备的 “三要素” :通信协议,注册中心,部署环境。
在满足 “三要素” 后,服务网格才能达到业务落地的 “及格线”。
此外我们发现,金融行业还存在着更多“拦路虎”:
与传统微服务框架侧重覆盖服务治理能力的业务场景不同,服务网格重点解决企业的架构场景问题。除了要实现云原生体系下微服务纳管与治理能力外,还需要覆盖 异构应用统一治理、遗留系统迁移 等架构场景需求,真正意义上解决企业微服务化后存在的整体性问题。
我们归纳了金融行业企业在架构场景方面的典型诉求如下:
在初步完成服务网格认知后,企业用户往往会发出灵魂拷问:为什么要上服务网格?服务网格有什么价值?
一般来说,通识的服务网格核心价值 “标准答案” 是:
对于企业内部不同团队,服务网格价值侧重会有所不同:
即使 Istio 版本趋于稳定,众多互联网公司也已经顺利完成服务网格落地,更多行业企业落地服务网格依旧面临挑战。
从技术角度分析,实现 “零门槛” 面临三大挑战:
金融行业企业业务往往在各类环境、规范约束下部署运维,再加上业务系统本身的庞杂,存量、遗留、外采系统的组合存在,服务网格落地金融行业天然存在场景覆盖挑战:
服务网格技术在社区进展、实践落地等方面逐步稳定后,相应的行业标准与标准平台也水到渠成,开始扬帆起航。
2021 年 7 月,由中国信息通信研究院主办的 2021 年可信云大会上,《服务网格技术能力要求》标准正式发布,阿里、网易、字节、Flomesh 四家企业通过了首批测评,获得了服务网格最高级别评估。有趣的是,首批通过的四家企业可以说是云计算大厂、老牌互联网公司、新晋互联网公司、技术型创业公司的典型代表,这也侧面反映出各类企业对推进服务网格技术标准和落地的重视。
在 2021 年,云计算厂商提供服务网格标准平台逐步完善与成熟,企业可以按需选择标准平台,或与厂商共建方式落地服务网格。
不同厂商提供标准平台类型上略有差异:
不同平台都有各自的适用场景和强弱项,企业可以结合自身情况自行选择。
服务网格在 2021 年进入稳定期,服务网格技术生态也在这一年百花齐放百家争鸣。
在 2021 年,一大批 Istio 相关的优秀项目开源,围绕易用性、扩展性、运维性等方面增强 Istio:
众多服务网格生态开源项目的出现,侧面印证了服务网格领域的勃勃生机。
与服务网格将微服务治理能力下沉到基础设施层(Sidecar)的思想类似,多运行时(Multi-Runtime)在 2020 年由 Bilgin Ibryam 提出,其对 Sidecar 模式的各种形态进行了总结和升华。多运行时自身特点可以归纳如下:
比较典型的多运行时开源框架是由微软开源的 Dapr( Distributed Application Runtime),其在 2021 年迎来了标志性的 1.0 版本,并且进入 CNCF Sandbox 进行孵化,目前仍在高速发展中。
从落地实践角度,多运行时在 2021 年展现了不错的潜力和发展态势:
eBPF 技术的出现使得在 Linux 内核编程并运行沙盒程序成为可能,而且无需更改内核源代码或加载内核模块。这就使得开发者可以从内核出发增强系统的可观察性、优化网络及其安全性。在服务网格领域,eBPF 可以用于 Sidecar 网络加速,并且可以从底层观测内核消息队列、任务队列、网络包信息、网络连接等更深层次的信息。
在 2021 年,Cilium(eBPF 开源框架) 提出了用 eBPF 替代 Sidecar 实现内核级服务网格(数据面代理)的构想,以解决独立 Sidecar 带来的部署资源消耗、延时性能损耗等问题,实现真正意义上流量治理、观测能力下沉到基础设施层。不过,Cilium 的这一大胆构想很快就收到了来自 “传统” 服务网格阵营的 “反击”,理由包括 eBPF 实现服务代理能力的诸多限制、操作复杂、协议处理复杂度高、内核版本有依赖等等。
不论如何,eBPF 技术融入服务网格生态已经是一个新趋势,即使无法真正实现 Sidecar 的完美替代,eBPF 同样可以作为 Sidecar 的有力补充,使两者在流量链路上水乳交
服务网格在诞生之初就以独立 Sidecar Proxy 负责流量的代理、治理、观测,服务网格实现框架也都默认以独立 Proxy 方式来组织数据平面能力,并与应用进程内的 传统微服务框架划清界限,各谈利弊,似乎 Proxy 模式就是服务网格数据平面的标准模式。在 2021 年,应用进程内框架与独立 Sidecar Proxy 间的 “次元壁” 被打破,Proxyless 理念被越来越多提及。
WHY Proxyless(本质上是针对服务网格独立 Sidecar Proxy 模式的 “弊” 而来):
WHAT Proxyless(能提供对各类分布式场景的能力补充):
HOW Proxyless(几种常见实现方式):
从架构演进层面考量,Proxyless 有 “逆流” 发展的嫌疑。不过,从务实落地角度来看,Proxyless 为 Proxy 带来的能力补充,或许可以更好地帮助企业完成从传统架构到云原生架构的逐步迁移落地。
针对服务网格 2021 的复盘到这里告一段落,对于服务网格的未来,我们充满信心。在本文的最后,给出我们对服务网格的未来展望:
随着服务网格技术的逐步精进成熟,以及越来越多行业的落地经验积累,技术面和场景面所面临的挑战终将被克服,服务网格落地门槛逐步会趋于零。
服务网格的技术能力和场景覆盖得以高度抽象化和通用化,服务网格平台/产品也会随之高度标准化,企业选择服务网格平台/产品会更加容易。
以 Envoy、Istio 为代表的服务网格技术会助力实现相关软件领域的统一,如更多的 L7 流量代理会以 Envoy 为核心构建,数据平面与控制平面之间会以 xDS 协议交互等。企业架构师想实现的分布式体系全局统一治理将不再是奢望。
服务网格不同生态间不会是对立关系,最终会 “务实” 地形成 “合力”,彼此共赢:在流量链路上的 Proxyless -> Proxy -> eBPF 协作,能力互补;多运行时下存在的能力短板可以融合服务网格的成熟能力,加速自身发展。
参考资料(特别感谢服务网格领域的诸多实践者与分享者):
从服务框架到服务网格,网易轻舟双引擎多模式服务治理演进实践:https://www.infoq.cn/article/KNp1ibj40vS8IIZCizMW
解读微服务的 2020:框架在左网格在右,云原生时代的微服务路在何方:https://www.infoq.cn/article/4Zog2lMBqKjAeMTc8Add
云原生时代的流量入口:Envoy Gateway:https://www.infoq.cn/article/SF5sl4IlUtUxuED3Musl
Istio 1.9 发布——重点改善 Istio 的 Day2 操作:https://mp.weixin.qq.com/s/E7iwBF6hhPm5aTukTlTCMg
Istio 1.10 发布及官网改版:https://mp.weixin.qq.com/s/Lq6zF90FR-ohT9ON-88Z_Q
Istio 1.11 发布:https://mp.weixin.qq.com/s/QkLUFOCQz2AWt2En-G-VQg
Istio 1.12 发布:https://mp.weixin.qq.com/s/Q52IQrXxxHEn2c8rkAVTgA
基于 gRPC 和 Istio 的无 Sidecar 代理的服务网格:https://mp.weixin.qq.com/s/aYwo2criOotqNp8lD39QAA
都 2021 年了,对于服务网格,社区到底在讨论什么:https://mp.weixin.qq.com/s/ZDDC4YAebbdws8Md9zCrqQ
Dapr v1.0 展望:从 servicemesh 到云原生:https://skyao.io/talk/202103-dapr-from-servicemesh-to-cloudnative
告别 Sidecar—— 使用 EBPF 解锁内核级服务网格:https://mp.weixin.qq.com/s/W9NySdKnxuQ6S917QQn3PA
译文:服务网格将使用 eBPF ?是的,但 Envoy 代理将继续存在:https://mp.weixin.qq.com/s/iZYXPec7Lh0fhflA42d8gA
作者介绍:
裴斐,网易数帆高级技术专家、资深架构师。10 余年企业级平台架构和开发经验,目前主要负责网易数帆轻舟微服务团队,专注于企业微服务架构及云原生技术的研究与落地工作。带领团队完成轻舟服务网格、微服务框架、API 网关等多个项目在网易集团落地及商业化产品输出,并主导建设了 Slime、Hango 等多个云原生开源项目。
领取专属 10元无门槛券
私享最新 技术干货