Uptime bizim için bir pazarlama metrik değil. Yaptığımız her kararı şekillendiren bir mühendislik kısıtlaması. Tüm işinizin tek bir platformda çalıştığı zaman, downtime bir rahatsızlık değildir. Tam bir duraktır. Bu sorumluluk ciddiye aldığımız bir şeydir ve KamoCRM mimarisinin her katmanına, veritabanından yük bakiyesine yansıtılır.
Temelde, YugabayDB’yi birincil veri mağazamız olarak işletiyoruz. YugabayDB, otomatik yük devretme ile birden fazla düğümde verileri çoğaltmak için dağıtılmış bir SQL veritabanıdır. Eğer bir node düşerse, küme veri kaybı veya manuel müdahale olmadan çalışır. Bunun başında, uygulama katmanımız, Kubernetes'te RKE2 ile çalışan 64 devletsiz mikro hizmetten oluşur. Çünkü her hizmet devletsizdir, herhangi bir örnek başkalarını etkilemeden değiştirilebilir veya ölçeklenebilir.
Gerçek zamanlı iletişim, başka bir karmaşıklık katmanı ekliyor. Video konferans, mesajlaşma ve telefon tüm kalıcı bağlantıları ve düşük gecikmeleri gerektirir. Bunu, Janus WebRTC ile medya ve NATS JetStream ile mesaj brokeri için yönetiyoruz, her ikisi de kümemizdeki son derece mevcut konfigürasyonlarda dağıtıldı. MinIO tarafından desteklenen dosya depolama katmanımız bile, veri dayanıklılık için dönem kodlama ile yapılandırılır.
Sonuç, tek bir bileşeni olmayan bir sistem başarısızlık noktasıdır. Sıfır kesinti süresi garanti eden tren dağıtımlarını kullanarak günde birden çok kez güncellemek. İzleme yığını gerçek zamanlı olarak binlerce metrik izler ve on-call mühendislik ekibimiz herhangi bir anomalinin saniyeleri içinde uyarılmaktadır. Bu, %99.9'un arkasındaki mühendislik ve sürekli olarak bunu daha da iyi hale getirmeye çalışıyoruz.