docs(dev): add v1 30-min rehearsal execution checklist
includes preflight, restart, smoke, observation, evidence steps defines success criteria and metrics to collect for next-step decision Made-with: Cursor
This commit is contained in:
116
docs/runbook/rehearsal-v1-30min-checklist.md
Normal file
116
docs/runbook/rehearsal-v1-30min-checklist.md
Normal file
@@ -0,0 +1,116 @@
|
||||
# Rehearsal v1.0 — 30-minute execution plan
|
||||
|
||||
Контрольований rehearsal без змін коду: перевірка **процесу релізу** (preflight → restart → smoke → observation → evidence).
|
||||
|
||||
**Release window:** виділений слот 30–60 хв (наприклад сьогодні 20:00–21:00 UTC або завтра зранку).
|
||||
|
||||
---
|
||||
|
||||
## ⏱ 0–5 хв — Preflight
|
||||
|
||||
```bash
|
||||
STRICT=1 bash ops/preflight_sofiia_console.sh
|
||||
```
|
||||
|
||||
**Очікування:** PASS або лише не-критичні WARN. Якщо FAIL → зупиняємось і виправляємо.
|
||||
|
||||
**Зафіксувати:** результат (PASS / WARN / FAIL), коротко що було.
|
||||
|
||||
---
|
||||
|
||||
## ⏱ 5–10 хв — Controlled Restart
|
||||
|
||||
Перезапусти sofiia-console (як прийнято: systemd/docker).
|
||||
|
||||
Після старту:
|
||||
|
||||
```bash
|
||||
curl -i http://127.0.0.1:8002/api/health
|
||||
curl -i http://127.0.0.1:8002/metrics
|
||||
```
|
||||
|
||||
**Очікування:** 200 OK, без 500, metrics доступні.
|
||||
|
||||
---
|
||||
|
||||
## ⏱ 10–15 хв — Smoke (функціональний)
|
||||
|
||||
### Idempotency A/B (якщо Redis backend)
|
||||
|
||||
```bash
|
||||
bash ops/redis_idempotency_smoke.sh
|
||||
```
|
||||
|
||||
**Очікування:** `message_id` однаковий, `replayed=true` на другому запиті.
|
||||
|
||||
### Audit auth
|
||||
|
||||
Без key:
|
||||
|
||||
```bash
|
||||
curl -i http://127.0.0.1:8002/api/audit
|
||||
```
|
||||
|
||||
→ **401**
|
||||
|
||||
З key:
|
||||
|
||||
```bash
|
||||
curl -H "X-API-Key: <key>" http://127.0.0.1:8002/api/audit
|
||||
```
|
||||
|
||||
→ **200**
|
||||
|
||||
---
|
||||
|
||||
## ⏱ 15–25 хв — Observation Window
|
||||
|
||||
Спостерігай 10 хв. Мінімум перевірити:
|
||||
|
||||
- Чи є 5xx?
|
||||
- Чи росте `sofiia_rate_limited_total` неочікувано?
|
||||
- Чи росте `sofiia_idempotency_replays_total` аномально?
|
||||
- Чи відповідає send стабільно?
|
||||
|
||||
Якщо можливо — зафіксуй приблизний p95 latency (на око по логах достатньо).
|
||||
|
||||
---
|
||||
|
||||
## ⏱ 25–30 хв — Evidence
|
||||
|
||||
```bash
|
||||
bash ops/generate_release_evidence.sh
|
||||
```
|
||||
|
||||
Перевір, що файл створено. Доповни вручну: smoke A/B, post-release checks, rollback notes (якщо були).
|
||||
|
||||
---
|
||||
|
||||
# Критерії успіху rehearsal
|
||||
|
||||
| Перевірка | Результат |
|
||||
|-----------|-----------|
|
||||
| Preflight | PASS |
|
||||
| Health + metrics | OK |
|
||||
| Idempotency smoke | PASS |
|
||||
| Audit strict auth | 401 без key / 200 з key |
|
||||
| 5xx | нема |
|
||||
| Rate-limit / replay сплески | нема дивних |
|
||||
|
||||
Якщо все зелено — **v1 процес релізу вважається стабільним**.
|
||||
|
||||
---
|
||||
|
||||
# Після rehearsal — що принести далі
|
||||
|
||||
Для decision-матриці (Phase 6 / HA / policy / dashboards) потрібно:
|
||||
|
||||
- 5xx count (total + send)
|
||||
- replay delta
|
||||
- rate_limit delta (chat / operator)
|
||||
- приблизна latency (p95)
|
||||
- audit events volume
|
||||
- будь-які WARN з preflight
|
||||
- friction моменти (що було неочевидним)
|
||||
|
||||
Див. також: `docs/release/sofiia-console-post-release-review-template.md`.
|
||||
Reference in New Issue
Block a user