Keenrig

Vì sao local là nguồn sự thật, không phải cloud

Nguyên tắc kiến trúc số một của Keenrig: instance giữ toàn bộ trạng thái cần để vận hành, cloud chỉ là lớp cộng thêm. Bài này giải thích hệ quả của lựa chọn đó, kể cả những hệ quả bất tiện.

Phần lớn nền tảng triển khai hiện đại đặt bộ não trên đám mây: đám mây biết bạn có những ứng dụng nào, chúng nên ở trạng thái gì, và nó ra lệnh xuống máy. Mô hình đó gọn, và nó sai với bài toán của chúng tôi.

Keenrig đảo chiều: mỗi instance có cơ sở dữ liệu riêng, kho danh tính riêng, trang quản trị đầy đủ và vòng đối chiếu chạy ngay tại chỗ. Đám mây không giữ một mẩu trạng thái bắt buộc nào để instance vận hành — nó chỉ giữ danh sách môi trường, token ghép nối, thông tin thanh toán, cấu hình DNS managed và bản sao lưu nếu bạn chọn kho managed.

Hệ quả dễ chịu

Hệ quả rõ nhất là "ngắt cloud" không còn là một chế độ đặc biệt phải viết thêm code để hỗ trợ. Nó là trạng thái tự nhiên của instance, và việc ghép nối mới là phần cộng thêm. Bạn không thể quên bảo trì một chế độ mà bạn chạy nó mỗi ngày.

  • Đám mây của chúng tôi sập không làm ứng dụng của bạn sập theo.
  • NAT và tường lửa không thành vấn đề: agent chỉ gọi ra, không có cổng nào phải mở vào.
  • Bản tự host không cần tài khoản, và không có lời gọi mạng bắt buộc nào ra ngoài.

Hệ quả bất tiện

Đổi lại, Console không được phép tự ý gọi thẳng vào instance. Mọi lệnh từ Console đều là một ý định được đặt vào hàng đợi, và instance chủ động lấy về. Điều đó có nghĩa là một thao tác bấm trên Console không xong ngay lập tức — nó xong trong khoảng vài giây. Chúng tôi thiết kế giao diện quanh sự thật đó thay vì giả vờ rằng nó tức thời.

Nó cũng có nghĩa là Console hiển thị trạng thái trễ hơn instance vài giây, vì trạng thái đến từ payload đồng bộ. Với một trang tổng quan nhiều môi trường thì độ trễ đó không đáng kể. Với một trang chi tiết thì bạn nên mở thẳng trang quản trị local, và chúng tôi để sẵn một liên kết ở đúng chỗ đó.

Bài kiểm tra thật

Bài kiểm tra chúng tôi tự đặt ra rất đơn giản: rút dây mạng nối instance với đám mây, rồi thử làm mọi việc vận hành thường ngày. Cài ứng dụng, đổi cấu hình, khôi phục một bản sao lưu, thêm người dùng. Việc nào không làm được thì hoặc là chưa xong, hoặc phải được ghi rõ trong tiền kiểm trước khi ngắt — không có lựa chọn thứ ba.

Về danh sách bài viết