Một số kinh nghiệm quản lý và tối ưu chi phí hạ tầng ở quy mô lớn
TIKI sở hữu một hệ thống cực kỳ lớn với hơn 3.000 services, 600 databases và 2.000 TB dữ liệu. Trong những năm qua, chúng tôi liên tục tối ưu hạ tầng, giúp tiết kiệm hàng triệu đô chi phí vận hành. Dưới đây là một số kinh nghiệm thực tế trong việc quản lý và tối ưu chi phí hệ thống.
Thống nhất định hướng ở cấp độ công ty.
Tối ưu hạ tầng là một công việc khó và phức tạp, liên quan đến hàng ngàn hệ thống và hàng chục team khác nhau. Vì vậy, quá trình này cần có sự chỉ đạo và định hướng từ cấp cao nhất của công ty. Nếu không, các team phát triển và vận hành sẽ không thể phối hợp hiệu quả.
Thông thường, các team phát triển phải dành phần lớn thời gian để xây dựng tính năng mới, nên khó có thể chủ động tối ưu tài nguyên đang sử dụng. Do đó, cần có sự phát động từ lãnh đạo công ty để các team tạm dừng phát triển sản phẩm mới và tập trung toàn lực vào tối ưu chi phí.
Tại TIKI, chúng tôi thường triển khai các chiến dịch kéo dài 3 tháng. Tính đến nay, đã có 3 chiến dịch lớn được thực hiện. Khi chiến dịch được phát động, tất cả các team thống nhất mục tiêu, ưu tiên hàng đầu cho việc tối ưu, chỉ xử lý các vấn đề khẩn cấp hoặc sự cố nghiêm trọng. Chúng tôi tổ chức review công việc hàng tuần và báo cáo tổng kết hàng tháng lên cấp lãnh đạo. Cách làm này mang lại hiệu quả rõ rệt, các team được khích lệ và có đủ nguồn lực để tập trung cho mục tiêu chung.
Phải biết là có bao nhiêu systems đang chạy.
Nghe có vẻ kỳ lạ, nhưng việc "không biết chính xác mình đang vận hành bao nhiêu hệ thống" là hoàn toàn có thể xảy ra, đặc biệt khi hệ thống đã được phát triển trong nhiều năm, trải qua nhiều đợt tái cấu trúc, và có sự tham gia của hàng trăm, thậm chí hàng ngàn kỹ sư.
Tại TIKI, chúng tôi có hệ thống Kratos – một công cụ quản trị nội bộ cho phép theo dõi chính xác số lượng cụm service đang chạy, tình trạng hoạt động, tài nguyên sử dụng, liên kết mã nguồn và người phụ trách. Kratos được tích hợp chặt chẽ với quy trình CI/CD: mỗi khi một team triển khai service mới, bắt buộc phải khai báo trong hệ thống này. Nhờ đó, chúng tôi luôn nắm rõ hệ sinh thái đang vận hành.
vd một cụm phục vụ Search và Ads
Monitor tài nguyên chi tiết tới từng service, workload.
Phải nắm rõ từng cụm service có bao nhiêu pod, workload đang dùng bao nhiêu RAM, CPU (min, max, mean), mức độ sử dụng thực tế, mức yêu cầu (request), mức cấp phát (allocated). Cần theo dõi xu hướng sử dụng theo thời gian: 2 ngày, 7 ngày, 30 ngày…
Tại TIKI, đội hạ tầng đã xây dựng hệ thống giám sát rất chi tiết và tin cậy, với dữ liệu được hiển thị qua Grafana, giúp các team dễ dàng theo dõi và đưa ra quyết định.
Học Business, quản lý kế hoạch tối ưu bằng Google Sheet/Excel File.
Kỹ sư thường quen làm việc với sơ đồ, tài liệu kỹ thuật, nhưng lại ít quen với các bảng số liệu. Tuy nhiên, không thể tối ưu chi phí nếu không “nhìn số”.
Khi bắt đầu chiến dịch tối ưu diện rộng cách đây 3 năm, tôi đã tham khảo các mẫu báo cáo Weekly Business Review để xây dựng hệ thống theo dõi số liệu week-over-week. Phương pháp này rất hiệu quả, giúp các team thấy được tiến độ từng tuần, khu vực nào cần tập trung, đồng thời tạo động lực cải tiến liên tục. Dữ liệu còn được lưu trữ từ năm trước, hỗ trợ so sánh theo năm và đánh giá hiệu quả dài hạn.
vd một spreedsheet của một team
Đánh giá kĩ lưỡng lượng tài nguyên actual, request và allocate.
Có ba chỉ số quan trọng cần được review thường xuyên:
Actual: Lượng CPU/RAM sử dụng thực tế
Request: Lượng tài nguyên được yêu cầu
Allocated: Lượng tài nguyên được cấp phát
Thông thường: Actual < Request < Allocated
Allocated là yếu tố ảnh hưởng trực tiếp đến chi phí. Nếu allocate quá thấp, hệ thống sẽ không ổn định. Nếu quá cao, sẽ lãng phí. Các team cần đánh giá kỹ mức sử dụng min, max và mean trong 7–30 ngày gần nhất để cấu hình mức request phù hợp.
Quy trình tối ưu gồm 3 bước:
Rà soát từng service để xác định mức tài nguyên phù hợp
Đội hạ tầng điều chỉnh cấu hình VM cho hiệu quả chi phí tốt nhất
Theo dõi độ ổn định sau khi thay đổi, và tinh chỉnh tiếp nếu cần: giảm tiếp hoặc tăng thêm.
Chọn lựa các loại tài nguyên phù hợp với nhu cầu.
Theo dõi kỹ mức sử dụng RAM, CPU, IOPS để lựa chọn loại server phù hợp cho từng service và database. Các nền tảng như Google Cloud, AWS cung cấp rất nhiều loại tài nguyên khác nhau – cần đánh giá chi tiết để chọn đúng cấu hình.
Có chiến dịch tại TIKI đã giúp tiết kiệm hàng tỷ đồng chi phí cloud mỗi tháng chỉ nhờ việc chọn loại ổ đĩa phù hợp hơn cho từng database, thay vì dùng loại cao cấp vượt quá nhu cầu.