101 lines
2.0 KiB
Markdown
101 lines
2.0 KiB
Markdown
# M8 灰度切换指南
|
||
|
||
## 前置条件
|
||
|
||
- [ ] M1-M7 全部通过验证
|
||
- [ ] FAISS 数据已备份(`~/projects/zhiyi/data/backup-$(date +%Y%m%d).tar.gz`)
|
||
- [ ] 迁移脚本测试通过(`python3 scripts/migrate.py --dry-run`)
|
||
- [ ] Go 二进制在 7822 运行 48h 无崩溃
|
||
- [ ] Python 生产服务仍在 7821 运行
|
||
|
||
## 步骤
|
||
|
||
### 1. 数据迁移
|
||
|
||
```bash
|
||
python3 scripts/migrate.py \
|
||
--data-dir ~/projects/zhiyi/data \
|
||
--output-dir /var/lib/zhiyi/data
|
||
```
|
||
|
||
验证: `ls -la /var/lib/zhiyi/data/zhiyi_memory.lance/`
|
||
|
||
### 2. 影子部署(48h)
|
||
|
||
```bash
|
||
# 7822 运行 Go 版本
|
||
PORT=7822 API_KEY=zhiyi-dev-key-2026 /usr/local/bin/zhiyid &
|
||
```
|
||
|
||
验证: `curl http://localhost:7822/health` → 200
|
||
|
||
### 3. 灰度切换
|
||
|
||
```bash
|
||
# 10% 流量 → Go
|
||
sudo tee /etc/nginx/conf.d/zhiyi-upstream.conf << 'EOF'
|
||
upstream zhiyi_backend {
|
||
server 127.0.0.1:7821 weight=9; # Python
|
||
server 127.0.0.1:7822 weight=1; # Go
|
||
}
|
||
server {
|
||
listen 7820;
|
||
location / { proxy_pass http://zhiyi_backend; }
|
||
}
|
||
EOF
|
||
sudo nginx -s reload
|
||
```
|
||
|
||
验证: Go 无 5xx
|
||
|
||
### 4. 权重递增
|
||
|
||
```bash
|
||
# 50% → Go
|
||
# 修改 weight: 7821=5, 7822=5 → nginx -s reload → 验证
|
||
# 100% → Go
|
||
# 修改 weight: 7821=0, 7822=10 → nginx -s reload → 验证
|
||
```
|
||
|
||
### 5. systemd 切换
|
||
|
||
```bash
|
||
sudo systemctl stop zhiyi
|
||
sudo cp ~/projects/memoryweave/deploy/zhiyid.service /etc/systemd/system/
|
||
sudo systemctl daemon-reload
|
||
sudo systemctl enable --now zhiyid
|
||
```
|
||
|
||
验证: `curl http://localhost:7821/health` → Go 版本
|
||
|
||
### 6. Hermes 验证
|
||
|
||
```bash
|
||
# memory_search 正常
|
||
# memory_write 正常
|
||
# memory_stats 正常
|
||
```
|
||
|
||
### 7. 归档
|
||
|
||
```bash
|
||
cd ~/projects/zhiyi && git tag archive/python-v3 && git push --tags
|
||
# Python 代码保留 7 天
|
||
```
|
||
|
||
## 回滚
|
||
|
||
```bash
|
||
sudo systemctl stop zhiyid
|
||
sudo systemctl start zhiyi # Python 版本
|
||
# 恢复 nginx weight
|
||
```
|
||
|
||
## 验收
|
||
|
||
- [ ] Go 版本在 7821 稳定运行 72h
|
||
- [ ] Hermes memory_search/write/stats 正常
|
||
- [ ] OpenClaw 织忆插件正常
|
||
- [ ] 无 5xx 错误
|
||
- [ ] 内存 < 50MB
|