Đối với những sysadmin đã làm đủ lâu lâu, đã va chạm đủ nhiều chắc chắn sẽ tới lúc đặt ra câu hỏi làm sao để “Obervability” (tiếng việt tạm gọi là “Thấu hiểu”) hệ thống?

Từ “Obervabilty” ở đây với nghĩa là làm sao biết khi nào hệ thống “gần” hoặc “đang có” những điểm bất thường để xử lý kịp thời tránh gián đoạn dịch vụ. Thông tin có được cần phải cụ thể ở phần nào/điểm nào trong hệ thống để đảm bảo việc xử lý được nhanh nhất có thể. Tránh trường hợp xảy ra sự cố mới đi check choác từng điểm mất thời gian, chưa kể lúc đó còn phải chiụ trăm thứ áp lực “sếp hỏi tại sao”, đồng nghiệp hỏi “bao giờ hệ thống lên?” - rất khó để bình tĩnh giữ cho cái đầu sáng suốt, xử lý nhanh được. Cuối tuần rồi, trong buổi giao lưu với VTNet thấy một key word khá hay “THREE PILLARS OF OBSERVABILITY” ngẫm cũng đúng, nhân tiện chia sẻ với mọi người.

Pillar

“THREE PILLARS OF OBSERVABILITY” được mô tả gồm 3 nội dung:

  • Logs: Log sẽ giúp chúng ta có các thông tin lỗi xử lý từ bên trong logic của app.
  • Metrics: Metrics là dữ liệu thực tế của app khi chạy trên môi trường. Dữ liệu này giúp đánh giá app chạy bình thường hay bất thường.
  • Traces: Hai cái trên là cái mà ai cũng biết và hay mò khi fixbug/tối ưu app, nhưng trace lại thứ mà trước nay mà ta hay bỏ quên nhưng luôn có cảm nhận/cái nhìn mơ hồ về nó. Trace giúp ta flow từng step trong chu trình xử lý của app. Xem chết/chậm chính xác ở đoạn nào. Từ đó có hướng xử lý hay tối ưu app.

Như vậy, nói ngắn gọn để đảm bảo thực sự “Obervabilty” hệ thống ta cần tính đến build tối thiểu 3 hệ thống này. Collect càng đầy đủ thông tin càng tốt.

“THREE PILLARS” này cũng làm tôi nhớ lại một “THREE PILLARS” khác trong lĩnh vực security mà chắc hẳn ai thời sv mà học môn “Network security” cũng khá quen, các thầy nhai đi nhai lại. Đó là tam giác CIA.

CIA

Mà thôi tôi lại luyên thuyên rồi. Hôm nay chỉ muốn chia sẻ key word đó cho các anh em thôi.