- Published on
[Google-SRE-bản dịch tiếng việt]-Simplicity trong SRE – Đơn giản là nền tảng của độ tin cậy
- 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
- Sự cân bằng giữa Tính ổn định và Tính linh hoạt
- Lập trình nhàm chán là một đức tính
- Đo lường độ phức tạp: Độ phức tạp thiết yếu và ngẫu nhiên
- Tối giản hóa API
- Tính mô-đun và hệ thống phân tán
- Sự đơn giản trong phát hành
- Kết luận
⚖️ Sự cân bằng giữa Tính ổn định và Tính linh hoạt
Phần mềm là hệ thống động và luôn thay đổi. Một hệ thống chỉ ổn định tuyệt đối khi nó không còn thay đổi. Tuy nhiên, chúng ta cần cân bằng giữa sự ổn định và sự linh hoạt (agility). SRE không làm mọi thứ trở nên bất biến, mà thiết kế quy trình để giúp thay đổi nhanh nhưng vẫn giữ hệ thống ổn định.
😴 Lập trình nhàm chán là một đức tính
Sự nhàm chán trong mã nguồn là tốt! Ta muốn chương trình dự đoán được, không bất ngờ, không ly kỳ. Giống như câu nói: “The lack of excitement in code is a feature, not a bug.”
🧩 Đo lường độ phức tạp: Thiết yếu vs. Ngẫu nhiên
- Độ phức tạp thiết yếu: không thể loại bỏ, gắn liền với bản chất bài toán.
- Độ phức tạp ngẫu nhiên: phát sinh từ công nghệ, ngôn ngữ, thư viện... Có thể giảm hoặc loại bỏ.
SRE nên:
- Loại bỏ sự phức tạp không cần thiết.
- Đơn giản hóa hệ thống khi tiếp nhận quản lý.
🛠️ Tối giản hóa API
API tốt = API đơn giản. Càng ít method, ít tham số → càng dễ hiểu, càng dễ bảo trì. Thiết kế API nên giống triết lý "ít nhưng chất".
🧱 Tính mô-đun và hệ thống phân tán
Hệ thống phân tán tốt cần có:
- Tách biệt rõ ràng giữa các phần
- Không phụ thuộc vòng
- Cập nhật độc lập
- API versioning để tránh ảnh hưởng toàn bộ hệ thống khi 1 phần thay đổi.
Giống như class trong OOP: mỗi binary, mỗi API nên có trách nhiệm riêng biệt và rõ ràng.
🚀 Sự đơn giản trong phát hành
- Thay vì phát hành 100 thay đổi cùng lúc, hãy phát hành từng cái một hoặc theo batch nhỏ.
- Cách này giống gradient descent trong machine learning: từng bước nhỏ, đánh giá từng thay đổi.
📌 Kết luận
Đơn giản là điều kiện tiên quyết của độ tin cậy. Nói “không” với tính năng không cần thiết không phải là hạn chế sáng tạo, mà là để tập trung vào cái quan trọng hơn.
Mỗi dòng mã là một trách nhiệm. Khi giảm bớt được, ta đang giảm nợ kỹ thuật, tăng độ tin cậy và dễ vận hành của hệ thống.