AIOps 项目学习计划
结合你目前的学习方向(AI 与大模型、Kubernetes/云原生、Python、自动化运维、AIOps),以及你正在学习 Kubernetes Python SDK、深度学习基础(自动微分),还有你希望把知识沉淀到 Obsidian,建议不要做”刷知识点”式学习,而是采用项目驱动(Project-Based Learning)。
我的建议是把未来 3~4 个月的学习围绕一个最终项目展开:
构建一个 Kubernetes GPU 集群 AIOps Agent
能够自动监控模型训练任务 → 分析异常 → 给出诊断 → 自动恢复。
整个学习过程中,每学一个知识点,就把它加入到这个项目中。
最终项目架构
最终希望达到这样的效果:
+----------------------+
| LLM Agent |
+----------+-----------+
|
Function Calling / MCP
|
+--------------------+--------------------+
| | |
Kubernetes API Prometheus API GPU(NVML/DCGM)
| | |
+--------------------+--------------------+
|
Diagnosis Engine
|
+----------------+----------------+
| |
Restart Pod Send Alert
| |
Kubernetes Email/Feishu
这个项目会覆盖:
-
Python
-
Kubernetes
-
GPU
-
Prometheus
-
Grafana
-
Docker
-
CUDA
-
PyTorch
-
Agent
-
MCP
-
Function Calling
-
自动化运维
-
AIOps
第一阶段:Python 与 GPU(约 2 周)
目标:
让 Python 能控制 GPU。
这一阶段不要碰 Kubernetes。
实验 1:读取 GPU 信息
学习内容:
-
nvidia-smi
-
NVML
-
pynvml
需要完成:
Python
│
├── GPU 型号
├── GPU 利用率
├── 显存
├── 温度
├── 功耗
└── 风扇速度(如果支持)
最终:
python gpu_monitor.py
输出:
GPU0
Utilization: 63%
Memory:
4200 / 6144 MB
Temperature:
71℃
实验 2:持续采集 GPU
目标:
每秒采集一次:
GPU
↓
Python
↓
JSON
例如:
{
"timestamp": "...",
"gpu": 63,
"memory": 4200,
"temperature": 71
}
保存:
metrics/
gpu.json
实验 3:GPU 压力测试
使用:
PyTorch
写:
while True:
x @ y
观察:
GPU 利用率变化。
理解:
为什么:
GPU 利用率
显存
并不是同步增长
这一阶段需要掌握:
✅ Python
✅ NVML
✅ CUDA 基础
第二阶段:Prometheus(约 2 周)
目标:
让 GPU 指标进入 Prometheus。
实验 1:Prometheus Exporter
Python:
gpu_monitor.py
改成:
gpu_exporter.py
暴露:
http://localhost:8000/metrics
例如:
gpu_utilization 62
gpu_temperature 71
gpu_memory_used 4211
实验 2:Prometheus
学习:
Prometheus
↓
Scrape
最终:
Prometheus:
成功抓到:
gpu_utilization
实验 3:Grafana
画:
GPU Dashboard:
包括:
-
GPU 利用率
-
显存
-
温度
-
功耗
这一阶段完成:
GPU
↓
Prometheus
↓
Grafana
第三阶段:Kubernetes(约 3 周)
目标:
Python 控制 Kubernetes。
实验 1:本地 K8s
安装:
建议:
k3d
或者:
kind
完成:
kubectl get pod
实验 2:Python SDK
写:
list_pods.py
实现:
获取所有 Pod
然后:
删除 Pod
再:
创建 Job
实验 3:Watch
实现:
实时监听:
Pod 创建
Pod 删除
Pod CrashLoop
实验 4:Log
Python:
自动:
获取 Pod Log
例如:
OOM
CUDA Error
Killed
实验 5:Exec
Python:
进入:
Pod:
执行:
nvidia-smi
或者:
ps
这一阶段结束:
Python:
已经可以:
控制整个 Kubernetes
第四阶段:GPU Kubernetes(约 3 周)
目标:
真正跑 GPU Pod。
安装:
NVIDIA Container Toolkit
↓
Device Plugin
然后:
部署:
GPU Job:
例如:
PyTorch:
训练:
MNIST。
实验
每个 Pod:
持续:
训练。
Python:
获取:
GPU
↓
Pod
↓
Node
映射关系。
例如:
GPU0
↓
Pod
↓
training-job-1
第五阶段:训练监控(约 2 周)
目标:
不仅监控 GPU。
还监控:
训练。
训练程序:
增加:
Prometheus:
Loss
Learning Rate
Step
Epoch
最终:
Grafana:
看到:
Loss 曲线
Python:
判断:
Loss
10 分钟没有下降
↓
报警
第六阶段:规则引擎(约 2 周)
目标:
不用 AI。
先做:
规则。
例如:
GPU 利用率
<10%
持续:
10 分钟
↓
异常
再:
Loss
没有变化
↓
异常
再:
Pod
Restart
>5 次
↓
异常
输出:
诊断:
GPU Idle
原因:
DataLoader
建议:
检查数据集
第七阶段:LLM Agent(约 3 周)
这一阶段:
加入:
LLM。
例如:
Agent:
获取:
GPU
↓
Prometheus
↓
Logs
↓
Pod
↓
综合分析
输出:
训练卡死
原因:
GPU Idle
DataLoader
Worker 死锁
建议:
增加 num_workers
Agent:
调用:
restart_job()
自动恢复。
第八阶段:完整 AIOps 平台(持续完善)
最终形成一个可展示的项目:
Web
↓
FastAPI
↓
Agent
↓
Prometheus
↓
Grafana
↓
Kubernetes
↓
GPU
能够完成:
查看:
GPU
查看:
训练
查看:
Loss
↓
Agent
↓
诊断
↓
恢复
每个阶段的学习方法
建议每个阶段都遵循固定节奏:
| 第一天 | 阅读官方文档,理解原理 |
|---|---|
| 第二天 | 跑官方 Demo |
| 第三天 | 自己从零重写一遍 |
| 第四天 | 给 Demo 增加一个新功能 |
| 第五天 | 写一篇 Obsidian 笔记(包含原理、代码、踩坑) |
| 第六天 | 把功能集成到最终项目 |
| 第七天 | 总结复盘,整理下周计划 |
这样,你最终不仅会有:
-
一个持续迭代的 AIOps 项目;
-
一套完整的 Obsidian 技术知识库;
-
可展示的 GitHub 项目;
-
每个阶段都能独立演示的实验成果,而不是一堆零散的 Demo。
建议增加一个“项目成果物”要求
为了避免学完就忘,每个阶段都要求自己交付固定成果:
| 阶段 | 代码成果 | 文档成果 | 演示成果 |
|---|---|---|---|
| GPU 基础 | gpu-monitor | GPU/NVML 原理笔记 | 实时监控 GPU |
| Prometheus | gpu-exporter | Prometheus 工作原理 | Grafana Dashboard |
| Kubernetes | k8s-controller | Python SDK 笔记 | 自动管理 Pod |
| GPU K8s | gpu-trainer | GPU 调度笔记 | GPU 训练 Job |
| 训练监控 | training-monitor | 指标设计笔记 | Loss 曲线与告警 |
| 规则引擎 | diagnosis-engine | 故障诊断规则 | 自动生成诊断结果 |
| LLM Agent | aiops-agent | Agent 架构设计 | 自动分析并恢复训练 |
这样学完后, GitHub、知识库和项目会同步成长,最后形成一个完整的作品集,这对以后找 AIOps、平台工程或 AI 基础设施相关岗位会非常有说服力。
