Go pprof trong Kubernetes: Remote Profiling & Flame Graphs

Bạn đã gắn các bộ thu thập đo lường cho service Go của mình với net/http/pprof, chạy thử lệnh go tool pprof cục bộ (local) kiểm tra file binary lúc dev, và đã nhìn rõ mồn một các “hot path” (đường nghẽn cổ chai tốn thời gian nhất) trên biểu đồ ngọn lửa (flame graph). Thế rồi bạn triển khai lên Kubernetes và các điểm nghẽn ấy biến mất hoàn toàn — bởi vì hồ sơ tải (workload profile) trong Kubernetes khác xa với việc test cục bộ (mix request khác nhau, áp lực pool kết nối khác nhau, hành vi GC cũng khác dưới mức chịu tải thực tế, và cả sự can thiệp từ bộ lập lịch (scheduler) của các pod nằm chung node). ...

June 1, 2026 · 23 min · Tuan Anh

Kiến Trúc PayPay: Bung Rộng Hệ Thống Thanh Toán Lên 70 Triệu Users

PayPay vừa bấm nút chạy hồi tháng 10 năm 2018 thì đã hốt trọn 10 triệu người dùng chỉ trong vỏn vẹn 3 tháng — cái đà phi mã mà chả có mống fintech Nhật Bản nào từng ngó thấy. Tới tận năm 2025, cái nền tảng này đã cán mốc 70 triệu user đăng ký và cày 7.8 tỷ lượt thanh toán mỗi năm. Chống lưng cho cú vọt mọc đó là 1 đội ngũ kỹ sư ứ những phải còng lưng bung rộng cái dàn hạ tầng của họ, mà còn phải xới tung cả cái văn hóa làm kỹ thuật: từ vụ ốp chuẩn dịch vụ (service standardization) và đẩy code kiểu GitOps (GitOps-driven deployments) cho tới trò chọc phá hệ thống (chaos engineering) và nhúng AI vô để túm bọn lừa đảo (fraud detection). ...

June 1, 2026 · 21 min · Tuan Anh

Tự Tổ Chức Triển Khai GraphHopper trên Kubernetes với Dữ liệu OSM

GraphHopper có lẽ là cỗ máy định tuyến (routing engine) mã nguồn mở xịn xò bậc nhất lúc này — nó nhồi đầy đủ mảng Rút Ngọn Thứ Bậc (Contraction Hierarchies - CH) cho những câu truy vấn đáp trả mượt dưới cả độ tính mili giây, nặn hồ sơ bóp nắn khuôn xe (custom vehicle profiles), khắt khe rẽ cấm góc (turn restrictions), lại kẹp nguyên bộ sậu cấu trúc hạ tầng đường sá OpenStreetMap dầy cộm. Cục sạn mà hầu hết đội nhóm cắn phải chẳng phải mảng thuật toán; nó nằm rúc ở khúc thao tác khó khăn (operational challenge) vận nó bò lết lên nổi Kubernetes: nuốt chửng một file to đùng OSM PBF vào, đẽo gọt cắt cân khối size dung lượng của JVM, xoay xở gánh qua kỳ sơ chế nhào nặn ngốn cả đóng thì giờ của mảng CH (CH pre-processing), lẫn chiêu đổi nạp dữ liệu map khỏi phải lịm tắt cúp đèn hệ thống (without downtime). ...

June 1, 2026 · 19 min · Tuan Anh

Alipay Double 11: Modern Tech Comparison

