KamoCRM

Blog

Kỹ thuậtNgày 10 tháng 3 năm 20266 phút đọc

Kiến trúc đằng sau 99.9% thời gian

Thời gian đã hết cho chúng ta. Đó là một sự ràng buộc kỹ thuật định hình mọi quyết định của chúng ta. Khi toàn bộ công việc làm ăn của bạn hoạt động trên một nền tảng, thời gian xuống dốc không phải là một sự bất tiện. Hết chỗ rồi. Trách nhiệm đó là một cái gì đó chúng tôi nghiêm túc, và nó được phản ánh trong mỗi lớp của kiến trúc KamoCRM, từ cơ sở dữ liệu đến bộ cân bằng tải trọng.

Tại quỹ, chúng tôi điều hành YugabyteDB như là kho dữ liệu chính. YugabyteDB là một cơ sở dữ liệu được phân phối để sao chép dữ liệu qua nhiều nút có lỗi tự động. Nếu nút giảm, cụm tiếp tục hoạt động mà không mất dữ liệu hoặc can thiệp bằng tay. Trên hết, lớp ứng dụng của chúng tôi bao gồm hơn 64 dịch vụ vi phân không có tiểu bang đang chạy trên Kubernetes thông qua RKE2. Bởi vì mỗi dịch vụ là không có quốc gia, bất cứ trường hợp nào có thể được thay thế hoặc quy mô mà không ảnh hưởng đến người khác.

Real-time communication adds another layer of complexity. Video conferencing, messaging, and phone calls all require persistent connections and low latency. We handle this with Janus WebRTC for media and NATS JetStream for message brokering, both deployed in highly available configurations across our cluster. Even our file storage layer, powered by MinIO, is configured with erasure coding for data durability.

Kết quả là một hệ thống không có một thành phần duy nhất mà thất bại sẽ làm giảm phần còn lại. Cập nhật con tàu vài lần mỗi ngày như việc di chuyển, vì thế việc phóng tàu không tốn kém. Hàng ngàn thước đo được theo dõi trực tiếp, và kỹ sư trên điện thoại nghe về một sự bất thường chỉ trong vài giây. Đó là những gì nằm sau con số 99.9%.

Nhóm Kamo

Những người viết ra mã