Ý chính: Không nên bắt mọi yêu cầu của khách hàng đi qua hệ thống quản trị trung tâm.
Thuật ngữ trong bài: Control plane: phần quản trị cấu hình và vòng đời khách hàng; data plane: phần trực tiếp phục vụ yêu cầu; reconciliation: liên tục so sánh trạng thái mong muốn với trạng thái thực tế.
Bài toán thực tế
Thông tin gói dịch vụ, hạn mức và vùng dữ liệu thay đổi không thường xuyên. Trong khi đó, yêu cầu của người dùng cần phản hồi nhanh và ổn định. Nếu hai phần gắn chặt, một sự cố quản trị có thể làm gián đoạn toàn bộ sản phẩm.
Điểm dễ bị bỏ qua
Thông tin gói dịch vụ, hạn mức và vị trí dữ liệu thay đổi chậm; yêu cầu của người dùng lại cần phản hồi nhanh và ổn định. Nếu mỗi yêu cầu đều gọi hệ thống quản trị trung tâm, một sự cố hành chính sẽ trở thành sự cố toàn sản phẩm.
Cách tách hợp lý là để hệ thống quản trị phát hành chính sách có phiên bản, còn hệ thống phục vụ dùng bản hợp lệ gần nhất và liên tục đối soát sai lệch.
Luồng xử lý
Khách hàng và chính sách→Provisioner
Desired sang trạng thái thực tế→Hệ thống phục vụ
Lưu lượng khách hàng→Audit
Bằng chứng và reconciliation
Thiết kế và triển khai
Reconciliation theo trạng thái mong muốn
Controller so cấu hình mong muốn với tài nguyên thực và sửa drift, thay vì chạy script một lần dễ hỏng.
Chọn isolation tier
Khách hàng pooled, partitioned và dedicated có chi phí cùng phạm vi ảnh hưởng khác nhau. Placement phải là chính sách rõ ràng.
Chế độ bắt buộc tại hệ thống phục vụ
Hệ thống phục vụ kiểm tra bản chụp có chữ ký, phiên bản và xử lý unknown hoặc expired trạng thái theo rule đã định.
Đi sâu vào thiết kế
Isolation có nhiều chiều
Cơ sở dữ liệu row có thể dùng chung trong khi mã hóa khóa hoặc compute được tách riêng. Cần ghi rõ từng chiều và đường đợt chuyển đổi.
Vòng đời cần thao tác đảo ngược
Suspend, restore, export và delete cần bằng chứng, thời gian lưu giữ khoảng thời gian và phê duyệt. Xóa khách hàng là một quy trình, không phải một câu SQL.
Cách triển khai
- Mô hình hóa cấu hình khách hàng thành trạng thái mong muốn có số phiên bản.
- Cấp phát tài nguyên bất đồng bộ bằng một máy trạng thái có thể thử lại an toàn.
- Phân phối bản chụp chính sách có chữ ký; hệ thống phục vụ tiếp tục dùng phiên bản hợp lệ gần nhất khi hệ thống quản trị gặp sự cố.
Mã minh họa: Bản chụp chính sách khách hàng có chữ ký
snapshot = { tenantId, version, region, plan, limits, keyRef }
signature = controlPlane.sign(snapshot)
dataPlane.verify(signature)
dataPlane.activateIf(version > current.version)Không tự quay về bản chụp cũ. Nếu cần rollback, hệ thống quản trị phải phát hành một phiên bản mới có chữ ký và nội dung quay lui rõ ràng.
Rủi ro cần tính trước
- Quy trình cấp phát dừng sau khi mới tạo một phần tài nguyên rồi được chạy lại.
- Bản chụp quyền lợi quá cũ vẫn cho phép dùng tính năng sau khi khách hàng đã bị tạm ngưng.
- Một khách hàng dùng hết nhóm kết nối hoặc toàn bộ worker của hàng đợi dùng chung.
Nên theo dõi gì?
| Tín hiệu | Điều tín hiệu cho biết |
|---|---|
| Thời gian ở mỗi trạng thái cấp phát | Phát hiện những lần chuyển vòng đời bị kẹt. |
| Độ lệch phiên bản chính sách | Cho biết hệ thống phục vụ nào còn dùng cấu hình cũ. |
| Mức sử dụng tài nguyên theo khách hàng và gói | Cung cấp bằng chứng cho quyết định cô lập và mở rộng năng lực. |
Cách kiểm chứng
- Dừng hệ thống quản trị và chứng minh khách hàng đang active vẫn hoạt động trong chính sách độ mới khoảng thời gian.
- Thử lại provisioning sau từng bước và xác nhận không tạo tài nguyên trùng.
- Đẩy một khách hàng vượt hạn mức và kiểm tra khách hàng khác vẫn khỏe.
Đưa vào production từng bước
Tách phần đọc chính sách khách hàng trước và chạy song song với luồng cũ để so sánh quyết định. Chuyển cấp phát tài nguyên sang cơ chế đối soát từng nhóm một; chỉ bỏ lời gọi đồng bộ khi đã diễn tập chính sách cũ và thu hồi khẩn cấp.
Checklist trước khi vận hành
- Ngữ cảnh khách hàng đến từ trusted identity, không chỉ từ header do client tự chọn.
- Provisioning thử lại được và từng bước đều an toàn khi xử lý lặp.
- Có ngân sách khách hàng chiếm dụng tài nguyên cho compute, kho lưu trữ và công việc bất đồng bộ.
Điều cần nhớ
Tách hệ thống quản trị khỏi hệ thống phục vụ biến thao tác vòng đời khách hàng thành quy trình có thể kiểm toán mà không đặt lưu lượng người dùng vào cùng miền sự cố.