So Sánh Alipay Stack với Công Nghệ Hiện Đại Tổng Quan So Sánh Alipay Stack Modern Equivalent Key Difference LDC + RZone Kubernetes + Multi-cluster LDC: Business-driven sharding; K8s: Infrastructure abstraction OceanBase CockroachDB/TiDB/YugabyteDB OceanBase: 10+ years prod, custom FPGA; Newer: Cloud-native first RocketMQ Apache Kafka/Apache Pulsar RocketMQ: LSM-tree + rich msg types; Kafka: Log-centric; Pulsar: Tiered storage SOFARPC gRPC/Envoy Proxy SOFARPC: Java-centric, financial features; gRPC: Cross-platform, protobuf SOFAMesh (MOSN) Istio/Linkerd MOSN: Go-based, X-protocol; Istio: Envoy C++, standard mesh CTU Modern ML Platforms CTU: Custom fraud-specific; Modern: General-purpose MLOps PouchContainer containerd/cri-o Pouch: Alibaba-specific; containerd: CNCF standard 1. LDC Architecture vs Kubernetes Multi-Cluster Kiến Trúc So Sánh ┌─────────────────────────────────────────────────────────────────────────────┐ │ LDC (Alipay) vs Kubernetes Multi-Cluster │ ├─────────────────────────────────────────────────────────────────────────────┤ │ │ │ LDC Architecture (Business-Driven) │ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ │ │ RZone 1 RZone 2 RZone N │ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ │ │Users │ │Users │ │Users │ │ │ │ │ │1-1M │ │1M-2M │ │N-M │ │ │ │ │ ├─────────┤ ├─────────┤ ├─────────┤ │ │ │ │ │Apps │ │Apps │ │Apps │ │ │ │ │ │DB │ │DB │ │DB │ │ │ │ │ │Cache │ │Cache │ │Cache │ │ │ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ │ │ │ │ │ │ • Sharding: User ID-based │ │ │ │ • Self-contained units │ │ │ │ • Cross-unit = Distributed txn │ │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────────┘ │ │ │ │ Kubernetes Multi-Cluster (Infrastructure-Driven) │ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ │ │ Cluster 1 Cluster 2 Cluster N │ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ │ │Region: │ │Region: │ │Region: │ │ │ │ │ │us-west │ │eu-west │ │ap-south │ │ │ │ │ ├─────────┤ ├─────────┤ ├─────────┤ │ │ │ │ │K8s Pods │ │K8s Pods │ │K8s Pods │ │ │ │ │ │Services │ │Services │ │Services │ │ │ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ │ │ │ │ │ │ • Sharding: Infrastructure/region-based │ │ │ │ • Shared global services │ │ │ │ • Cross-cluster = Service mesh │ │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────┘ Detailed Comparison Aspect LDC (Alipay) K8s Multi-Cluster Recommendation Sharding Strategy User ID / Business key Node/Region labels LDC approach cho data-intensive apps Unit Boundary App + Data + Cache Pods + Services LDC: true isolation; K8s: shared storage Cross-Unit Traffic Explicit ( costly ) Transparent via mesh LDC: intentional design; K8s: hide complexity Failover Manual/Scripted (RZone switch) Automatic (health checks) K8s wins cho automation Scaling Add RZone (complex) Add nodes (simple) K8s wins cho ops simplicity Data Consistency Strong (Paxos in unit) Eventual (cross-cluster) LDC wins cho financial data Khi Nào Dùng Cái Nào? Use LDC-style khi: ...

May 2, 2026 · 14 min · Tuan Anh

Bản vẽ Hệ thống Thương mại điện tử 21-Service

Khi chuyển đổi từ một nền tảng nguyên khối (monolith) sang một hệ thống microservice phân tán, câu hỏi khó nhất không phải là “Chúng ta viết code như thế nào?” — mà là “Làm sao để các mảnh ghép di động này nói chuyện với nhau một cách an toàn, và tại sao mỗi ranh giới lại được vẽ chính xác ở vị trí đó?” Bài viết này là mỏ neo kiến trúc cho toàn bộ series về composable commerce. Nó trình bày bản vẽ hệ thống tổng thể và giải thích lý do đằng sau mỗi ranh giới domain. Để tìm hiểu sâu về từng tầng cụ thể, mỗi phần đều có link dẫn đến bài viết chuyên đề trong series. ...

April 12, 2026 · 9 min · Tuan Anh

Điều phối 21 Microservices với Kubernetes & ArgoCD

Viết ra được 21 microservices bằng Go với kiến trúc chuẩn mực mới chỉ là một nửa cuộc chiến. Nếu quy trình deploy (triển khai) của bạn vẫn phụ thuộc vào một kỹ sư gõ lệnh kubectl apply từ laptop cá nhân của anh ta vào một chiều thứ Sáu, bạn chưa hề xây dựng một nền tảng enterprise — bạn vừa chế tạo ra một quả bom nổ chậm. ...

April 12, 2026 · 9 min · Tuan Anh