# TCO — Cost Model — e-commerce · Phương án P2 (chính) và P1 (đối chiếu) | | | |---|---| | **Version** | 1.1 | | **Date** | 2026-09-12 | | **Author** | SA (skill sa-1-context, chế độ `go`, hoạt động `cost-risk`) | | **Status** | 🟡 Draft *(duyệt từng phần — xem `Approved by`; chấp nhận cấu trúc 4 nhóm chi phí (§3–§6), 2 kịch bản tải A/B (§2), và kết luận thứ tự tương đối "P2 rẻ hơn P1" ở cả hai kịch bản (§1, §7); đơn giá AWS (`ASM-11`), tỷ giá (`ASM-12`), số FTE vận hành (`ASM-14`) và 5 khoản non-labor (`OQ-013…017`) **chưa xác nhận** — đây **chưa phải** AG1 toàn phần, Tech Lead chưa ký, `OQ-004` còn mở; xem "Tự chấm" §①)* | | **Approved by** | PO (uỷ quyền, chế độ chạy thử): **Điều phối dự án** — duyệt **từng phần** bản v1.1 · 2026-09-12 (sau khi đã sửa lỗi chép số §1 P2-B: dòng "Vận hành/nhân sự (3 năm)" P2-B = 5.600 triệu, Tổng 3 năm P2-B = 13.977,5 triệu): chấp nhận cấu trúc 4 nhóm chi phí (hạ tầng AWS · license/SaaS · vận hành/nhân sự · chi phí một lần xây dựng), 2 kịch bản tải A/B, và kết luận thứ tự tương đối **P2 rẻ hơn P1** ở cả hai kịch bản. **Chưa xác nhận** (giữ `Confidence` 🔴): đơn giá AWS (`ASM-11`), tỷ giá quy đổi USD/VND (`ASM-12`), số FTE đội Ops (`ASM-14`), và 5 khoản non-labor chưa tính được (`OQ-013…017`). Ký thay PO theo ngoại lệ `DEC-01` (SA), ghi thêm `DEC-09`; **không phải chữ ký PO/Tech Lead thật** — `OQ-004` giữ mở. Status **giữ** 🟡 Draft — AG1 toàn phần vẫn chưa đủ điều kiện. · Tech Lead: — *(chưa ký)* | | **Source** | `01-context/CTX_e-commerce_v1.0.md` (v1.2 trong header) §2 `DRV-04/05/06`, §3 `CON-01/02/03/04/05/08`, §4.1, §4.2, §4.4 · `01-context/OPT_e-commerce_v1.0.md` §1, §3 (P1/P2), §4, §8 `ASM-07/08/09` · `e-commerce/bid/estimate.computed.json` (`totals`, `cost`, `timeline`, `staffing`) · `e-commerce/bid/bid-config.md` (`rateCard`, `vatPct`) · `e-commerce/bid/40-financial-proposal.md` §C2–C5 · `e-commerce/docs/sections/03-kien-truc.md` §3.2–§3.4 · `e-commerce/docs/sections/09-van-hanh-kiem-thu.md` §9.3–§9.5 · `ba-output/e-commerce/01-discovery/RISK_CartCheckout_v1.0.md` (tham chiếu ID, không copy) | | **Scope** | Chi phí 3 năm cho **P2** (modular monolith + managed AWS, Payment tách riêng — phương án chính theo `DEC-06`) và **P1** (modular microservices theo `SAD.md`/hồ sơ thầu — đối chiếu), mỗi phương án tính theo 2 kịch bản tải. Đơn vị tiền: **VND**. Đơn giá hạ tầng AWS quy đổi từ USD (khu vực tham chiếu `ap-southeast-1`, xem `ASM-11`) | | **Confidence** | 🔴 Giả định chưa xác minh — kế thừa nguyên nhân của `CTX`/`OPT` (BA chưa ký G1, AG1 GĐ1 SA chưa từng chạy, ngoại lệ gate `DEC-01/03/04/05` tiếp tục ở `DEC-07`). Thêm hai lý do riêng của `TCO`: (a) đơn giá AWS **không** được truy vấn từ AWS Pricing Calculator/báo giá đại lý thời điểm hiện tại — là ước tính từ tri thức bảng giá công khai đã biết, **bắt buộc xác minh lại** trước khi PO dùng để duyệt ngân sách (`ASM-11`); (b) không có baseline tải thật (greenfield, `CTX §4.1`) nên toàn bộ kịch bản tải là giả định suy từ `DRV-04` (`ASM-10`), không phải đo lường | ## Change Log | Version | Date | Người sửa | Thay đổi | ADR/DEC | |---|---|---|---|---| | 1.1 | 2026-09-12 | SA (qua skill sa-1-context, chế độ `go`, hoạt động `cost-risk`) | Sửa lỗi chép số §1 P2-B theo phát hiện của người duyệt 2026-09-12: dòng "Vận hành/nhân sự (3 năm)" P2 — Kịch bản B đổi từ 5.800 triệu → **5.600 triệu** (đúng theo chi tiết cộng dồn ở §5: 5.400 nhân sự + 200 surge); Tổng 3 năm P2-B đổi từ 14.177,5 triệu (~14,18 tỷ) → **13.977,5 triệu (~13,98 tỷ)**, khớp số đã có sẵn ở §7. Viết lại ghi chú 🔴 "Ghi chú khớp số" ở §7 — nguyên nhân lệch là lỗi chép số ở §1, không phải làm tròn. Đã rà soát: dải tổng ở §1 "So sánh nhanh"/ARISK-07/OQ-005 (~11,2–19,1 tỷ) **không đổi** vì cận dưới (P2-A ~11,17 tỷ) và cận trên (P1-B ~19,06 tỷ) không liên quan tới ô bị sửa. Không sửa ARISK/OQ (không trích đúng con số 14.177,5/14,18). Không chạy lại ước lượng, không đổi Status/Confidence/Approved by. | — | | 1.1 | 2026-09-12 | PO (uỷ quyền, Điều phối dự án) — tác vụ **sign/approve** | Duyệt **từng phần** bản v1.1 (sau khi sửa lỗi chép số §1 P2-B ở dòng trên): chấp nhận cấu trúc 4 nhóm chi phí, 2 kịch bản tải A/B, kết luận thứ tự tương đối **P2 rẻ hơn P1**. Không đổi nội dung chuyên môn. Đơn giá AWS (`ASM-11`), tỷ giá (`ASM-12`), số FTE vận hành (`ASM-14`) và 5 khoản non-labor (`OQ-013…017`) **chưa xác nhận** — `Confidence` giữ 🔴. Ký thay PO theo ngoại lệ `DEC-01` (SA), ghi thêm `DEC-09`; **không phải chữ ký PO/Tech Lead thật** — `OQ-004` giữ mở, Tech Lead **chưa ký**. Status **giữ** 🟡 Draft — AG1 toàn phần chưa đủ điều kiện (xem "Tự chấm" §①). | `DEC-09` | | 1.0 | 2026-09-12 | SA (qua skill sa-1-context, chế độ `go`, hoạt động `cost-risk`) | Bản đầu — Bước 5 (phần `TCO`) của `sa-1-context`. Tính chi phí 3 năm cho P2 (chính, theo `DEC-06`) và P1 (đối chiếu) theo 2 kịch bản tải (A — tải dự kiến, B — đỉnh flash sale/tăng trưởng, neo `DRV-04`). Tách 4 nhóm: hạ tầng AWS · license/SaaS · vận hành/nhân sự · chi phí một lần (xây dựng). Mọi con số hạ tầng có công thức + nguồn hoặc gắn `ASM-nn` kèm cờ "cần xác minh" theo `D9`. 8 khoản non-labor còn `amount: null` trong `estimate.computed.json` được xử lý: NL-01/NL-02 (hạ tầng AWS, OpenSearch) tính bằng công thức riêng của SA (mục đích khác ước lượng thầu); NL-03/04/05/07/08 chưa có cơ sở tính (phí giao dịch/vận chuyển/pentest/đào tạo phụ thuộc hợp đồng nhà cung cấp) — ghi `OQ-014…OQ-017`. Tiếp tục ngoại lệ gate `DEC-01/03/04/05`, ghi thêm `DEC-07`. `Confidence` 🔴 toàn tài liệu. | `DEC-07` | > Sơ đồ thắng về **quan hệ và luồng** (không có sơ đồ mới trong tài liệu này — xem sơ đồ khối P1/P2 ở `OPT §3`). Bảng/văn bản thắng về **ràng buộc và con số**. Mâu thuẫn ngoài hai loại này là lỗi tài liệu (`D12`). --- ## 0. Ghi chú Preflight & ngoại lệ gate — tiếp nối `CTX`/`OPT` Gate AG1 (PO + Tech Lead) chưa từng chạy cho dự án e-commerce; BA vẫn chưa ký G1 chính thức. Người dùng (vai điều phối dự án chạy thử) **tái khẳng định muốn tiếp tục** sang phần `TCO` của Bước 5 (`sa-1-context`) theo đúng ghi chú người duyệt của lượt chạy này. > **DEC-07 (SA)** — Tiếp tục chạy `sa-1-context` Bước 5 (phần `TCO`) cho e-commerce trong khi BA > vẫn chưa qua G1 và AG1 vẫn chưa từng chạy — tiếp nối `DEC-01/03/04/05`. > **Quyết định:** Tiếp tục, `Confidence 🔴` cho toàn bộ con số (giả định tải + giả định đơn giá > AWS) cho tới khi có số liệu tải thật (sau go-live) và báo giá AWS/đại lý chính thức. > **Người quyết:** Điều phối dự án (đại diện PO, dự án chạy thử). > **Radar (ước lượng):** ~3–4 (chi phí đảo ngược thấp — sửa lại `TCO` khi có số thật không tốn > nhiều · bán kính ảnh hưởng: `INF`/ngân sách GĐ2 phụ thuộc con số này nhưng bản thân việc ghi > tài liệu dưới ngoại lệ thì nhỏ · chưa chạm một `QAS` cụ thể · không ràng buộc dài hạn · không > tranh cãi mới, tiếp nối tiền lệ) → **ghi `DEC-nn`, không cần `ADR`**. > **Hệ quả nếu không chấp nhận ngoại lệ:** dừng Bước 5, GĐ1 SA không đủ 4 artifact để audit AG1, > chậm tiến độ chạy thử tương ứng thời gian BA/PO hoàn tất các điều kiện gate thật. 🔴 **Lưu ý quan trọng cho người ký:** đơn giá AWS dưới đây **không phải báo giá thật** — đây là ước tính dựa trên tri thức bảng giá công khai của AWS (không truy vấn AWS Pricing Calculator hay báo giá đại lý tại thời điểm chạy skill này), khu vực tham chiếu `ap-southeast-1` (Singapore, gần nhất với ràng buộc `CON-03`/`ASM-04` cho tới khi `OQ-007` xác nhận residency VN). **Bắt buộc** chạy lại qua AWS Pricing Calculator hoặc xin báo giá đại lý AWS tại Việt Nam trước khi dùng các con số này để duyệt ngân sách chính thức — xem `ASM-11`, `OQ-013`. --- ## 1. Tóm tắt cho người quyết định | | P2 — Kịch bản A | P2 — Kịch bản B | P1 — Kịch bản A | P1 — Kịch bản B | |---|---|---|---|---| | **Chi phí một lần (xây dựng, đã VAT)** | 3.552,2 triệu | 3.552,2 triệu | 3.762,6 triệu | 3.762,6 triệu | | **OpEx hạ tầng AWS (3 năm)** | 1.818,8 triệu | 4.425,8 triệu | 3.776,1 triệu | 7.339,2 triệu | | **License/SaaS (3 năm)** | 349,5 triệu | 349,5 triệu | 409,5 triệu | 409,5 triệu | | **Vận hành/nhân sự (3 năm)** | 5.400 triệu | 5.600 triệu | 6.750 triệu | 7.350 triệu | | **Đào tạo (một lần, Năm 1)** | 50 triệu | 50 triệu | 200 triệu | 200 triệu | | **Tổng 3 năm (VND)** | **≈ 11.170,5 triệu (~11,17 tỷ)** | **≈ 13.977,5 triệu (~13,98 tỷ)** | **≈ 14.898,2 triệu (~14,90 tỷ)** | **≈ 19.061,3 triệu (~19,06 tỷ)** | | **So với `CON-01` (ngân sách duyệt)** | ❌ **Không đối chiếu được** — `CON-01` mới có số lao động build (~3,76 tỷ, từ hồ sơ thầu), **không có** ngân sách vận hành 3 năm đã duyệt để so sánh (`OQ-005` còn mở) | | | | 🔴 **Phát hiện quan trọng nhất của `TCO` này, cần trình PO ngay:** con số duy nhất PO/tài chính từng thấy (~3,76 tỷ VND, hồ sơ thầu) **chỉ là chi phí xây dựng một lần**. Chi phí vận hành 3 năm (hạ tầng + license + con người) — phần mà mọi dự án thật sự phải trả sau go-live — **lớn hơn** chi phí xây dựng ban đầu **2,1–4,0 lần** tuỳ phương án/kịch bản. Đây chính xác là điều `GUIDE.md` cảnh báo: *"TCO ra con số quá lớn, khách sẽ sốc — đó là giá trị của TCO, không phải vấn đề của nó."* `OQ-005` (ngân sách) cần được hỏi lại với con số full 3 năm này, không phải con số build. **P2 rẻ hơn P1 ở cả hai kịch bản** (~2,7 tỷ ở kịch bản A, ~4,9 tỷ ở kịch bản B) — khớp hướng khuyến nghị định tính của `OPT` (P2 ít managed component hơn, không cần cụm Kafka/MSK + OpenSearch đa node chạy 24/7 bất kể tải). --- ## 2. Giả định tải — nền của mọi con số dưới đây *Dự án greenfield (`CTX §4.1`) — không có baseline tải thật. Toàn bộ số dưới đây là `ASM-10`, suy từ `DRV-04` ("hàng trăm nghìn SKU, hàng trăm nghìn–hàng triệu user, đỉnh hàng nghìn–chục nghìn concurrent user mùa flash sale"), chọn **cận dưới/giữa dải** cho kịch bản A và **cận dưới của dải "chục nghìn"** cho kịch bản B — không phải số đo được.* | Chỉ số | Kịch bản A *(tải dự kiến)* | Kịch bản B *(đỉnh flash sale)* | Nguồn | |---|---|---|---| | Người dùng hoạt động | 200.000 | 600.000 | `ASM-10`, suy từ `DRV-04` | | SKU | 300.000 | 500.000 (tăng trưởng) | `ASM-10` | | Giao dịch/ngày (trung bình) | 5.000 đơn | 15.000 đơn (≈ 625 đơn/giờ đỉnh × hệ số dồn) | `ASM-10` | | Giao dịch/giờ (đỉnh) | ~400 đơn/giờ | ~15.000 đơn/giờ (≈ 4,2 đơn/giây) | `ASM-10`, tương ứng "chục nghìn concurrent" của `DRV-04` | | Concurrent user (đỉnh) | 2.000 | 10.000 | `ASM-10`, cận dưới dải `DRV-04` | | Dung lượng dữ liệu năm 1 / 3 | ~50GB / ~110GB | ~80GB / ~200GB | `ASM-10` | | Tốc độ tăng dữ liệu | ~5GB/tháng | ~10GB/tháng | `ASM-10` | | Băng thông ra ngoài (egress qua CDN) | ~400GB/tháng | ~1.200GB/tháng (1,2TB) | `ASM-10` | 🔴 **`ASM-10`** — Chủ: PM/Tech Lead. Cách xác minh: đo lại sau 4–6 tuần soft-launch (khớp `DRV-02` §GOAL-01 của `CTX`), thay số giả định bằng số đo thật. Nếu sai lệch > 50%: toàn bộ bảng chi phí hạ tầng bên dưới phải tính lại — đây là điểm nhạy cảm nhất của `TCO`, xem §8. --- ## 3. Chi phí hạ tầng AWS — theo phương án *Tất cả đơn giá dưới đây: `ASM-11` — ước tính bảng giá công khai AWS, khu vực `ap-southeast-1`, **không tra cứu API Pricing thời gian thực**, cờ 🔴 **cần xác minh**. Tỷ giá quy đổi dùng `ASM-12`: 1 USD ≈ 25.000 VND (**cần xác minh tỷ giá thật tại ngày duyệt ngân sách**).* ### 3.1 Đơn giá tham khảo dùng chung *(`ASM-11`, tất cả 🔴 cần xác minh)* | Hạng mục | Đơn giá ước tính (USD) | Nguồn/ghi chú | |---|---|---| | ECS Fargate (Linux/x86) | $0,0466/vCPU-giờ · $0,0051/GB-giờ | Bảng giá công khai AWS Fargate, `ap-southeast-1` | | RDS PostgreSQL Multi-AZ, `db.r6g.xlarge` (4vCPU/32GB) | ≈ $0,973/giờ | Ước tính ~2× đơn giá Single-AZ tương ứng | | RDS PostgreSQL Multi-AZ, `db.t4g.medium` (2vCPU/4GB) | ≈ $0,146/giờ | Ước tính, dùng cho DB nhỏ (Payment riêng, hoặc từng logic DB của P1) | | RDS PostgreSQL Multi-AZ, `db.r6g.2xlarge` (8vCPU/64GB) | ≈ $1,946/giờ | Ước tính, dùng khi scale DB chính P2 kịch bản B | | ElastiCache Redis `cache.r6g.large` | ≈ $0,252/giờ/node | Ước tính | | ElastiCache Redis `cache.r6g.xlarge` | ≈ $0,504/giờ/node | Ước tính, dùng kịch bản B | | Amazon MSK broker `kafka.m5.large` | ≈ $0,21/giờ/broker + $0,10/GB-tháng lưu trữ | Ước tính — **chỉ P1 dùng**, cụm tối thiểu 3 broker chạy 24/7 bất kể tải | | OpenSearch `r6g.large.search` | ≈ $0,167/giờ/node + $0,135/GB-tháng EBS | Ước tính — P1 dùng ngay từ đầu (3 node tối thiểu); P2 hoãn dùng Postgres FTS ở kịch bản A | | SQS/EventBridge | $0,40/triệu request (SQS chuẩn) · $1,00/triệu event (EventBridge) | Ước tính — rẻ, rủi ro nằm ở **throughput/độ trễ** (`ASM-07`), không phải chi phí | | S3 Standard | $0,025/GB-tháng | Ước tính | | CloudFront (egress) | ≈ $0,085/GB | Ước tính, tier đầu | | WAF | $5/tháng + ~$1/rule + $0,60/triệu request | Ước tính | | ALB | $0,0225/giờ + LCU | Ước tính | | NAT Gateway (2 AZ) | $0,045/giờ/gateway + $0,045/GB xử lý | Ước tính | ### 3.2 P2 — Modular monolith + managed AWS (phương án chính) | Hạng mục | Cấu hình (A) | Tiền/tháng (A) | Cấu hình (B) | Tiền/tháng (B) | |---|---|---|---|---| | Compute (ECS Fargate) — monolith + Payment | ~4 tasks×1vCPU/2GB (monolith) + 2 tasks×0,5vCPU/1GB (Payment) | ≈ $207 | ~10 tasks×1vCPU/2GB + 4 tasks×0,5vCPU/1GB | ≈ $498 | | CSDL (RDS) — 1 cụm chính + Payment riêng | `r6g.xlarge` Multi-AZ + `t4g.medium` Multi-AZ (Payment) | ≈ $817 | `r6g.2xlarge` Multi-AZ + 1 read replica + Payment `r6g.large` Multi-AZ | ≈ $2.470 | | Cache | `r6g.large` × 1 node | ≈ $184 | `r6g.xlarge` × 1 node + 1 replica | ≈ $736 | | Message broker (SQS/EventBridge) | ~750K msg/tháng | ≈ $2 | ~2,25M msg/tháng | ≈ $6 | | Lưu trữ đối tượng (S3) | ~500GB | ≈ $12,5 | ~1,5TB | ≈ $38 | | Load balancer/gateway (ALB) | | ≈ $31 | | ≈ $61 | | **Băng thông ra (CloudFront)** | ~400GB | ≈ $34 | ~1,2TB | ≈ $102 | | WAF | | ≈ $25 | | ≈ $35 | | NAT Gateway | | ≈ $85 | | ≈ $125 | | Backup & DR | Automated backup + cross-region snapshot (Payment) | ≈ $30 | | ≈ $60 | | Observability (log/metric/trace, ~25% hạ tầng — xem cảnh báo `cost-model.md` §3) | | ≈ $357 | | ≈ $1.033 | | Môi trường non-prod (dev/stg, ~35% Production) | | ≈ $624 | | ≈ $700 | | **Cộng hạ tầng/tháng (Production + non-prod)** | | **≈ $2.409** | | **≈ $5.862** | | **Quy đổi VND/tháng** (`ASM-12`) | | **≈ 60,2 triệu** | | **≈ 146,6 triệu** | **P2 3 năm** *(Năm 1 = 5 tháng vận hành sau go-live tháng 7; Năm 2 = 12 tháng; Năm 3 = 12 tháng × 1,1 tăng trưởng, `ASM-15`)*: | | Kịch bản A | Kịch bản B | |---|---|---| | Năm 1 (5 tháng) | 301,1 triệu | 732,8 triệu | | Năm 2 (12 tháng) | 722,7 triệu | 1.758,6 triệu | | Năm 3 (12 tháng × 1,1) | 795,0 triệu | 1.934,5 triệu | | **Tổng hạ tầng 3 năm** | **1.818,8 triệu** | **4.425,8 triệu** | ### 3.3 P1 — Modular microservices theo `SAD.md`/hồ sơ thầu (đối chiếu) | Hạng mục | Cấu hình (A) | Tiền/tháng (A) | Cấu hình (B) | Tiền/tháng (B) | |---|---|---|---|---| | Compute (ECS Fargate) — ~10 service × 2 task (HA) | 20 task × 0,5vCPU/1GB | ≈ $415 | scale ~40 task | ≈ $829 | | CSDL (RDS) — ~10 logic DB Multi-AZ | 10 × `t4g.medium` Multi-AZ | ≈ $1.066 | 3 DB nâng `r6g.large` + 7 DB `t4g.medium` | ≈ $1.762 | | **Message broker (Kafka/MSK) — chạy 24/7 bất kể tải** | 3 broker `m5.large` + 900GB lưu trữ | ≈ $550 | 6 broker + 1,8TB lưu trữ | ≈ $1.100 | | **Search (OpenSearch, dùng ngay từ đầu)** | 3 node `r6g.large.search` + 300GB | ≈ $406 | 5 node + 500GB | ≈ $677 | | Cache | `r6g.large` × 1 node | ≈ $184 | `r6g.xlarge` + 1 replica | ≈ $736 | | Lưu trữ đối tượng (S3) | ~500GB | ≈ $12,5 | ~1,5TB | ≈ $38 | | Load balancer/gateway | | ≈ $31 | | ≈ $61 | | Băng thông ra (CloudFront) | ~400GB | ≈ $34 | ~1,2TB | ≈ $102 | | WAF | | ≈ $25 | | ≈ $35 | | NAT Gateway | | ≈ $85 | | ≈ $125 | | Backup & DR (10 DB + 2 cụm) | | ≈ $50 | | ≈ $90 | | Observability (~25%) | | ≈ $715 | | ≈ $1.389 | | Môi trường non-prod (~40% — Kafka/OpenSearch tối thiểu vẫn cần ở Staging) | | ≈ $1.429 | | ≈ $2.777 | | **Cộng hạ tầng/tháng** | | **≈ $5.002** | | **≈ $9.721** | | **Quy đổi VND/tháng** | | **≈ 125,0 triệu** | | **≈ 243,0 triệu** | **P1 3 năm** *(cùng cách tính Năm 1/2/3 như P2)*: | | Kịch bản A | Kịch bản B | |---|---|---| | Năm 1 (5 tháng) | 625,2 triệu | 1.215,1 triệu | | Năm 2 (12 tháng) | 1.500,5 triệu | 2.916,2 triệu | | Năm 3 (12 tháng × 1,1) | 1.650,5 triệu | 3.207,9 triệu | | **Tổng hạ tầng 3 năm** | **3.776,1 triệu** | **7.339,2 triệu** | 🔴 Chênh lệch hạ tầng P1 so với P2 đến chủ yếu từ **hai cụm chạy 24/7 bất kể tải** (Kafka/MSK + OpenSearch đa node) mà P1 phải có ngay từ ngày một, trong khi P2 hoãn OpenSearch và dùng SQS/EventBridge managed (không cụm phải patch/scale) — đúng như nhận định định tính ở `OPT §4`. --- ## 4. License & dịch vụ mua ngoài *Không phương án nào cần license phần mềm lõi thương mại (P3 — mua nền tảng — đã bị loại ở `OPT §5`). Các dòng dưới đây là công cụ/dịch vụ hỗ trợ vận hành.* | Hạng mục | Mô hình tính giá | Đơn giá ước tính | P2/năm | P1/năm | Nguồn | |---|---|---|---|---|---| | PagerDuty/OpsGenie (on-call) | Theo user | ~$21/user/tháng × 5 user | ≈ 31,5 triệu | ≈ 31,5 triệu | `ASM-11`, đề xuất minh hoạ ở `docs/sections/09` §9.4.1 | | Domain/SSL (ACM miễn phí + Route53) | Cố định | ~$15/năm domain + $6/tháng hosted zone | ≈ 5 triệu | ≈ 5 triệu | `ASM-11` | | SAST/SCA/APM tooling (SonarQube/Snyk/X-Ray) | Theo seat/gói | Gói nhỏ ước tính | ≈ 80 triệu | ≈ 80 triệu | `ASM-11`, `docs/sections/09` §9.3.1 | | Quản trị cụm Kafka/MSK bổ sung (Confluent Control Center hoặc tương đương) | — | — | N/A (không cần) | ≈ 20 triệu | Chỉ P1 cần — MSK cần công cụ giám sát cụm riêng | | **Cộng/năm** | | | **≈ 116,5 triệu** | **≈ 136,5 triệu** | | | **Cộng 3 năm** | | | **≈ 349,5 triệu** | **≈ 409,5 triệu** | | 🔴 **Mô hình tính giá quan trọng hơn đơn giá** — PagerDuty tính theo user, tăng cùng quy mô đội vận hành; nếu `OQ-008` (đội vận hành) trả lời số người lớn hơn 5, chi phí này tăng tuyến tính. **8 khoản non-labor trong hồ sơ thầu (`NL-01…NL-08`, `estimate.computed.json`) — đối chiếu:** | NL | Hạng mục | Xử lý trong `TCO` này | |---|---|---| | NL-01 | Hạ tầng cloud AWS năm đầu | Tính bằng công thức riêng ở §3 (không dùng số thầu, vì thầu chưa có số) | | NL-02 | OpenSearch cluster | Tính trong §3 (P1: có ngay; P2: hoãn tới khi có bằng chứng cần) | | NL-03 | Phí giao dịch VNPay/Momo | **Chưa tính được** — cần GMV (tổng giá trị giao dịch) giả định + biểu phí thật của VNPay/Momo, cả hai đều chưa có → `OQ-014` | | NL-04 | Phí Email/SMS | **Chưa tính được** — nhà cung cấp cụ thể chưa chốt (`SAD.md §3.4`) nên chưa có biểu phí → `OQ-016` | | NL-05 | Phí API GHN/GHTK | **Chưa tính được** — phí theo hợp đồng đơn vị vận chuyển, chưa có hợp đồng → `OQ-015` | | NL-06 | Domain/SSL/WAF | Tính trong §3 (WAF) và §4 (domain/SSL) | | NL-07 | Pentest/ASV | **Chưa tính được** — cần báo giá nhà cung cấp pentest tại VN, SA không có cơ sở để tự ước lượng đáng tin cậy → `OQ-017` | | NL-08 | Đào tạo & tài liệu bàn giao | Trùng lặp một phần với §5 "Đào tạo" bên dưới (WBS-09 lao động đã tính trong chi phí xây dựng §6) — không cộng hai lần | --- ## 5. Vận hành *Kế thừa giả định "team MVP chuẩn" `DEC-02` (🔴) — số người/kỹ năng thật chưa xác nhận (`OQ-008` còn mở). `ASM-14`: giả định 2 FTE Ops/SRE (P2) hoặc 2,5 FTE (P1, do nhiều service + Kafka/OpenSearch cần vận hành hơn) ở mức lương `DEVOPS` theo rate card hồ sơ thầu (75.000.000 VND/người-tháng).* | Hạng mục | Cách tính | P2/năm | P1/năm | Nguồn | |---|---|---|---|---| | Nhân sự vận hành (Ops/SRE) | P2: 2 FTE × 75tr × 12 · P1: 2,5 FTE × 75tr × 12 | 1.800 triệu | 2.250 triệu | `ASM-14`, `DEC-02`, `bid-config.rateCard.DEVOPS` | | Trực sự cố / surge mùa cao điểm (kịch bản B, chỉ Năm 2/3) | Ước tính phụ phí on-call mùa flash sale | +200 triệu (2 năm) | +600 triệu (2 năm) | `ASM-14` | | Đào tạo kỹ năng mới *(sinh từ `CON-05`/`OQ-010`)* | P2: AWS ECS/SQS phổ biến hơn · P1: cần đào tạo Kafka/MSK/OpenSearch/EKS — kế thừa rủi ro năng lực team (`ARISK-05`) | 50 triệu (Năm 1, một lần) | 200 triệu (Năm 1, một lần) | `ASM-14`, tham chiếu `OPT §4` tiêu chí "Rủi ro kỹ thuật" | | Công cụ (đã tính ở §4) | — | (xem §4) | (xem §4) | | | **Cộng vận hành 3 năm (kịch bản A)** | | **5.400 triệu + 50 triệu = 5.450 triệu** | **6.750 triệu + 200 triệu = 6.950 triệu** | | | **Cộng vận hành 3 năm (kịch bản B)** | | **5.400 + 200 + 50 = 5.650 triệu** | **6.750 + 600 + 200 = 7.550 triệu** | | 🔴 `CON-05`/`OQ-008` chưa trả lời số đội vận hành thật — nếu đội thật nhỏ hơn 2 FTE (VD PO chỉ định 1 người kiêm nhiệm), dòng này giảm nhưng rủi ro không đáp ứng `DRV-05` (99.9% uptime, escalation 24/7) tăng — đây là đánh đổi PO/PM phải quyết, không phải SA tự chọn số nhỏ hơn cho `TCO` đẹp hơn. --- ## 6. Chi phí xây dựng (một lần) *Lấy nền từ `estimate.computed.json`/`40-financial-proposal.md` §C2–C5 (lao động dự thầu). Vì hồ sơ thầu ước lượng theo kiến trúc gốc kiểu P1 (Kafka/MSK, `WBS-03` XL/high risk, 52 MD + 18,2 MD dự phòng = 70,2 MD), P2 cần tách riêng: SQS/EventBridge managed nhẹ hơn đáng kể — `ASM-13` ước tính effort `WBS-03` tương đương P2 chỉ bằng ~30% P1 (15,6 MD cơ sở + 20% dự phòng thấp hơn vì rủi ro công nghệ managed thấp hơn = 18,7 MD), **chưa qua ước lượng lại chi tiết của nhà thầu**.* | Hạng mục | P1 (theo hồ sơ thầu, VND) | P2 (điều chỉnh theo `ASM-13`, VND) | |---|---|---| | Lao động (43 hạng mục WBS, 53,02 MM) | 3.420.500.000 | 3.420.500.000 − 191.200.000 *(giảm `WBS-03`)* ≈ **3.229.300.000** | | VAT (10%) | 342.050.000 | 322.930.000 | | **Tổng (đã VAT)** | **3.762.550.000** | **3.552.230.000** | Chi tiết `ASM-13` (công thức giảm `WBS-03`): P1 `WBS-03` = 70,2 MD, đơn giá bình quân theo tỷ trọng vai trò tham gia (PM 3,85% · SA 28,85% · BE 48,08% · DEVOPS 19,23%) ≈ 3.714.000 VND/MD ⇒ 70,2 MD × 3.714.000 ≈ **260,7 triệu VND**. P2 `WBS-03` ước 18,7 MD cùng tỷ trọng ⇒ 18,7 × 3.714.000 ≈ **69,5 triệu VND**. Chênh lệch ≈ **191,2 triệu VND** (chưa VAT), khớp hướng "**-70,2 MD** so với P1" đã nêu ở `OPT §6`. 🔴 **`ASM-13`** — Chủ: Tech Lead + PM. Cách xác minh: nhà thầu/đội thi công ước lượng lại WBS-03 riêng cho kiến trúc P2 (SQS/EventBridge) thay vì suy tỷ lệ %. Hệ quả nếu sai: chi phí xây dựng một lần của P2 có thể lệch ±100–150 triệu VND so với số ở trên — không đổi kết luận "P2 rẻ hơn P1" (chênh lệch hạ tầng 3 năm lớn hơn nhiều biên độ sai số này). Effort nghiệp vụ (`WBS-18…43`) **không đổi** giữa P1/P2 (đã xác nhận ở `OPT §6`) — không lặp lại bảng chi tiết ở đây, chỉ tham chiếu `40-financial-proposal.md` §C2. --- ## 7. Tổng hợp 3 năm | Nhóm | P2 — A | P2 — B | P1 — A | P1 — B | |---|---|---|---|---| | Hạ tầng | 1.818,8 triệu | 4.425,8 triệu | 3.776,1 triệu | 7.339,2 triệu | | License | 349,5 triệu | 349,5 triệu | 409,5 triệu | 409,5 triệu | | Vận hành (gồm đào tạo) | 5.450 triệu | 5.650 triệu | 6.950 triệu | 7.550 triệu | | Xây dựng (một lần, Năm 1) | 3.552,2 triệu | 3.552,2 triệu | 3.762,6 triệu | 3.762,6 triệu | | **Tổng 3 năm** | **11.170,5 triệu** | **13.977,5 triệu** | **14.898,2 triệu** | **19.061,3 triệu** | **Ghi chú khớp số (sửa tại v1.1):** bảng §1 trước đây (v1.0) ghi nhầm dòng "Vận hành/nhân sự (3 năm)" của P2 — Kịch bản B là 5.800 triệu và Tổng 3 năm là 14.177,5 triệu (~14,18 tỷ) — đây là **lỗi chép số ở §1**, không phải sai lệch do làm tròn. Số đúng theo chi tiết cộng dồn ở §5 (2 FTE × 75tr × 12 × 3 năm = 5.400 triệu + surge kịch bản B 200 triệu = 5.600 triệu; cộng đào tạo 50 triệu = 5.650 triệu vận hành, khớp dòng "Vận hành (gồm đào tạo)" ở bảng này) là: dòng "Vận hành/nhân sự (3 năm)" P2-B = **5.600 triệu**, Tổng 3 năm P2-B = **13.977,5 triệu (~13,98 tỷ)**. Bảng §1 đã được sửa lại khớp số này (xem Change Log v1.1). Các cột P2-A, P1-A, P1-B không bị ảnh hưởng bởi lỗi này. --- ## 8. Điểm nhạy cảm | Giả định | Nếu sai ±50% thì tổng 3 năm lệch | Cách giảm bất định | |---|---|---| | `ASM-10` (kịch bản tải) | Có thể đổi hẳn kịch bản áp dụng (A↔B), chênh lệch tới ~3–5 tỷ VND | Đo tải thật sau soft-launch 4–6 tuần (khớp `DRV-02`) | | `ASM-11` (đơn giá AWS) | ±50% đơn giá ⇒ hạ tầng 3 năm lệch ±0,9–3,7 tỷ VND tuỳ phương án/kịch bản | Chạy AWS Pricing Calculator thật hoặc xin báo giá đại lý AWS tại VN trước khi duyệt ngân sách | | `ASM-12` (tỷ giá USD/VND) | Tỷ lệ thuận với toàn bộ dòng hạ tầng | Dùng tỷ giá bán ra của ngân hàng tại ngày lập ngân sách chính thức | | `ASM-14` (số FTE vận hành) | ±50% ⇒ lệch ±2,7–3,5 tỷ VND (dòng chi phí lớn nhất trong toàn `TCO`) | `OQ-008` cần trả lời trước khi con số này được coi là đáng tin | | `ASM-13` (tách effort xây dựng P2) | ±100–150 triệu VND (biên độ nhỏ so với tổng) | Ước lượng lại WBS-03 riêng cho P2 khi vào GĐ2 | 🔴 **Dòng nhạy cảm nhất là `ASM-14` (vận hành/nhân sự)** — không phải hạ tầng AWS như trực giác thường nghĩ. Nếu PO/PM chỉ có thể xác nhận 1 điều trước khi dùng `TCO` này, nên là `OQ-008`. --- ## 9. Điểm hoà vốn so với P0 *(giữ nguyên hiện trạng)* **Không áp dụng theo đúng nghĩa template** — dự án là **greenfield** (`CTX §4.1`, `OPT` P0): không có hệ thống/chi phí vận hành hiện tại để so sánh, và P0 ("không làm gì") không tạo ra doanh thu để tính "tiết kiệm được". `OPT §3` đã ghi rõ: hệ quả của P0 là **định tính nghiêm trọng nhất** (chặn toàn bộ mô hình kinh doanh marketplace theo `DRV-01`) nhưng **không quy ra được một con số tiền cụ thể** vì không có doanh thu mục tiêu bằng số trong nguồn hiện có. Đây là giới hạn đã biết của lượt chạy này — không phải SA bỏ sót. --- ## 10. Giả định & Ngoài phạm vi **Giả định** *(tiếp số từ `CTX §5`/`OPT §8`, bắt đầu `ASM-10`)*: | ID | Giả định | Nếu sai | |---|---|---| | `ASM-10` | Kịch bản tải A/B (§2) phản ánh đúng độ lớn thực tế của `DRV-04` | Toàn bộ `TCO` phải tính lại theo kịch bản đúng | | `ASM-11` | Đơn giá AWS `ap-southeast-1` ước tính ở §3.1 gần đúng với giá thật tại thời điểm duyệt ngân sách | Chi phí hạ tầng 3 năm lệch tỷ lệ thuận — xem §8 | | `ASM-12` | Tỷ giá 1 USD ≈ 25.000 VND giữ ổn định trong 3 năm | Chi phí hạ tầng lệch theo biến động tỷ giá thật | | `ASM-13` | Effort xây dựng `WBS-03` của P2 ước bằng ~30% P1 theo tỷ lệ suy diễn, chưa qua ước lượng lại chi tiết | Chi phí xây dựng một lần của P2 lệch ±100–150 triệu VND | | `ASM-14` | Đội vận hành 2 FTE (P2)/2,5 FTE (P1) đủ đáp ứng `DRV-05` (99.9% uptime, escalation 24/7) | Nếu đội thật nhỏ hơn: rủi ro không đạt `DRV-05`; nếu lớn hơn: chi phí vận hành tăng — xem `ARISK-08` | | `ASM-15` | Tăng trưởng chi phí hạ tầng Năm 3 so với Năm 2 là +10% (không có số liệu thị trường cụ thể, chỉ là hệ số làm tròn hợp lý) | Nếu tăng trưởng thật nhanh hơn (VD traffic tăng gấp đôi mỗi năm theo mô hình kinh doanh thành công), Năm 3 phải tính lại theo đúng kịch bản B hoặc kịch bản mới | **Ngoài phạm vi:** - Phí giao dịch VNPay/Momo, phí API GHN/GHTK, phí Email/SMS, phí pentest/ASV — không tính được vì thiếu biểu phí/hợp đồng nhà cung cấp thật, xem `OQ-014…OQ-017`. - Chi phí dịch thuật nội dung đa ngôn ngữ (`FR-15`) — đã loại trừ tường minh trong `40-financial-proposal.md` §C1.1, không thuộc `TCO` kiến trúc này. - Ứng dụng di động native, affiliate marketing, subscription, hoá đơn điện tử tự động cho seller, SSO doanh nghiệp — ngoài phạm vi MVP theo `40-financial-proposal.md` §C1.1 và `CON-07`. - Chi phí cơ hội của việc trì hoãn go-live (P0) — không quy ra được số, xem §9. - Kịch bản lai (P2 + Kafka/MSK riêng cho hot-path nếu `POC-01` fail) — chưa tính; nếu `POC-01` (xem `ARISK_e-commerce_v1.0.md`) thất bại, `TCO` P2 phải cộng thêm một phần chi phí MSK của P1 (§3.3, dòng "Message broker") cho riêng hot-path đặt hàng. --- ## Tự chấm ### ① Bảng tự chấm Gate AG1 *(`workflow.md §2`, cập nhật từ `CTX`/`OPT`)* | # | Tiêu chí | ☐/✅ | Ghi chú | |---|---|---|---| | 1 | `CTX` có `DRV-nn` | ✅ | Không đổi — xem `CTX §2` | | 2 | `CTX` có `CON-nn` | ✅ *(với lưu ý)* | Không đổi — xem `CTX §3` | | 3 | `CTX` mô tả hiện trạng as-is | ✅ *(với lưu ý)* | Không đổi — xem `CTX §4` | | 4 | `OPT` có ≥2 phương án, chấm điểm, nêu phương án bị loại | ✅ | Không đổi — xem `OPT §4`/§5 | | 5 | `TCO` có chi phí 3 năm, ≥2 kịch bản tải | ✅ | **Mới đạt ở lượt này** — §1/§3/§7, 2 phương án × 2 kịch bản tải, tách 4 nhóm (hạ tầng/license/vận hành/xây dựng). Đơn giá AWS/tỷ giá/GMV nhiều chỗ 🔴 chưa xác minh (`OQ-013…017`) — đạt tiêu chí "có mặt và đủ cấu trúc", chưa đạt mức "số đã xác nhận thật" | | 6 | `ARISK` có rủi ro cao kèm chủ + biện pháp | ✅ | Xem `ARISK_e-commerce_v1.0.md` §3 — 6 rủi ro 🔴, mỗi cái có chủ + biện pháp cụ thể (không phải "sẽ theo dõi") | | 7 | Rủi ro cao chưa chứng minh được có kế hoạch POC | ✅ | Xem `ARISK_e-commerce_v1.0.md` §6 — `POC-01`/`POC-02` có tiêu chí pass/fail viết trước | **Kết luận tự chấm AG1:** **7/7 tiêu chí có mặt về mặt cấu trúc** — GĐ1 SA nay đủ 4 artifact (`CTX`/`OPT`/`TCO`/`ARISK`) để audit AG1. **Nhưng chưa đủ điều kiện ký chính thức**: nhiều dòng vẫn ở `Confidence` 🔴 vì (a) BA chưa ký G1 thật, (b) `OQ-005/006/007/008/010/012` (ngân sách, deadline, residency, đội vận hành, năng lực team, thời điểm POC) còn mở, (c) `OQ-013…017` (đơn giá AWS, phí đối tác) mới phát sinh ở `TCO`. Khuyến nghị: chạy `POC-01`/`POC-02` và trả lời tối thiểu `OQ-005`/`OQ-008`/`OQ-010` trước khi PO + Tech Lead ký AG1 thật. ### ② Checklist D1–D12 *(`design-rules.md`)* | # | Mục | ☐/✅ | Ghi chú | |---|---|---|---| | D1 | Một ADR một quyết định | N/A | Tài liệu này không có `ADR` | | D2 | Không NFR định tính | N/A | `TCO` không chứa `QAS` | | D3 | Nêu phương án bị loại + lý do | N/A | Đã nêu ở `OPT §5`; `TCO` chỉ định lượng hai phương án còn lại | | D4 | Sơ đồ khai báo mức + legend | N/A | Không có sơ đồ mới ở `TCO` | | D5 | Interface có chủ/contract | N/A | Chưa tới `ICD` | | D6 | Phụ thuộc ngoài process có timeout/retry | N/A | Chưa tới `FAIL` | | D7 | Một chủ sở hữu dữ liệu | N/A | Chưa tới `DAT` | | D8 | Ràng buộc có FIT hoặc nhãn khuyến nghị | N/A | Chưa tới `AGD`/`FIT` | | D9 | Con số hạ tầng quy ra tiền + nguồn; `INF` khớp `TCO` | ✅ *(với cờ cần xác minh)* | Mọi dòng hạ tầng ở §3 có công thức + đơn giá + nguồn (`ASM-11`, region, ngày tham chiếu ghi rõ "cần xác minh"); `INF` (GĐ2) sẽ phải khớp con số này hoặc giải thích chênh lệch | | D10 | Không quyết định thay người có thẩm quyền | ✅ | Ngân sách vượt/không vượt để PO quyết (§1 "phát hiện quan trọng nhất"); mọi giả định đơn giá/FX/team đều gắn `OQ` kèm hệ quả, không tự quyết | | D11 | Có mục "Ngoài phạm vi" + `ASM-nn` | ✅ | §10 đầy đủ, `ASM-10…15` có cách xác minh/hệ quả | | D12 | Câu quy định thẩm quyền sơ đồ vs văn bản | ✅ | Có ngay sau Change Log | ### ③ Danh sách `OQ` mở kèm người phải trả lời, chặn gì `OQ-013…017` (mới, xem §4/§8) cộng các câu còn mở từ `CTX`/`OPT` (`OQ-001, 003, 004, 005, 006, 007, 008, 010, 012` — xem sổ đầy đủ `00-index/OQ_e-commerce.md`). Quan trọng nhất cho `TCO`: **`OQ-005`** (ngân sách — chặn việc coi con số `TCO` này là "đã duyệt hay chưa"), **`OQ-008`** (đội vận hành — dòng nhạy cảm nhất, xem §8), **`OQ-013`** (đơn giá AWS thật). **Nhắc:** AG1 cần **PO + Tech Lead ký** (điền `Approved by` vào header `OPT`) trước khi chạy `/sa-2-architecture`.