# CONF — Architecture Conformance Report — · kỳ | | | |---|---| | **Version** | 1.0 | | **Date** | YYYY-MM-DD | | **Author** | (skill sa-4-evolution) | | **Status** | 🟡 Draft | | **Approved by** | PO: — · SRE: — · EA: — | | **Source** | QAS_… v1.1 · TCO_… v1.0 · INF_… v1.0 · hoá đơn … · dashboard … · log sự cố … | | **Scope** | Kỳ … | | **Confidence** | 🟢 *(số đo thật)* / 🟡 *(một phần ước lượng)* | ## Change Log | Version | Date | Người sửa | Thay đổi | |---|---|---|---| | 1.0 | | | Bản đầu | > Mỗi kỳ một file, **không ghi đè kỳ trước**. So sánh giữa các kỳ là nơi xu hướng lộ ra. --- ## 1. Tóm tắt | | Đạt | Không đạt | **Chưa đo được** | |---|---|---|---| | `QAS` mức Must | | | | | `QAS` mức Should | | | | | | Ước lượng | Thực tế | Chênh | |---|---|---|---| | Chi phí hạ tầng/tháng | | | % | | | Số | |---|---| | Sự cố trong kỳ | | | — truy về một `ADR` | | | — truy về một `ASM` sai | | | — **điểm mù mới** | | | Drift phát hiện được | | **Ba việc cần xử lý trước:** … *(dẫn sang `TRM`)* --- ## 2. `QAS` × telemetry thật | `QAS` | Mục tiêu | Đo được | Nguồn đo | Kết quả | Ghi chú / `TD` | |---|---|---|---|---|---| | `QAS-001` | p95 ≤ 300ms | | Grafana … | ✅ / ❌ / ⚠️ | | | `QAS-004` | ≤ 45 phút | | | | | **Ký hiệu:** ✅ đạt · ❌ không đạt · ⚠️ **chưa đo được** 🔴 **⚠️ không nhẹ hơn ❌ — nó nặng hơn.** ❌ nghĩa là ta biết mình đang ở đâu; ⚠️ nghĩa là ta không biết gì cả. Mỗi mục ⚠️ phải ghi rõ vì sao chưa đo được: | `QAS` | Vì sao chưa đo được | Cần gì để đo được | Vào `TRM` | |---|---|---|---| | | cách đo ở AG2 không khả thi / thiếu observability / chưa có bài đo | | ☐ | **Xu hướng so với kỳ trước** | `QAS` | Kỳ trước | Kỳ này | Xu hướng | |---|---|---|---| | | | | ↗ xấu đi · → ổn định · ↘ tốt lên | ## 3. `TCO` × hoá đơn thật | Hạng mục | Ước lượng | Thực tế | Chênh | Giải thích | |---|---|---|---|---| | Compute | | | % | | | CSDL | | | | | | Cache | | | | | | Lưu trữ | | | | | | Message broker | | | | | | **Egress** | | | | | | Observability | | | | | | Non-prod | | | | | | **Tổng** | | | % | | **Chênh lệch > 20% — truy nguyên** *(phải thuộc một trong bốn loại)* | Hạng mục | Chênh | Loại nguyên nhân | Chi tiết | Hành động | |---|---|---|---|---| | | | ① tải khác dự kiến · ② cấu hình khác thiết kế · ③ bỏ sót khi ước lượng · ④ đơn giá đổi | | | 🔴 **Không thuộc bốn loại trên ⇒ đang có thứ gì đó chạy mà không ai biết.** Đây là phát hiện nghiêm trọng, không phải chuyện kế toán. **Chi phí trên đơn vị nghiệp vụ** *(chỉ số này ổn định hơn tổng chi phí)* | | Kỳ trước | Kỳ này | |---|---|---| | Chi phí / 1.000 giao dịch | | | | Chi phí / người dùng hoạt động | | | ## 4. Sự cố × quyết định kiến trúc | Sự cố | Ngày | Ảnh hưởng | Truy về | Chi tiết | Hành động | |---|---|---|---|---|---| | `INC-…` | | … phút downtime | `ADR-nnn` | Hệ quả đã ghi trong ADR §5 | Không cần đổi | | `INC-…` | | | `ASM-nn` **sai** | Giả định "…" không đúng thực tế | Sửa `ASM`, rà mọi thứ dựa trên nó | | `INC-…` | | | 🔴 **điểm mù mới** | Không tài liệu nào nói tới | Thêm `QAS-nnn` + `FM-nn` + `FIT-nn` | 🔴 **Điểm mù mới là phát hiện có giá trị nhất của cả báo cáo.** Nó là thứ không ai nghĩ tới — và bây giờ đã nghĩ tới. Ghi kỹ, đừng gộp vào các dòng khác. **Ngân sách lỗi** | `QAS` sẵn sàng | Ngân sách/tháng | Đã dùng | Còn lại | |---|---|---|---| | `QAS-007` 99.9% | 43 phút | | | Dùng hết ngân sách lỗi ⇒ dừng phát hành tính năng mới, ưu tiên ổn định. Quy tắc này ai chốt: … ## 5. Drift — thiết kế × đang chạy | # | Loại drift | Phát hiện bằng | Chi tiết | Mức | Hành động | |---|---|---|---|---|---| | 1 | `FIT` đỏ hoặc bị tắt | lịch sử CI | | | | | 2 | Component có trong code, không có trong `SAD` | so repo/deployment | | | Cập nhật `SAD` hoặc gỡ bỏ | | 3 | Interface đang gọi, không có trong `ICD` | **trace/log** | | | | | 4 | Cấu hình khác `INF` | so IaC thật | | | | | 5 | Whitelist `FIT` quá hạn | `FIT` §3 | | | | | 6 | `TD` quá hạn xét lại | `TDEBT` | | | | 🔴 **Loại 3 phải tìm bằng trace/log, không bằng đọc code.** Lời gọi phát sinh lúc chạy (qua cấu hình, plugin, job định kỳ) không lộ ra khi đọc code tĩnh. **Kết luận về drift:** kiến trúc đang chạy *(còn khớp thiết kế / đã trôi ở …)* ## 6. `ADR` cần xem lại | `ADR` | Điều kiện xét lại (§7 của ADR) | Đã chạm ngưỡng | Hành động | |---|---|---|---| | `ADR-nnn` | thông lượng vượt … | ☐ | | | `ADR` | Bị thực tế bác bỏ ở đâu | ADR thay thế | |---|---|---| | | | `ADR-nnn` | *Không sửa nội dung `ADR` cũ. Viết ADR mới có `Supersedes:`.* ## 7. Bài học kỳ này | Bài học | Sinh từ | Áp dụng vào đâu | |---|---|---| | | sự cố / drift / chênh lệch chi phí | `AGD` / `FIT` / quy trình / dự án sau | ## 8. Đề xuất cho `TRM` *Xếp theo lợi ích/chi phí. **Không xếp thứ tự ưu tiên thay PO** — trình bảng, PO xếp.* | # | Việc | Chi phí | Lợi ích *(bằng số)* | Rủi ro nếu không làm | Sinh từ | |---|---|---|---|---|---| | 1 | | … ngày công | … /tháng | | §3 | ## 9. Open Questions | ID | Câu hỏi | Hỏi ai | Từ ngày | Chặn gì | |---|---|---|---|---|