- Published on
[Google-SRE-bản dịch tiếng việt]-Môi trường Production tại Google dưới góc nhìn của SRE
- Authors
- Name
- Bạch Đăng Tuấn
- Occupation
- Kỹ sư công nghệ thông tin
- Zalo: 0934.01.07.04
📑 Mục Lục
- Tổng quan kiến trúc hạ tầng
- Hệ điều hành cụm - Borg
- Lưu trữ dữ liệu - Colossus, Bigtable, Spanner
- Mạng và phân phối lưu lượng - GSLB, B4
- Giám sát và phát hiện lỗi
- Ví dụ thực tế - Dự án Shakespeare
🧱 Tổng quan kiến trúc hạ tầng
Google thiết kế datacenter riêng với phần cứng đồng nhất (server, nguồn, mạng, tủ rack...). Từ cấp độ máy chủ → rack → cluster → campus. Mỗi thành phần đều do Google thiết kế nhằm tối ưu hiệu suất, tính dự phòng và chi phí.
🧠 Borg - Hệ điều hành cụm phân tán
Borg là hệ điều hành cụm (cluster OS) giúp phân phối workload (job/task) vào các node trong cụm. Nó giống như Kubernetes nhưng có từ trước đó. Mỗi job có thể có hàng trăm task được chạy trên nhiều máy khác nhau, quản lý bởi BNS (Borg Naming Service) thay vì IP tĩnh.
Borg:
- Tự động restart task lỗi
- Binpack task theo tài nguyên
- Tránh SPOF bằng cách phân tán trên nhiều rack
💾 Hệ thống lưu trữ phân tán
Google dùng hệ thống lưu trữ tầng lớp:
- D layer: fileserver cục bộ ở mỗi máy
- Colossus: kế thừa GFS, tạo filesystem phân tán
- Bigtable: cơ sở dữ liệu NoSQL mạnh mẽ, hỗ trợ PB data
- Spanner: database phân tán toàn cầu, có tính nhất quán mạnh (strong consistency)
🌐 Hệ thống mạng và phân phối
- Jupiter fabric: mạng trong datacenter với 1.3Pbps
- B4: mạng WAN giữa các DC toàn cầu, SDN dùng OpenFlow
- GSLB: load balancer thông minh 3 lớp (DNS → Service → RPC)
- BwE: bộ giới hạn băng thông (Bandwidth Enforcer) phân chia tài nguyên mạng hợp lý
🔍 Monitoring & Alerting
- Dùng Borgmon để scrape metrics
- Các loại output:
- Alert: cần xử lý ngay
- Ticket: xử lý sau
- Log: phục vụ điều tra
- Dữ liệu được dùng để kiểm tra hiệu năng, phát hiện lỗi và dự báo dung lượng
📚 Ví dụ thực tế - Dự án Shakespeare
Dự án gồm 2 phần:
- Batch job phân tích văn bản, đưa từ khóa vào Bigtable
- Frontend phục vụ user request tìm kiếm
Luồng xử lý:
- DNS → GSLB chọn frontend → RPC đến backend → truy vấn Bigtable → trả kết quả
- Dùng protobuf và Stubby/gRPC để truyền dữ liệu hiệu quả
Backend được phân bố toàn cầu và nhân bản Bigtable theo vùng để giảm độ trễ.
Tài liệu này là phần tóm tắt dễ hiểu cho kỹ sư SRE hoặc kiến trúc sư hệ thống muốn học hỏi cách Google vận hành hạ tầng production khổng lồ theo chuẩn SRE.