KamoCRM

ニュース

エンジニアリング2026年3月10日6 分読み取り

99.9%の稼働時間を支えるアーキテクチャ

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以上のステートレスマイクロサービスで構成されています。 各サービスが無状態であるため、他の人に影響を与えることなく、任意のインスタンスを交換またはスケールアウトすることができます.

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%の背後にあるものです.

The Kamo Team

コードを書く人