Phiên bản đa ngôn ngữ: Bài viết này có phiên bản tiếng Anh chuẩn quốc tế tại Alipay Double 11: Planetary-Scale Payment Architecture Summary (tanhdev.com).
📖 Bản tiếng Anh (English Edition)
Answer-first: Alipay scale thanh toán lên 544.000 TPS đỉnh (Double 11 2019) và 583.000 TPS (2020) bằng ba trụ cột: unit hóa Logical Data Center (LDC), cơ sở dữ liệu phân tán OceanBase (Paxos, RPO=0), và stress test toàn-link trên chính production — trong khi vẫn giữ 99.99% availability, độ trễ thanh toán dưới 20ms, failover dưới 2 giây.
Điều kiện tiên quyết: Nắm vững các khái niệm cơ bản về kiến trúc hệ thống phân tán, xử lý giao dịch thanh toán và nguyên lý nhất quán dữ liệu ACID.
Từ ¥50 triệu đến 544K TPS: bài học xây hệ thống quy mô hành tinh
TL;DR
Answer-first: Từ 2009 đến 2019, Alipay tăng công suất giao dịch ~5.440 lần — từ ~100 TPS lên 544.000 TPS đỉnh (2019), rồi 583.000 TPS (2020) — mà không đánh đổi an toàn tài chính: 99.99% availability và zero mất dữ liệu (RPO=0).
Giữa sự kiện đầu tiên năm 2009 và cột mốc đỉnh 2019, Alipay tăng công suất giao dịch lên khoảng 5.440 lần, đạt đỉnh 544.000 giao dịch/giây (TPS) — theo báo cáo của Ant Group. Ghi chú quan trọng về các con số TPS: 544K là đỉnh Double 11 2019, 583K là đỉnh Double 11 2020, và kỷ lục thế giới trước đó là 256K TPS (2017) — cùng một hệ thống, ba năm liên tiếp phá kỷ lục, mỗi con số phải gắn với năm của nó.
Về phía doanh nghiệp, chuỗi GMV (tổng giá trị giao dịch) của Alibaba Double 11: ¥0,05 tỷ (2009) → ¥19 tỷ (2012) → ¥91 tỷ (2015) → ¥170 tỷ (2017) → ¥268,4 tỷ (2019) → ¥540,3 tỷ (2021) — mười hai năm, bốn bậc độ lớn. Sự kiện này lớn gấp ~4 lần Black Friday và Cyber Monday của Mỹ cộng lại.
Để đạt hiệu năng đó ở quy mô hành tinh, Alipay đi tiên phong ở ba trụ cột:
- Thiết kế để tách (LDC Unitization): từ database đơn nguyên khối sang các unit thực thi tự chứa (cell).
- Biến tự tin thành điều đo được (Full-Link Stress Testing): từ ngoại suy thống kê sang chạy tải đỉnh tổng hợp trực tiếp trên môi trường production.
- Tự động hóa vận hành đầu-cuối: hạ tầng tự chữa, tự điều tiết — phân bổ capacity, kiểm soát rủi ro real-time, giảm cấp dịch vụ không cần con người can thiệp lúc 2 giờ sáng.
Câu chuyện: từ khủng hoảng đến kỷ lục
Answer-first: Mỗi kỷ nguyên của Double 11 được đặt tên theo nút thắt của nó: tinh chỉnh phản ứng (2009), tường vertical (2012), chuyển hướng phân tán (2013), unit hóa (2016), database tự phát triển OceanBase (2019), multi-region active-active (2020).
2009–2011: Kỷ nguyên cảm tính
Double 11 ra đời năm 2009 như chiến dịch khuyến mãi trên Taobao Mall (Tmall) — do CEO Alibaba Daniel Zhang khởi xướng, biến ngày “ộc” của sinh viên Nam Kinh (từ 1993) thành sự kiện mua sắm. Traffic năm đó chỉ ~100 TPS đỉnh. Engineering phản ứng kiểu vái: scale vertical database, tune connection pool, tối ưu code. Nhưng tăng trưởng năm-đối-năm trên 200% khiến giới hạn vertical lộ ra nhanh chóng.
2012: Điểm gãy (tường cứng)
Cluster Oracle tập trung chạm giới hạn vật lý: lock contention, connection pool cạn dưới burst “nhấn Thanh Toán” lúc nửa đêm. Data center Hàng Châu chạm tường điện và làm mát — không thêm được server vật lý nào. Các kỹ sư đối mặt câu hỏi sinh tử: database không scale được thì doanh nghiệp không tăng được.
2013–2015: Bước chuyển phân tán
Kỷ nguyên middleware + sharding: bắt đầu unit hóa ở tầng ứng dụng, sharding database (về sau hình thức hóa thành LDC), giải耦 bằng message queue — bước rẽ kiến trúc khỏi database dùng chung đơn.
2016–2017: Unit hóa chính thức
LDC vào production: RZone (unit giao dịch), GZone (zone toàn cục), CZone (zone thành phố) — kiến trúc cell biến scale ngang thành bài routing. Năm 2017: kỷ lục Alipay 256.000 TPS — năm cuối trước khi chuyển xong sang database phân tán.
2019: Thắng lợi quy mô hành tinh
Đỉnh 544.000 TPS chạy trên OceanBase — database phân tán Paxos tự phát triển thay thế hoàn toàn Oracle. Cùng năm, OceanBase lập kỷ lục TPC-C thế giới: 707 triệu tpmC (kết quả được TPC audit độc lập) — bằng chứng benchmark độc lập cho tuyên bố “distributed SQL chuẩn tài chính”.
2020: Multi-Region Active-Active
Đỉnh 583.000 TPS với topology active-active đa vùng địa lý — phân tán địa lý là trục scale tiếp theo sau unit hóa.
timeline
title Double 11: các kỷ nguyên và con số đỉnh
2009 : Khởi đầu ~100 TPS (Tmall, Daniel Zhang)
2012 : Tường vertical — Oracle lock, DC Hàng Châu đầy
2013-2015 : Chuyển hướng phân tán — sharding + MQ
2017 : Unit hóa LDC — kỷ lục 256K TPS
2019 : OceanBase thay Oracle — 544K TPS + TPC-C 707M tpmC
2020 : Multi-region active-active — 583K TPS
Ba trụ cột của kiến trúc scale Alipay
Answer-first: Ba trụ cột — LDC (tách cell), full-link stress test (thử đỉnh trên production), tự động hóa vận hành — hợp thành một hệ thống: tách mà không đo được tự tin thì sợ, đo được mà không tự động thì con người là nút thắt 2 giờ sáng.
Trụ cột 1: LDC Unitization (kiến trúc cell)
graph TB
subgraph Users ["Người dùng (shard theo user_id)"]
U1["Nhóm A"]
U2["Nhóm B"]
U3["Nhóm C"]
end
U1 --> RZ1["RZone 1<br/>(unit giao dịch tự chứa)"]
U2 --> RZ2["RZone 2"]
U3 --> RZ3["RZone 3"]
RZ1 --> GZ["GZone<br/>(dịch vụ toàn cục)"]
RZ2 --> GZ
RZ3 --> GZ
RZ1 -.-> CZ["CZone<br/>(đọc latency thấp)"]
RZ2 -.-> CZ
RZ3 -.-> CZ
style GZ fill:#e8f4f8,stroke:#2a7da0
LDC phân hệ thống thành các unit tự chứa, mỗi unit sở hữu một shard người dùng: giao dịch của một user sinh tử bên trong đúng một unit — phối hợp liên-unit thu hẹp về còn một bảng routing. Chi tiết đầy đủ ở Phase 2: Kiến Trúc Kỹ Thuật.
Trụ cột 2: Full-Link Stress Testing tự động
Thay vì ngoại suy thống kê từ test môi trường staging, Alipay chạy tải đỉnh tổng hợp trực tiếp trên production (shadow traffic cô lập) — tập dượt đo được của chính ngày thi đấu. Confidence trở thành số liệu, không phải niềm tin.
Ba đặc điểm làm bài stress test này khác biệt:
- Toàn-link, không phải từng service: tải synthetic chảy qua toàn bộ chuỗi — từ gateway đến database đến message queue — vì điểm gãy thật luôn nằm ở nơi không ai test (hàng đợi bị quên, cache miss chain, connection leak giữa hai service không liên quan).
- Shadow cô lập: dữ liệu synthetic đánh dấu và cô lập, không chạm sổ cái thật — rehearsal trên sân thật với bóng giả.
- Tải dựng từ dấu vết thật: profile tải lấy từ Double 11 năm trước (ghi chụp traffic), tái tạo biên độ burst nửa đêm chính xác đến từng giây.
Kết quả: sáng hôm sau Double 11 2019, team không “hy vọng hệ thống chịu được” — họ đã chứng minh nó chịu được 544K TPS ba tuần trước đó. Chi tiết ở Phase 3: Quy Trình Vận Hành.
Trụ cột 3: Database phân tán chuẩn tài chính (OceanBase)
OceanBase: sao chép Paxos phân tán (RPO=0 theo giao thức, không phải theo cấu hình), LSM-tree storage, và 61 triệu QPS đỉnh.
Hai chi tiết đáng nhớ cho kiến trúc sư:
- RPO=0 là thuộc tính giao thức: Paxos majority-write nghĩa là mọi commit đã được xác nhận bởi đa số bản sao trước khi trả lời client — mất một data center không mất giao dịch đã commit. Đây khác biệt căn bản với async replication truyền thống, nơi RPO=0 chỉ là lời hứa vận hành.
- TPC-C 707M tpmC là độc lập audit: không phải số tự chấm — TPC audit quá trình đo, và kỷ lục này là bằng chứng bên ngoài cho cả họ hàng “distributed SQL chuẩn tài chính”. Chi tiết LSM-tree, Paxos group và multi-region ở Phase 4B: Deep Dive.
Ba trụ cột hợp thành một hệ thống
Câu hỏi kiểm tra khi thuyết trình kiến trúc này: bỏ một trụ cột thì sao?
- Bỏ stress test: bạn có LDC nhưng không biết unit nào gãy trước — tự tin thành mê tín.
- Bỏ LDC: stress test đập vào một database đơn — đo được sự thất bại, không đo được lối thoát.
- Bỏ tự động hóa: hai trụ kia giữ, nhưng nửa đêm 11/11 mọi quyết định downgrade chờ con người đọc dashboard — nút thắt chuyển từ hệ thống sang on-call.
Ba trụ cộng sinh — đó là lý do series này cần 5 phase để kể hết.
Production failure: bài học từ đêm 2012 còn dạy gì 2026
Answer-first: Đêm gãy 2012 để lại ba bài học vĩnh cửu: tường vertical luôn đến trước dự báo; “thêm server” không phải chiến lược khi tường là điện và làm mát; và quyết định kiến trúc lớn nhất của Alipay (bỏ Oracle) sinh ra từ một đêm downtime — không phải từ một RFC.
Câu chuyện 2012 được kể nhiều nhất vì nó là đêm mà quyết định kiến trúc thập kỷ được đưa ra dưới áp lực: cluster Oracle chạm lock contention, connection cạn, và data center Hàng Châu không còn chỗ cho server vật lý — “literally impossible to add more”. Điểm đáng học không phải là khủng hoảng, mà là phản ứng: thay vì vá thêm hai năm nữa (sharding ứng dụng từng phần, cache chắp vá), team chọn con đường viết lại nền tảng — middleware riêng (SOFAStack), database riêng (OceanBase), message queue riêng (RocketMQ).
Bài học cho đội nhỏ: bạn sẽ không viết lại OceanBase, nhưng bạn sẽ gặp đêm 2012 của riêng mình — ngày database chậm không phải vì thiếu index mà vì toàn bộ mô hình truy cập dữ liệu sai. Nhận biết tường vertical sớm (đo lock time, đo connection wait, đo DC capacity) rẻ hơn viết lại mười lần.
Đọc thêm: Phase 4A — Middle Platform & CTU Risk Control cho bài tách platform, và Phase 5 — Tổng Hợp & Bài Học cho khung quyết định đầy đủ.
Số liệu hiệu năng và tăng trưởng chi tiết
Answer-first: Bảng số liệu chuẩn — mỗi con số gắn năm và loại nguồn: các đỉnh TPS là “Ant-reported” (hệ thống đóng, không thể benchmark độc lập), 707M tpmC là TPC-audit, GMV là báo chí trích dẫn Wikipedia-cited.
| Số liệu | Giá trị | Năm | Loại nguồn |
|---|---|---|---|
| Đỉnh giao dịch | ~100 TPS | 2009 | Ant-reported |
| Kỷ lục thanh toán | 256.000 TPS | 2017 | Báo chí (Wikipedia-cited) |
| Đỉnh giao dịch | 544.000 TPS | 2019 | Ant-reported |
| Đỉnh giao dịch | 583.000 TPS | 2020 | Ant-reported |
| OceanBase đỉnh truy vấn | 61 triệu QPS | 2019–20 era | Ant-reported |
| TPC-C benchmark | 707 triệu tpmC | 2019/2020 | TPC audit độc lập |
| RocketMQ đỉnh message | 10M+ TPS | Double 11 era | Ant-reported |
| GMV Alibaba | ¥268,4 tỷ (+26%) | 2019 | Reuters-cited |
| GMV Alibaba | ¥540,3 tỷ | 2021 | MarketWatch-cited |
| Gói hàng | 4 tỷ parcel | 2020 | Princeton UP (Liu 2024) |
So sánh stack: middleware Alipay vs cloud-native hiện đại
| Khó khăn truyền thống | Alipay | Tương đương cloud-native 2026 |
|---|---|---|
| Scale database đơn | LDC + OceanBase | Vitess / CockroachDB / TiDB |
| Đồng bộ giao dịch phân tán | TCC/SAGA + message | Dapr / Temporal saga |
| Decoupling burst | RocketMQ 10M+ TPS | Kafka / Pulsar |
| Service mesh tài chính | SOFAStack (AntStack) | Istio + Envoy |
| Unit routing | RZone/GZone/CZone | K8s multi-cluster + Cell-based (Unit) architecture |
Bảng này là lời cảnh báo trung thực: mỗi hàng bên Alipay là thập kỷ đầu tư engineering — đội nhỏ không bắt đầu bằng stack, họ bắt đầu bằng pattern (chi tiết ở Modern Tech Comparison).
Phân Tích Thực Chiến: Nút Thắt Oracle 2012, LDC Quorum & Cơ Chế Rollback Tài Chính
Answer-first: Khủng hoảng Double 11 năm 2012 chứng kiến cụm cơ sở dữ liệu Oracle RAC tập trung chạm ngưỡng giới hạn vật lý tại 2.000 TPS do tranh chấp I/O đĩa SAN và nghẽn khóa hàng tài khoản, buộc Alipay phải đột phá phát minh kiến trúc tế bào LDC RZone/GZone/CZone, phân tán OceanBase Multi-Paxos, kiểm thử bóng FLST và thông điệp giao dịch phân tán RocketMQ 2PC.
1. Bức tường vật lý Oracle 2012 và Giới hạn Scale Dọc
Trong đêm Double 11 2012, tổng giá trị GMV đạt ¥19,1 tỷ và lưu lượng checkout tăng vọt khiến hệ thống máy chủ IBM Power cùng mảng lưu trữ SAN cao cấp của Oracle rơi vào trạng thái bão hòa:
- Nghẽn mạng Cache Fusion giữa các Node RAC: Oracle RAC đồng bộ dữ liệu giữa các node qua liên kết Infiniband. Khi hàng nghìn client cùng ghi vào bảng sổ cái, lưu lượng đồng bộ bộ nhớ đệm (Global Cache Service - GCS) làm tràn bộ đệm switch, đẩy thời gian chờ các chốt
gc buffer busy acquirelên hàng trăm mili-giây. - Nghẽn ghi Log Redo (Log Writer Bottleneck): Tần suất commit cực lớn tạo hàng đợi khổng lồ tại tiến trình LGWR. Thời gian chờ
log file syncvọt từ 2ms lên hơn 400ms, khóa chặt các worker thread và khiến connection pool của ứng dụng cạn kiệt hoàn toàn. - Tranh chấp khóa dòng trên tài khoản Merchant nóng: Các thương hiệu lớn trên Tmall nhận hàng trăm nghìn thanh toán đồng thời. Việc hàng loạt luồng cùng cập nhật một dòng số dư thương nhân khiến khóa hàng (
SELECT ... FOR UPDATE) xếp hàng dài, triệt tiêu khả năng xử lý song song.
Bài học nhãn tiền năm 2012 khẳng định: mở rộng theo chiều dọc (scale-up) có giới hạn vật lý không thể vượt qua, thúc đẩy chiến dịch “De-Oracle” toàn diện để chuyển đổi sang kiến trúc scale-out hoàn toàn.
2. Kiến trúc LDC Quorum: RZone, GZone và CZone
Mô hình trung tâm dữ liệu logic LDC chia tách toàn bộ hạ tầng thành 3 loại vùng tế bào chuyên biệt:
- RZone (Region Zone): Vùng tự trị phân mảnh theo mã định danh người dùng
user_id(hash(user_id) % N). Hơn 95% nghiệp vụ thanh toán (trừ tiền người mua, tạo đơn hàng) được khép kín 100% trong nội bộ RZone mà không cần gọi mạng liên vùng hay khóa phân tán. - GZone (Global Zone): Lưu trữ các dữ liệu dùng chung ít thay đổi (thông tin đăng nhập, danh mục hàng hóa, tỷ giá hối đoái). Dữ liệu ghi tại trung tâm và đồng bộ bất đồng bộ sang bộ đệm đọc tại mọi datacenter.
- CZone (City Zone): Xử lý sổ cái tập trung và đối soát thương nhân. Để tránh nghẽn khóa hàng tài khoản nóng, CZone áp dụng kỹ thuật chia nhỏ tài khoản ảo thành $M$ tài khoản con (
merchant_id_sub_00đếnsub_99), giảm tải tranh chấp khóa xuống 100 lần.
OceanBase quản lý tầng lưu trữ theo mô hình Multi-Paxos trên 3 trung tâm dữ liệu tại 2 thành phố (3DC2C). Giao dịch được xác nhận ngay khi đa số quorum (2/3 node) ghi log thành công vào NVMe SSD, bảo đảm RPO=0 và thời gian phục hồi tự động RTO < 2 giây.
3. Kiểm thử tải thực chiến FLST trên Production
Alipay kiên quyết từ bỏ môi trường staging để triển khai Full-Link Stress Testing (FLST) trực tiếp trên production:
- Gắn cờ kiểm thử: Mọi yêu cầu giả lập được gắn header
X-Stress-Test: truevà dải UID thử nghiệm chuyên dụng. - Phân lập dữ liệu bóng: Middleware tự động định tuyến toàn bộ thao tác ghi vào bảng bóng (
t_order_shadow) và topic RocketMQ bóng, tuyệt đối không làm sai lệch báo cáo tài chính thực tế. - Giả lập cổng ngân hàng: Các cổng thanh toán bên ngoài được mock tại biên mạng với mô hình phân phối trễ thực tế, cho phép kiểm tra năng lực chịu tải tối đa của toàn bộ hạ tầng nội bộ.
4. Giao thức Rollback Giao dịch Phân tán RocketMQ
Để tách rời luồng thanh toán đồng bộ khỏi các tác vụ kế toán hạ nguồn, RocketMQ triển khai mô hình 2PC transactional message:
- Gửi Half-Message: Dịch vụ thanh toán gửi tin nhắn nửa chừng vào topic cách ly
RMQ_SYS_TRANS_HALF_TOPIC, người tiêu dùng chưa thể nhìn thấy. - Thực thi giao dịch cục bộ: Dịch vụ thanh toán cập nhật số dư trên OceanBase cục bộ.
- Commit hoặc Rollback: Nếu giao dịch thành công, gửi lệnh Commit để đẩy tin nhắn vào hàng đợi tiêu thụ. Nếu thất bại, gửi lệnh Rollback để hủy tin nhắn lập tức.
- Cơ chế gọi lại kiểm tra trạng thái (Status Callback): Nếu mạng chập chờn khiến broker không nhận được ACK, sau 15 giây broker sẽ chủ động thăm dò dịch vụ thanh toán để đối soát trạng thái giao dịch trong DB cục bộ, loại bỏ hoàn toàn tình trạng giao dịch mồ côi.
Bài học áp dụng cho kiến trúc sư hiện đại
- Tách trước khi cần tách: unit hóa theo user_id trước khi database gãy — chờ đến điểm gãy 2012 là phải trả giá bằng viết lại toàn bộ.
- Stress test trên production, không phải staging: staging nói dối về cấu hình, dữ liệu và neighbor-traffic; shadow traffic trên production nói sự thật.
- Tự động hóa trước giờ cao điểm: mọi thứ phải tự chạy trước khi cần — capacity, degradation, failover; intervention thủ công lúc 2h sáng là thất bại thiết kế.
- Pattern, không phải stack: unit routing, rehearsal đo được, envelope RPO/RTO — áp dụng được trên commodity infrastructure của bất kỳ đội nào.
- Con số phải gắn năm và nguồn: 544K (2019), 583K (2020), 256K (2017) — ba kỷ lục, ba năm; không bao giờ trích TPS không năm.
❓ Câu Hỏi Thường Gặp (FAQ)
Vì sao Double 11 là bài test kiến trúc khắc nghiệt nhất thế giới?
544K hay 583K TPS — con số nào mới đúng?
Team nhỏ học được gì từ một kiệt tác mười tỷ đô như thế này?
🗺️ Đường đọc series
| Bạn là ai | Đọc theo thứ tự |
|---|---|
| Kiến trúc sư muốn khung tổng thể | Chương này → Phase 2 (LDC) → Phase 5 (Bài học) |
| SRE / Ops | Phase 3 (Stress test + vận hành) → Phase 4A (Capacity + risk control) |
| DBA / data engineer | Phase 4B (OceanBase, SOFAStack, RocketMQ) → Modern Tech Comparison |
| Mới đến với series | Lộ trình học tập → chương này → theo số phase |
📚 Nguồn nghiên cứu (verification anchors)
| Claim | Nguồn |
|---|---|
| Nguồn gốc 1993 Nam Kinh; Daniel Zhang 2009; chuỗi GMV 2009–2021; 256K TPS 2017 | Wikipedia: Singles’ Day (trích dẫn Reuters, Bloomberg, CNBC, MarketWatch) |
| 544K TPS (2019), 583K TPS (2020), 61M QPS, 10M+ RocketMQ | Ant Group public reporting (qua corpus series — hệ thống đóng, trích “Ant-reported”) |
| TPC-C 707 triệu tpmC | Kết quả TPC audit công khai |
| Kiến trúc LDC/RZone/GZone/CZone, envelope RPO=0/RTO<2s/99.99% | Corpus series (Phase 2–5) |
Bản nghiên cứu đầy đủ 100 rounds: reports/research-alipay-executive-summary-100-rounds.{md,json} (dossier nội bộ series, mirror cả 2 repo). Ghi chú grounding: 30% external / 62% series-corpus (corpus chính là chủ thể) / 8% [VERIFICATION-NOTE]. Ghi chú hiệu chỉnh: desc tiếng Anh cũ trích “583k peak TPS” không năm — chương này gắn năm cho mọi con số (Gate 7). Ghi chú phiên bản: các số Ant-reported là báo cáo công khai của hệ thống đóng — không thể benchmark độc lập; TPC-C 707M tpmC là kết quả duy nhất được audit bên ngoài trong bảng trên.
