Istio分层架构?80%的人有误解
副标题[/!--empirenews.page--]
前篇:
Istio是ServiceMesh的产品化落地: (1) 它帮助微服务之间建立连接,帮助研发团队更好的管理与监控微服务,并使得系统架构更加安全。 (2) 它帮助微服务分层解耦,解耦后的proxy层能够更加专注于提供基础架构能力,例如:
等功能。 (3) 它使得业务工程团队与基础架构团队都更加高效的工作,各自专注于自己的工作,更好的彼此赋能。 今天来说一下Istio的核心架构设计。 关于Istio的架构设计,官网用了这样一句话: 逻辑上,Istio分为:
这两个词,是Istio架构核心,但又是大家被误导最多的地方。 数据平面和控制平面,不是ServiceMesh和Istio第一次提出,它是计算机网络,报文路由转发里很成熟的概念:
画外音:上两图为路由器架构。 它的设计原则是:
画外音:
Istio的架构核心与路由器非常类似:
画外音:
如架构图所示,该两层架构中,有五个核心组件。 数据平面,有一个核心组件:Envoy (proxy) Envoy的核心职责是高效转发,更具体的,它具备这样一些能力:
大部分能力是RPC框架都具备,或者比较好理解的,这里面重点介绍下断路器和故障注入。 断路器设计 它是软件架构设计中,一个服务自我保护,或者说降级的设计思路。 举个例子:当系统检测出某个接口有大量超时时,断路器策略可以终止对这个接口的调用(断路器打开),经过一段时间后,再次尝试调用,如果接口不再超时,则慢慢恢复调用(断路器关闭)。 故障注入设计 它是软件架构设计中,一种故意引入故障,以扩大测试覆盖范围,保障系统健壮性的方法,主要用于测试。 国内大部分互联网公司,架构设计中不太会考虑故障注入,在操作系统内核开发与调试,路由器开发与调试中经常使用,可以用来模拟内存分配失败、磁盘IO错误等一些非常难出现的异常,以确保测试覆盖度。 控制平面,有四个核心组件:Mixer Mixer的一些核心能力是:
Mixer的设计核心在于“插件化”,这种模型使得Istio能够适配各种复杂的主机环境,以及后端基础设施。 Pilot (编辑:西双版纳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |