Uptime is not a marketing metric for us. It is an engineering constraint that shapes every decision we make. When your entire business operates on a single platform, downtime is not an inconvenience. It is a full stop. That responsibility is something we take seriously, and it is reflected in every layer of the KamoCRM architecture, from the database to the load balancer.
नींव में, हम अपने प्राथमिक डेटा स्टोर के रूप में YugabyteDB चलाते हैं। YugabyteDB एक वितरित SQL डेटाबेस है जो स्वचालित विफलता के साथ एकाधिक नोड्स में डेटा को दोहराता है। यदि कोई नोड नीचे जाता है, तो क्लस्टर डेटा हानि या मैनुअल हस्तक्षेप के बिना काम कर रहा है। इसके शीर्ष पर, हमारे आवेदन परत में RKE2 के माध्यम से Kubernetes पर चल रहे 64 राज्यहीन microservices शामिल हैं। क्योंकि प्रत्येक सेवा स्टेटलेस है, किसी भी उदाहरण को दूसरों को प्रभावित किए बिना प्रतिस्थापित या स्केल किया जा सकता है।.
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.
परिणाम एक ऐसी प्रणाली है जिसमें कोई भी घटक नहीं है जिसकी असफलता बाकी है। अपडेट दिन में कई बार रोलिंग तैनाती के रूप में जहाज करते हैं, इसलिए रिलीज की लागत की उपलब्धता नहीं है। हजारों मीट्रिकों को लाइव ट्रैक किया जाता है, और ऑन-कॉल इंजीनियर सेकंड के भीतर एक विसंगति के बारे में सुनता है। यही कारण है कि 99.9% आंकड़े के पीछे क्या बैठता है।.
