Tối ưu hóa hệ thống: Cách Cloudflare tăng gấp 10 lần năng lực quét bảo mật toàn cầu
Tìm hiểu cách Cloudflare vượt qua các giới hạn về hạ tầng để tăng gấp 10 lần năng lực quét bảo mật, giúp phát hiện sớm các rủi ro và lỗ hổng cho hàng triệu khách...
Security Insights là tính năng cung cấp các khuyến nghị bảo mật thiết thực cho mọi tài khoản Cloudflare. Để làm được điều này, hệ thống thực hiện quét định kỳ trên tất cả các tài khoản, zone và bản ghi DNS nhằm phát hiện sớm các rủi ro tiềm ẩn hoặc cấu hình sai. Tuy nhiên, khi nhu cầu bảo mật tăng cao, hệ thống cũ đã bộc lộ những hạn chế về tần suất quét và khả năng mở rộng.
Table Of Content
Thách thức về quy mô
Trước đây, việc quét chỉ diễn ra mỗi tuần hoặc hai tuần một lần, khiến các rủi ro mới phát sinh có thể tồn tại lâu mà không bị phát hiện. Mục tiêu của Cloudflare là tăng năng lực quét từ 10 lên 100 lượt mỗi giây (tăng 10x). Tuy nhiên, hệ thống hiện tại đã quá tải: hàng triệu sự kiện tồn đọng, API thường xuyên bị timeout và các tiến trình liên tục gặp lỗi.
Giải pháp kỹ thuật
Thay vì chỉ đơn thuần tăng thêm tài nguyên, đội ngũ kỹ sư đã thực hiện các cải tiến sâu về kiến trúc:
- Tối ưu hóa Kafka: Thay vì tăng số lượng partition gây tốn kém tài nguyên, hệ thống chuyển sang xử lý song song bằng cách sử dụng các goroutine để xử lý các batch tin nhắn.
- Xử lý phân làn (Lane splitting): Để tránh tình trạng head-of-line blocking (các tác vụ quét lớn làm nghẽn hàng đợi), hệ thống được chia thành hai luồng: “làn nhanh” và “làn chậm”. Các tác vụ quét nặng sẽ được tách riêng để không ảnh hưởng đến hiệu suất chung.
- Tối ưu truy vấn cơ sở dữ liệu: Thay đổi cách thức chèn dữ liệu vào Postgres bằng cách kết hợp giữa
UNNESTcho các tập dữ liệu nhỏ vàCOPYcho các tập dữ liệu lớn, giúp giảm đáng kể thời gian thực thi. - Khắc phục độ trễ API: Phát hiện ra rằng độ trễ mạng giữa các vùng địa lý (Portland và Amsterdam) gây ra tình trạng cạn kiệt kết nối. Việc chuyển API sang mô hình active-passive đồng bộ với cơ sở dữ liệu chính đã giải quyết triệt để vấn đề timeout.
- Cải tiến bộ lập lịch (Scheduler): Thay vì quét theo lịch cố định gây ra các đợt tải đột biến, hệ thống mới sử dụng cơ chế lập lịch độc lập cho từng zone, ngẫu nhiên hóa thời gian quét và áp dụng adaptive rate limiting để phân bổ tải đều đặn.
Kết quả đạt được
Nhờ những cải tiến này, hệ thống Security Insights hiện duy trì ổn định hơn 120 lượt quét mỗi giây vào thời điểm cao điểm. Điều này cho phép Cloudflare kích hoạt tính năng quét tự động cho tất cả các tài khoản miễn phí, đồng thời tăng tần suất quét cho các gói Pro, Business và Enterprise. Quan trọng hơn, độ ổn định của hệ thống đã mở đường cho các tính năng mới như quét theo yêu cầu (on-demand scan) một cách chi tiết và linh hoạt hơn.
Bài học rút ra là việc thấu hiểu sâu sắc hệ thống hiện tại thông qua các chỉ số (metrics) và nhật ký (logs) quan trọng hơn nhiều so với việc chỉ tăng thêm tài nguyên phần cứng. Đây là minh chứng cho triết lý kỹ thuật của Cloudflare: giải quyết vấn đề bằng tư duy tối ưu thay vì chỉ dựa vào sức mạnh hạ tầng.
Nguồn tham khảo: Cloudflare Blog



No Comment! Be the first one.