Blog

Ingénierie10 mars 20266 min de lecture

L'architecture derrière 99,9 % de la disponibilité

Le temps de disponibilité n'est pas une mesure de marketing pour nous. C'est une contrainte d'ingénierie qui façonne chaque décision que nous prenons. Lorsque l'ensemble de votre entreprise opère sur une plate-forme unique, le temps d'arrêt n'est pas un inconvénient. C'est un arrêt complet. Cette responsabilité est quelque chose que nous prenons au sérieux, et elle se reflète dans chaque couche de l'architecture KamoCRM, de la base de données à l'équilibreur de charge.

À la fondation, nous gérons YugabyteDB comme notre principale boutique de données. YugabyteDB est une base de données SQL distribuée qui réplique des données à travers plusieurs nœuds avec un basculement automatique. Si un noeud tombe en panne, le cluster continue à fonctionner sans perte de données ni intervention manuelle. En plus de cela, notre couche d'application consiste en plus de 64 microservices apatrides fonctionnant sous Kubernetes via RKE2. Chaque service étant apatride, tout cas peut être remplacé ou mis à l'échelle sans affecter les autres.

La communication en temps réel ajoute une autre couche de complexité. La visioconférence, la messagerie et les appels téléphoniques nécessitent tous des connexions persistantes et une faible latence. Nous nous en oignons avec Janus WebRTC pour les médias et NATS JetStream pour le courtage de messages, tous deux déployés dans des configurations très disponibles à travers notre cluster. Même notre couche de stockage de fichiers, alimentée par MinIO, est configurée avec un codage d'effacement pour la durabilité des données.

Il en résulte un système dans lequel aucun composant n'est un point de défaillance. Nous déployons des mises à jour plusieurs fois par jour en utilisant des déploiements glissants qui assurent un temps d'arrêt nul. Notre pile de surveillance suit des milliers de métriques en temps réel, et notre équipe d'ingénieurs sur demande est alertée en quelques secondes de toute anomalie. C'est l'ingénierie derrière le nombre de disponibilités de 99,9%, et nous poussons continuellement à le rendre encore meilleur.

L'équipe de Kamo

Instaurer l'avenir des opérations commerciales