|
iceMesh的产品化落地:
(1) 它帮助微服务之间建立连接,帮助研发团队更好的管理与监控微服务,并使得系统架构更加安全。
(2) 它帮助微服务分层解耦,解耦后的proxy层能够更加专注于提供基础架构能力,例如:
-
服务发现(discovery)
-
负载均衡(load balancing)
-
故障恢复(failure recovery)
-
服务度量(metrics)
-
服务监控(monitoring)
-
A/B测试(A/B testing)
-
灰度发布(canary rollouts)
-
限流限速(rate limiting)
-
访问控制(access control)
-
身份认证(end-to-end authentication)
等功能。
(3) 它使得业务工程团队与基础架构团队都更加高效的工作,各自专注于自己的工作,更好的彼此赋能。
今天来说一下Istio的核心架构设计。
关于Istio的架构设计,官网用了这样一句话:上,Istio分为:
-
数据平面(data plane)
-
控制平面(control plane)
这两个词,是Istio架构核心,但又是大家被误导最多的地方。
数据平面和控制平面,不是ServiceM外音:上两图为路由器架构。
它的设计原则是:
-
在一个路由设备里,转发是最重要的工作,它具备***的优先级,数据平面(data plane)的设计核心就是高效转发,如何在最短的时间里处理最多的包,往往使用高效内存管理、队列管理、超时管理等技术实现在硬件里
-
控制平面(control plane)则不然,它要实现路由协议,设备管理,IGMP,ARP协议的,它更偏向于控制与应用,往往由软件实现
画外音:
画外音:
如架构图所示,该两层架构中,有五个核心组件。
数据平面,有一个核心组件:Envoy (proxy)
Envoy的核心职责是高效转发,更具体的,它具备这样一些能力:
大部分能力是RPC框架都具备,或者比较好理解的,这里面重点介绍下断路器和故障注入。
断路器设计
它是软件架构设计中,一个服务自我保护,或者说降级的设计思路。
举个例子:当系统检测出某个接口有大量超时时,断路器策略可以终止对这个接口的调用(断路器打开),经过一段时间后,再次尝试调用,如果接口不再超时,则慢慢恢复调用(断路器关闭)。
故障注入设计
它是软件架构设计中,一种故意引入故障,以扩大测试覆盖范围,保障系统健壮性的方法,主要用于测试。
国内大部分互联网公司,架构设计中不太会考虑故障注入,在操作系统内核开发与调试,路由器开发与调试中经常使用,可以用来模拟内存分配失

-
IGMP(Internet GroupManagement Protocol),一个组播协议;
-
ARP(Address ResolutionProtocol)
-
,由一系列proxy组成(中间一层的两个小红框),核心职责是:高效转发;接收和实施来自mixer的策略;
-
控制平面(底下的大红框),核心是控制与应用,核心职责是:管理和配置边车代理;通过mixer实施策略与收集来自边车代理的数据;
-
sidecar proxy,原文使用的是envoy,后文envoy表示代理;
-
mixer,不确定要怎么翻译了,有些文章叫“混音器”,后文直接叫mixer;
-
pilot,galley,citadel,不敢翻译为飞行员,厨房,堡垒,后文直接用英文;
-
服务发现
-
负载均衡
-
安全传输
-
多协议支持,例如HTTP/2,gRPC
-
断路器(Circuit breakers)
-
健康检查
-
百分比分流路由
-
故障注入(Fault injection)
-
系统度量
(编辑:唐山站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|