First Try Meshery
Created: January 6, 2022 11:02 AM
零、总结
SMP 是用来进行 Service Mesh 的性能测试而生的,并非实际的应用或集群的遥测。它定义了一致的性能测试标准,便于多 Service Mesh 进行统一横向性能比较(apples to apples performance comparisons)。
在 Mesh 和 Application 的遥测方面,Meshery 是通过接入 Grafana 或 Promethues 的方式来满足需求。
0.1 SMP(Service Mesh Performance)—— Service Mesh 性能测试(详情见 2.5 章节)
SMP 是用来测试 Service Mesh 的性能表现的统一协议(数据格式)。通过一致的 protobuf 数据格式(在 Meshery 的源码中,就是 import 了 service-mesh-performance 的 go sdk),来完成不同 Service Mesh 的性能横向比较。
协议

按照定义的 metadata 数据接入新 Service Mesh

运行性能测试(图中的 11 是倒计时,点击 run test 后,就会产生一个大大的倒计时数字)

不同 Service Mesh 性能横向比较

0.2 SMI(Service Mesh Interface)
这一块在平台上的体现是 SMI 协议合规度检测,从协议定义的 Traffic Spec、Traffic Split、Traffic Access 三个方向进行检测(由于暂未找到应用相关的数据,尚不知晓关于流量方便的具体平台展现形式)。

0.3 文档导读
由于 Meshery 是 Layer5 的官方标准实现,此次调研以 Meshery 的平台为主要切入点,看其标准在平台上的具体落实情况来进一步了解,其调研的数据主要来源以下三个地方
- 官方文档(含 Github)
- 官方 YouTube 频道
- 官方提供的在线实验
一、环境准备
使用 layer5 官方提供的在线 lab 来运行。

有以下两点需要注意:
- 按照步骤进行运行即可,需要注意的是,当我们正常安装 Meshery 后,添加 Provider 一般是不生效的,我们需要点击 terminal 的 + 号,选择 “Select port to view on Host1”,并且输入端口后 9081 才能访问系统。
另外,当我们正常安装完成后,可查看 meshery 状态都是 ready 后,方可打开 web
1
2
3
4
5
6
7
8$ mesheryctl system status
NAME READY STATUS RESTARTS AGE
meshery 1/1 Running 0 2m30s
meshery-broker 1/1 Running 0 1m7s
meshery-linkerd 1/1 Running 0 2m30s
meshery-operator 2/2 Running 0 2m30s
Meshery endpoint is http://localhost:9081
通过体验 Meshery 的安装流程,我们发现其安装及其简单,通过一条指令即可完成,这是我们需要思考的,如何让用户以最小的心智来试用。
除了安装友好,在进入系统后,我们安装对应的 service mesh,或者安装示例程序,都是直接在平台上点击操作,无疑大大简化了用户的上手负担。
二、平台模块速览
说明:由于实验环境很多数据缺失,所以部分页面从 YouTube 或其他地方截图所得,来源见附录。
2.1 平台初始化配置
平台初始化配置主要完成以下工作:1、添加 Provider;2、登录
Choose a provider ↓


Login ↓

2.2 平台菜单一览
菜单分为以下几个部分
- Performance(SMP). 用来对 Service Mesh 进行性能测试。
- Conformance(SMI). 用来测试 Service Mesh 的协议合规度检测。
- Lifecycle. 用来管理不同的 Service Mesh。
SMP&SMI ↓

Configuration ↓

Lifecycle&Service Meshes ↓

2.3 Dashboard
Dashboard without data

Dashboard with data
- Service Mesh 看板显示了当前接入的 mesh 和组件
- Metrics 直接嵌入的 Grafana 或 Promethues 面板

2.4 Install Service Mesh
通过 Meshery 可以管理多种 Service Mesh,我们可以在 meshery 中直接添加 service mesh 和示例程序。
Linkerd Adapter

点击加号,添加 Linkerd Service Mesh

点击加号,添加示例程序

2.5 Performance
2.5.1 Performance Dashboard
Performance Dashboard without data

Performance Dashboard with data

2.5.2 Profiles
SMP Profiles without data

SMP Profiles 列表

查看 SMP Profile 详情以及具体测试数据结果
![Meshery - The Service Mesh Manager 35-47 screenshot.png]
2.5.1 Add Profile
Profile 表单

SMP Profile Service Mesh Options,选择具体的 Service Mesh

SMP Profile Service Mesh Load Generator,选择负载产生器


SMP Profile Advanced Options,进一步定制压测的请求信息

2.5.4 Run Test
Run test 运行测试,倒计时

View Performance Result 查看测试结果

Comparison 比较同一个 Profile 不同测试结果
- 这一点和 SMP 文档中 apple to apple performance comparison 相对应

2.6 Add Service Mesh Metrics
Configure Service Mesh Metrics

Add Grafana

Add Promethues

Environment & In Cluster Deployment

Service Meshes

2.7 Conformance(SMI)
在 Manage Service Mesh 地方执行 SMI 协议检测

Service Mesh Interface Conformance Results, SMI 协议标准合规情况检测

摘自文档的更多检查结果

附录
YouTube, Meshery - The Service Mesh Manager
Performance Management 文档
Run SMI Conformance 文档