Uptime ist für uns keine Marketing-Metrik. Es ist eine technische Einschränkung, die jede Entscheidung, die wir treffen, prägt. Wenn Ihr gesamtes Unternehmen auf einer einzigen Plattform arbeitet, ist Auszeit keine Unannehmlichkeit. Es ist eine vollständige Haltestelle. Diese Verantwortung nehmen wir ernst und spiegelt sich in jeder Schicht der KamoCRM-Architektur wider, von der Datenbank bis zum Load Balancer.
Bei der Gründung betreiben wir YugabyteDB als primären Datenspeicher. YugabyteDB ist eine verteilte SQL-Datenbank, die Daten über mehrere Knoten mit automatischem Ausfall repliziert. Wenn ein Knoten ausfällt, arbeitet der Cluster ohne Datenverlust oder manuelle Intervention weiter. Darüber hinaus besteht unsere Applikationsschicht aus über 64 staatenlosen Microservices, die über RKE2 auf Kubernetes laufen. Da jeder Dienst staatenlos ist, kann jede Instanz ersetzt oder skaliert werden, ohne die anderen zu beeinflussen.
Echtzeit-Kommunikation fügt eine weitere Ebene der Komplexität hinzu. Videokonferenzen, Nachrichten und Telefonate erfordern dauerhafte Verbindungen und eine geringe Latenz. Wir behandeln dies mit Janus WebRTC für Medien und NATS JetStream für die Nachrichtenvermittlung, die beide in hochverfügbarer Konfigurationen in unserem Cluster eingesetzt werden. Sogar unsere Dateispeicherschicht, powered by MinIO, ist mit Löschung für Datenbeständigkeit konfiguriert.
Das Ergebnis ist ein System ohne eine einzige Komponente, deren Ausfall den Rest abnimmt. Updates Schiff mehrmals am Tag als rollende Bereitstellungen, so dass die Freigabe nicht die Verfügbarkeit kostet. Tausende von Metriken werden live verfolgt, und der Bereitschaftsingenieur erfährt innerhalb von Sekunden von einer Anomalie. Das ist es, was hinter der 99,9%-Zahl steht.
