Blog

Inginerie10 martie 20266 min citește

Arhitectura din spatele a 99,9% Uptime

Uptime nu este un indicator de marketing pentru noi. Este o constrângere inginerească care modelează fiecare decizie pe care o luăm. Când întreaga afacere funcționează pe o singură platformă, timpul liber nu este un inconvenient. Este o oprire completă. Această responsabilitate este ceva ce luăm în serios şi se reflectă în fiecare strat al arhitecturii KamoCRM, de la baza de date până la balanţa de încărcare.

La fundaţie, conducem YugabyteDB ca magazin de date primare. YugabyteDB este o bază de date SQL distribuită care reproduce date prin mai multe noduri cu o eroare automată. Dacă un nod cade, grupul continuă să funcționeze fără pierderi de date sau intervenții manuale. Pe deasupra, stratul nostru de aplicare constă din peste 64 de microservicii apatride care rulează pe Kubernetes prin RKE2. Deoarece fiecare serviciu este apatrid, orice caz poate fi înlocuit sau extins fără a le afecta pe celelalte.

Comunicarea în timp real adaugă un alt nivel de complexitate. Conferinţele video, mesajele şi apelurile telefonice necesită conexiuni persistente şi latenţă scăzută. Ne ocupăm de acest lucru cu Janus WebRTC pentru mass-media și NATS JetStream pentru intermedierea de mesaje, ambele implementate în configurații foarte disponibile în cadrul grupului nostru. Chiar și stratul nostru de stocare a fișierelor, alimentat de MinIO, este configurat cu ștergerea codării pentru durabilitatea datelor.

Rezultatul este un sistem în care nicio singură componentă nu este un punct de defectare. Desfășurăm actualizări de mai multe ori pe zi utilizând aplicații de rulare care asigură o perioadă de timp zero. Stack-ul nostru de monitorizare urmărește mii de indicatori în timp real, și echipa noastră de inginerie de gardă este alertat în câteva secunde de orice anomalie. Aceasta este ingineria din spatele numărului de 99,9%, şi continuăm să insistăm să o facem şi mai bună.

Echipa Kamo

Construirea viitorului operațiunilor comerciale