Từ website nhỏ đến hệ thống phức tạp
Website demo cho khách hàng, traffic vài trăm lượt/ngày → chạy trên shared hosting hoặc một VPS rẻ tiền, mọi thứ êm. Nhưng khi website có fanpage triệu follow, traffic hàng triệu view/tuần, thì những vấn đề mới xuất hiện:
- Database bottleneck: query chậm, N+1, lock bảng → hệ quả là nghẽn toàn hệ thống.
- Caching: từ page cache, object cache, cho đến CDN edge cache.
- Scaling: một server không gánh nổi, cần load balancer, nhiều web server, database replication.
- Reliability: server chết lúc 2h sáng, dữ liệu hỏng, downtime kéo theo mất khách.
Tất cả những thứ đó đều là bài toán của một hệ thống phân tán, không còn là “chỉ làm web” nữa.
Bạn đã chạm vào distributed system mà không biết
- CDN (Cloudflare, Bunny, Fastly): nội dung của bạn đang phân tán ra hàng trăm PoP toàn cầu.
- Database replication: MySQL master-slave hay Galera cluster đều là distributed system.
- Cache layer: Redis/Memcached phân tán, chịu tải hàng chục nghìn request/giây.
- Object storage: S3 và các clone của nó là distributed storage full-stack.
Khi bạn bật Cloudflare, cài Redis, hoặc đẩy ảnh lên S3, bạn đã dùng công nghệ hệ thống phân tán. Chỉ khác là bạn chưa nhận ra mình đang quản lý nó.
Sự khác biệt trong tư duy
Làm web ở mức nhỏ → chỉ cần code chạy được, miễn user thấy giao diện.
Làm web ở mức lớn → phải nghĩ như một kỹ sư hệ thống phân tán:
- Đảm bảo tính nhất quán dữ liệu giữa nhiều node.
- Thiết kế cơ chế cache thông minh để giảm tải DB.
- Xử lý failover khi một server hoặc dịch vụ chết.
- Tính toán TCO (Total Cost of Ownership) để không đốt tiền vô ích.
Ví dụ thực tế: một website WordPress triệu view
Một WordPress blog nhỏ → LEMP stack trên 1 VPS là đủ. Nhưng một website WordPress triệu view/tuần cần:
- CDN edge cache để giảm 80–90% traffic vào origin.
- Redis/Memcached để cache query và session.
- Database replica để phân tải đọc/ghi.
- Object storage cho media thay vì local disk.
- Monitoring (Prometheus, Grafana, ELK) để không bị “mù” khi có sự cố.
Nhìn lại, đó không còn là “làm web” nữa mà là một kiến trúc hệ thống phân tán thực thụ.
Kết luận
Bạn nghĩ mình chỉ đang làm web? Thực tế, ngay khi website của bạn đạt đến một ngưỡng người dùng, bạn đã bước chân vào thế giới distributed systems. Và đó là lúc bạn cần tư duy khác: không chỉ code chạy, mà còn phải đảm bảo hệ thống sống, scale, và tối ưu chi phí. Nếu không, website thành công cũng sẽ tự giết chính nó.
Bình luận