Serverless | Elasticity | Service Architecture | Observability | Resilience | Automation
SESORA 是一个基于阿里云的云原生架构成熟度评估工具,通过自动化数据采集和智能分析,从六个维度全面评估您的云原生架构成熟度水平。
- 六维度评估模型:覆盖 Automation、Elasticity、Observability、Resilience、Serverless、Service Architecture 六大云原生核心能力
- 自动化数据采集:支持 17+ 阿里云产品及第三方服务的数据自动采集
- 60+ 评估指标:细粒度的评分标准,提供可操作的改进建议
- 三态评分机制:区分"已评估"、"条件不满足"、"数据不足"三种状态
- 增量采集支持:支持分阶段采集数据,逐步完善评估
- 平台无关数据层:规范化的数据模型,便于扩展其他云平台
- Web 管理界面:基于 Vue 3 + FastAPI 的现代化 Web 管理控制台
SESORA 采用分层架构设计,自上而下分为四层:
- Web 管理层:Vue 3 前端 + FastAPI 后端,提供可视化操作界面
- 分析评分层:60+ 独立 Analyzer 实现细粒度评估
- 平台无关数据层:统一的 DataItem Schema,支持多种存储后端
- 数据采集层:17+ Collector 对接各类云产品和第三方服务
# 克隆项目
git clone https://github.com/chaosblade-io/cloud-native-maturity-evaluate.git
cd cloud-native-maturity-evaluate
# 安装包(开发模式,可编辑)
pip install -e .
# 或安装到用户目录
pip install --user -e .# 克隆项目
git clone https://github.com/chaosblade-io/cloud-native-maturity-evaluate.git
cd cloud-native-maturity-evaluate
# 安装依赖
pip install -r requirements.txt# 安装 hatch
pip install hatch
# 在隔离环境中运行
cd cloud-native-maturity-evaluate
hatch shell
# 或直接使用 hatch 运行
hatch run python run_pipeline/main.py# 复制环境变量模板
cp .env.example .env
# 编辑 .env 文件,填入您的阿里云凭证和资源信息核心配置项:
# 阿里云基础凭证(必填)
ALIBABA_CLOUD_ACCESS_KEY_ID=your_access_key_id
ALIBABA_CLOUD_ACCESS_KEY_SECRET=your_access_key_secret
ALIBABA_CLOUD_REGION=cn-hangzhou
# ACK 容器服务
ACK_CLUSTER_ID=your_cluster_id
KUBECONFIG_PATHS='["/path/to/kubeconfig"]'
# ARMS APM
ARMS_WORKSPACE_ID=your_workspace_id
# SLS 日志服务
SLS_PROJECT=your_project_name
SLS_REGION=cn-hangzhou
# 云效 Codeup(CI/CD 评估)
YUNXIAO_TOKEN=your_token
CODEUP_ORG_ID=your_org_id
CODEUP_PIPELINE_IDS='["pipeline_id_1", "pipeline_id_2"]'# 一键启动前后端服务
./start.sh启动后访问:
- Web 界面:http://localhost:5173
- API 文档:http://localhost:8000/api/docs
Web 界面提供:
- 配置管理:可视化配置阿里云凭证和资源信息
- Mock 数据:上传 Mock 数据进行测试
- 数据采集:一键采集或分步采集云资源数据
- 评估分析:查看评估报告和详细分析结果
python run_pipeline/main.py# 步骤 1:数据采集
python run_pipeline/collect_data.py
# 步骤 2:运行分析
python run_pipeline/run_analyzer.py data/sesora.db# 使用配置文件指定分析器
python run_pipeline/run_analyzer.py data/sesora.db --config run_pipeline/run_cases.json
# 或直接指定 key
python run_pipeline/run_analyzer.py data/sesora.db --key ha_redundancy,mon_metrics_depth| 子类 | 评估内容 |
|---|---|
| CI/CD 流水线 | 构建自动化、测试自动化、部署自动化、发布管理、流水线即代码 |
| 基础设施即代码 (IaC) | 资源自动创建、配置管理、策略代码化、漂移检测 |
| 运维自动化 | 故障自动发现、自动扩缩容、备份自动化、安全自动化 |
| GitOps | ArgoCD/Flux 部署、配置即代码 |
| 子类 | 评估内容 |
|---|---|
| 水平扩展 (HPA) | HPA 配置覆盖率、扩缩容指标多样性 |
| 垂直扩展 (VPA) | VPA 部署、资源推荐 |
| 负载均衡 | 入口负载均衡、服务网格负载均衡 |
| 资源管理 | 命名空间资源配额、节点资源管理 |
| 子类 | 评估内容 |
|---|---|
| 监控能力 | 指标收集深度、告警规则、告警通道、工具链集成 |
| 日志能力 | 日志收集覆盖率、日志结构化程度、关联分析 |
| 链路追踪 | 追踪覆盖率、采样配置、端到端追踪 |
| 可视化 | Dashboard 覆盖率、自定义仪表板 |
| 子类 | 评估内容 |
|---|---|
| 高可用性 | 冗余设计、多可用区部署、负载均衡、全球分布 |
| 容错能力 | 熔断、限流、重试、超时配置 |
| 灾难恢复 | 备份策略、恢复演练、RTO/RPO |
| 健康管理 | 存活探针、就绪探针配置 |
| 子类 | 评估内容 |
|---|---|
| FaaS 函数计算 | 函数计算使用覆盖率、版本管理 |
| 事件驱动 (EDA) | EventBridge 配置、事件路由 |
| 数据服务 | 云原生数据服务使用 |
| 子类 | 评估内容 |
|---|---|
| API 管理 | API 网关配置、版本管理 |
| 服务通信 | 服务网格 Istio、gRPC 配置 |
| 数据管理 | 数据库架构、缓存、消息队列 |
SESORA 支持以下阿里云产品的数据自动采集:
| 采集器 | 采集内容 |
|---|---|
| ACK Collector | Kubernetes Deployment、StatefulSet、Pod、HPA、VPA、Service、Ingress、CronJob、Event、ResourceQuota、Istio 资源 |
| ARMS Collector | APM 服务列表、服务拓扑、外部依赖、链路追踪配置 |
| CMS Collector | 告警规则、联系人、联系组、告警历史、事件触发器 |
| SLS Collector | Logstore 列表、日志样本、索引配置、存档策略 |
| Codeup Collector | 流水线运行记录、代码仓库、提交记录、分支信息 |
| FC Collector | 函数列表、别名、版本信息 |
| ROS Collector | 资源栈列表、漂移检测信息 |
| RDS Collector | 数据库实例、备份策略、代理配置 |
| OSS Collector | Bucket 信息、生命周期规则 |
| ACR Collector | 镜像仓库、镜像列表、扫描结果 |
| ALB Collector | 监听器配置 |
| ECS Collector | 实例信息、安全组及规则 |
| EventBridge Collector | 事件总线、事件规则、事件目标 |
| Grafana Collector | Dashboard、数据源、告警规则 |
| GTM Collector | 全局流量管理配置、地址池 |
| Tair Collector | Tair 实例信息、备份策略 |
评估报告
├── 任务信息 (task_id, 执行时间)
├── 汇总统计
│ ├── 总分 / 满分
│ ├── 成熟度百分比
│ ├── 评估覆盖率
│ └── 各维度得分
└── 维度详情
├── Automation (子类 × N)
├── Elasticity (子类 × N)
├── Observability (子类 × N)
├── Resilience (子类 × N)
├── Serverless (子类 × N)
└── Service Architecture (子类 × N)
- 前端展示页面:便于快速预览各项得分
- CSV 文件:便于数据分析和报表生成
- 文本报告:便于阅读的成熟度评分报告
- Json 文件:便于快速系统集成
cloud-native-maturity-evaluate/
├── sesora/ # 核心库
│ ├── core/ # 核心抽象
│ │ ├── analyzer.py # 分析器基类
│ │ ├── collector.py # 采集器基类
│ │ ├── context.py # 评估上下文
│ │ ├── dataitem.py # 数据项定义
│ │ └── report.py # 报告结构
│ ├── analyzers/ # 分析器实现(六维度)
│ │ ├── automation/ # 自动化维度
│ │ ├── elasticity/ # 弹性维度
│ │ ├── observability/ # 可观测性维度
│ │ ├── resilience/ # 韧性维度
│ │ ├── serverless/ # Serverless 维度
│ │ └── service_arch/ # 服务架构维度
│ ├── collectors/ # 数据采集器(17+)
│ ├── schema/ # 数据模型定义
│ ├── store/ # 数据存储(SQLite)
│ └── engine.py # 评估引擎
├── api/ # FastAPI 后端
│ ├── main.py # API 主入口
│ ├── routers/ # 路由模块
│ │ ├── config.py # 配置管理 API
│ │ ├── collect.py # 数据采集 API
│ │ ├── analyze.py # 评估分析 API
│ │ └── mock_data.py # Mock 数据 API
│ ├── services/ # 业务逻辑层
│ └── models/ # 数据模型
├── web/ # Vue 3 前端
│ ├── src/
│ │ ├── views/ # 页面视图
│ │ │ ├── ConfigView.vue # 配置管理页
│ │ │ ├── CollectView.vue # 数据采集页
│ │ │ ├── AnalyzeView.vue # 评估分析页
│ │ │ └── MockDataView.vue # Mock 数据页
│ │ ├── api/ # API 调用
│ │ └── router.js # 路由配置
│ └── package.json # 前端依赖
├── run_pipeline/ # 命令行脚本
│ ├── main.py # 主入口
│ ├── collect_data.py # 数据采集脚本
│ └── run_analyzer.py # 分析运行脚本
├── data/ # 数据存储目录
├── start.sh # 一键启动脚本
└── pyproject.toml # Python 包配置
SESORA 采用三态评分机制,清晰区分不同评估状态:
| 状态 | 说明 | 计入得分 |
|---|---|---|
| SCORED | 分析已执行,得到具体分数 | ✓ |
| NOT_SCORED | 条件不满足,得 0 分 | ✓ |
| NOT_EVALUATED | 数据不足,无法评估 | ✗ |
这种机制确保了:
- 数据不足时不影响已评估项的得分计算
- 清晰展示评估覆盖率
- 指导用户补充缺失的数据采集
完整配置项请参考 .env.example,主要包括:
| 配置类别 | 说明 |
|---|---|
| 阿里云凭证 | AccessKey ID/Secret、Region |
| ACK 配置 | 集群 ID、kubeconfig 路径、命名空间 |
| ARMS 配置 | 工作空间 ID |
| SLS 配置 | Project、Logstore、Region |
| Codeup 配置 | Token、组织 ID、仓库 ID、流水线 ID |
| ROS 配置 | 资源栈名称、Region |
| FC 配置 | 函数名称列表 |
| RDS 配置 | 实例 ID 列表 |
| OSS 配置 | Bucket 名称列表 |
| ACR 配置 | 实例 ID 列表 |
| ALB 配置 | 负载均衡器 ID 列表 |
| ArgoCD 配置 | Server 地址、Token |
| Grafana 配置 | Server 地址、API Key |
| GTM 配置 | 实例 ID 列表 |
| Tair 配置 | 实例 ID 列表 |
使用 --key 参数指定要运行的分析器:
python run_pipeline/run_analyzer.py data/sesora.db --key ha_redundancy,mon_metrics_depth或编辑 run_pipeline/run_cases.json 配置文件。
python run_pipeline/run_analyzer.py data/sesora.db --verbose将显示数据库中所有 DataItem 及各分析器的数据需求满足情况。
- 在
sesora/analyzers/对应维度目录下创建分析器 - 继承
Analyzer基类,实现必要方法 - 在
__init__.py中注册新分析器
- 在
sesora/schema/中定义数据模型 - 在
sesora/collectors/中实现采集器 - 在
run_pipeline/collect_data.py中注册采集器
- Python 3.10+
- FastAPI + Uvicorn
- 阿里云 SDK(alibabacloud-*)
- Kubernetes Python Client
- SQLite3(Python 标准库)
- Node.js 18+
- Vue 3 + Vue Router
- Element Plus
- ECharts
- Axios
本项目使用 pyproject.toml 作为主要的依赖和构建配置:
| 文件 | 用途 |
|---|---|
| pyproject.toml | 现代 Python 包配置(推荐) |
| requirements.txt | 传统依赖列表(兼容) |
# 从 pyproject.toml 安装(推荐)
pip install -e .
# 或从 requirements.txt 安装
pip install -r requirements.txt欢迎提交 Issue 和 Pull Request!
SESORA - 让云原生架构评估更简单、更专业



