service mesh学习规划
istio go语言 谷歌开发
现有产品功能(每个功能具体支持哪些方式,优缺点)
服务注册发现
流量劫持
路由
负载均衡
熔断降级
流量控制(限流、流量分配)
重试机制
日志管理
支持的协议
监控(健康检查)
安全验证(加密、加签、用户验证、黑白名单)
滚动升级(发布)
UI控台
运维API
权限管理
故障注入/mock测试
对外服务
多集群调用
现有产品架构设计
组件模块
支持平台
性能
伸缩性
可扩展性
容错性(故障恢复方案、恢复时间)
可管理性
系统容量(可以支持多少服务)
现有产品优缺点
所有版本都要看一下,哪些功能删掉了,哪些功能新增,前后对比
先看,把不懂的周四汇总一下,然后讨论。
验证内容 |
细化验证点 |
备注 |
负责人 |
各种网络调用方式的性能差异 |
通过iptables方式调用:client-->iptables-->envoy-->server |
观察:tps、CPU、内存、RT等指标 客户端和服务端使用统一的go语言编写的http服务(由贾春迎提供)。 |
范小亮、邹杰 |
通过直连方式调用:client-->envoy-->server |
|||
通过cilium方式调用:client-->cilium-->envoy-->server |
陈锋 |
||
各开发语言实现的proxy性能对比 |
Go语言(参考SOFAMosn) |
调用模式为:client --> proxy --> server 客户端和服务端使用统一的go语言编写的http服务。 Proxy仅实现最简单的流量转发功能及一个模拟的最小连接数负载均衡算法(1000个节点的计数器,有实际读写内存的)。 观察:CPU、内存、TPS、RT、镜像包大小等指标。 |
贾春迎 |
Rust语言(参考Linkerd) |
贾春迎 |
||
Java语言(参考Netty与OSP) |
翟晓彤 |
||
C++语言(参考Envoy) |
翟晓彤 |
||
组件及应用升级的可行性 |
Istio的控制平面升级、数据平面升级及应用升级 |
在有一定压力的持续请求的情况下测试。 |
严首骅 |
Linkerd的控制平面升级、数据平面升级及应用升级 |
陈锋 |
||
Envoy插件开发是否能满足定制要求 |
验证envoy是否支持汇付现有的路由及流量管理方式(通过开发插件的方式)。 |
Envoy目前是最主流的sidecar方案,其稳定性已有保障,但是它能否满足现有的业务场景是一个重要的评判标准。 |
朱一琪 |
异构注册中心支持验证 |
验证通过扩展istio的方式是否能支持k8s与虚拟机共存的方式。 |
在今后的迁移方案中必定需要考虑少量灰度流量切到k8s的场景,因此必须要考虑虚拟机与k8s共存的情况。 |
朱一琪 |
高可用功能验证 |
对于Istio的高可用功能验证 |
在有一定压力的持续请求的情况下测试: 控制平面3台服务端,其中1台挂了、3台都挂了的两种场景测试。 数据平面3台服务端,其中1台挂了、3台都挂了的两种场景测试。 |
翟晓彤、李艳丽 |