Unlimited Design & Technology

Độ tin cậy và vận hành

Định nghĩa health check phản ánh đúng khả năng phục vụ

Tiến trình có phản hồi vẫn có thể chưa phục vụ được yêu cầu hữu ích. Hãy tách quyết định khởi động, khả năng sống và sẵn sàng, rồi thử lỗi thành phần phụ thuộc cùng cách phục hồi trước khi dùng kiểm tra để điều hướng lưu lượng.

UDT Insights18/05/2023
Một đồng nghiệp kiểm tra nhịp dịch vụ nối với cửa sổ người dùng thực và đầu kết nối phụ thuộc. Một đồng nghiệp kiểm tra bằng kính lúp cầm tay.

Một điểm kiểm tra sức khỏe luôn trả thành công có thể khiến chức năng không dùng được trông vẫn ổn. Ngược lại, điểm kiểm tra thất bại mỗi khi bất kỳ thành phần phụ thuộc nào chậm cũng có thể gây vấn đề vận hành khác. Hãy bắt đầu từ điều mà phép kiểm tra điều khiển. Kiểm tra để khởi động lại tiến trình cần câu hỏi khác kiểm tra để quyết định có nhận yêu cầu khách hàng không.

Tách ba quyết định vận hành

Trong Kubernetes, Pod có container báo chưa sẵn sàng sẽ không nhận lưu lượng qua Kubernetes Services.[6] Vì vậy, readiness liên quan đến việc một phiên bản chạy có nên nhận lưu lượng đó không. Tài liệu cũng giải thích startup probe cho phép khởi tạo trước khi liveness probe tiếp quản.[6] Đừng gộp những quyết định khác nhau này thành một đèn xanh không có giải thích.

Với dịch vụ của mình, mô tả điều gì phải hoạt động trước khi một phiên bản chạy nhận được các yêu cầu thuộc phạm vi hỗ trợ. Sau đó xác định lỗi nào việc khởi động lại có thể xử lý hợp lý. Gắn mô tả với hành vi thật, không dùng danh sách chung chứa mọi thành phần đã kết nối.

Chủ động chọn thành phần cần kiểm tra

Nên chỉ kiểm tra thành phần phụ thuộc mà khi lỗi sẽ khiến phiên bản chạy không phục vụ được tải liên quan. Nếu nơi nhận phân tích tùy chọn hỏng, dịch vụ cốt lõi có thể vẫn làm nhiệm vụ chính. Nếu chức năng cấp quyền bắt buộc không hoạt động, quyết định nhận lưu lượng có thể khác.

Ghi chính sách thành phần phụ thuộc và chế độ hoạt động suy giảm dự kiến. Kiểm tra sâu mỗi lần có thể tốn tài nguyên, còn kiểm tra nông có thể bỏ sót lỗi thiết yếu. Thử mức cân bằng đã chọn trong điều kiện có kiểm soát và thống nhất ai được đổi ngưỡng hoặc thời gian.

Kết quả sẵn sàng mô tả phạm vi phép kiểm tra, không đại diện mọi hành trình khách hàng. Giữ kiểm chứng từ phía người dùng bên cạnh sức khỏe hạ tầng. Nếu khách hàng vẫn lỗi khi hệ thống báo xanh, xem phép kiểm tra hỏi sai hay lỗi nằm ngoài ranh giới của nó.

Kiểm tra phức tạp cũng khó duy trì. Ưu tiên quyết định nhỏ có giải thích thay vì điểm kiểm tra bao quát nhưng không ai tin. Chấp nhận thiết kế khi nhóm dự đoán được hành động điều khiển cho từng điều kiện đã thử và giải thích được điểm mù còn lại.

Ví dụ giả định: dịch vụ tìm kiếm khởi tạo

Trong ví dụ giả định này, một phiên bản tìm kiếm khởi động tiến trình trước khi chỉ mục sẵn sàng. Kiểm tra tiến trình cơ bản đạt, nhưng khách hàng chưa tìm kiếm được. Nhóm dành thời gian riêng cho khởi tạo và không đưa phiên bản vào phục vụ cho tới khi chỉ mục bắt buộc dùng được.

Nhóm thử riêng việc mất kết nối báo cáo tùy chọn. Lỗi đó không tự động khiến tìm kiếm bị coi là không sẵn sàng. Ví dụ minh họa lựa chọn chính sách, không đưa cấu hình dùng chung hoặc hứa rằng mọi tìm kiếm đều thành công.

Thử chuyển trạng thái, không chỉ kết quả đạt

Yêu cầu bằng chứng cho cách một phiên bản bắt đầu phục vụ, rời phục vụ và quay lại sau lỗi.

  • Nêu mỗi kiểm tra điều khiển khởi tạo, khởi động lại hay lưu lượng.
  • Liệt kê thành phần bắt buộc cho yêu cầu được hỗ trợ.
  • Thử khởi tạo chậm và lỗi phụ thuộc tạm thời.
  • Xác minh phục hồi đưa phiên bản về đúng trạng thái dự kiến.
  • Không đưa chi tiết chẩn đoán nhạy cảm vào phản hồi sức khỏe công khai.

Tài liệu tham khảo

Trao đổi về dự án của bạn

Cùng UDT xác định nhu cầu và bước triển khai tiếp theo.

Liên hệ UDT
Zalo