FastComments.com Blog


Wed Apr 01 2026
...

FastComments自動ルーティング輸送システム

はじめに

FastComments自動ルーティング輸送システム(FARTS)は、私たちの輸送およびサービスレイヤーです。FARTSは混雑を助け、将来的にはユーザーの位置情報や潜在的な負荷に基づいてトラフィックをルーティングします。それは、地理を意識したDNSレイヤー、DBプロキシ、DBレプリケーション、SSL証明書管理、リバースプロキシ、エッジでアセットをキャッシュするためのオンディスクLRUキャッシュを使用するCDNなど、いくつかの異なるシステムで構成されています。このシステムは、静的および動的フェイルオーバーモードの両方をサポートしています。静的モードの方が本番環境では好まれます。

アクティブ-アクティブ

FARTの最新バージョンには、私たちのデータベースのための組み込みプロキシおよびレプリケーションレイヤーが含まれています。これにより、FastCommentsはグローバルな書き込み可用性を持つアクティブ-アクティブになります。これによって、私たちのFARTSは最終的に一貫したものになります。詳細はこちら

初期段階で採用したアプローチの一つは、MongoDBのフォークを作成できるかどうかを調査することでした。私たちのエンジニアの一人(Sloperators)は、実際にOpus 4.6でこれを達成しましたが、これを行うリスクが独自の孤立したシステムを構築するよりも高いと判断しました。

FARTのようなものに望む最後のことは、それが到着したことを知っているが、そのソースを追跡できないことです。私たちは、アクティブ-アクティブレプリケーションを詳細に監視するためのモニタリングと診断を追加しました。

スケールでのRust

FARTを作成した動機の一部は、Javaで書かれた既存のサービスを置き換えることでした。それについて考えた後、実行時のオーバーヘッドを下げるためにこれらを1つのRustサービスに統合することに決めました。私たちはFARTを頻繁に展開しないため、これは受け入れられるトレードオフでした。FARTはLTOでコンパイルされているため、本当にその性能を引き出すことができます。

私たちは古いJavaシステムを異なるGCなどで調整するのに多くの時間を費やしましたが、最終的に非同期Rust + Mimallocが同じハードウェアで大幅に優れた性能を発揮し、メモリ要件もはるかに低くなることが分かったため、切り替えは明らかな選択でした。

FARTマスター

各デプロイメントには独自のFARTマスターが含まれています。マスターは、クロン、Webhookなどのオーケストレーションを担当しています。

顧客への影響

FARTシステムは約1年間本番環境で稼働しています。最近、アクティブ-アクティブデプロイメントへの移行を行いました。この新しいシステムは、システム全体のレイテンシを視覚化する能力を向上させ、メンテナンス負担を軽減するため、より多くの時間を機能に割けるようになりました。

FARTはバックグラウンドで静かに機能していますが、その存在は常に感じられます。私たちは、あなたのユースケースに対してシステムがより高速であることを願っています(主にデータの変更をもたらすユーザーアクションは、いくつかの地域でより高速になるでしょう)。

デプロイメント

デプロイメントは、私たちがサービス自体をデプロイするために使用するのと同じグローバルオーケストレーションシステムを使用します。FARTSのドキュメントは、sloperatorsはデプロイを決して信頼せず、リリース前にペイロードを常に検証することを推奨しています。

デプロイ後のFARTアラートはエスカレーションポリシーに従います:まずルーム、次にフロア、その後ビルディングです。

結論

すべての主要なリリースと同様に、私たちはこの変更を最適化し、テストし、適切にリリースする時間を取ることができたことを嬉しく思います。私たちは、今後の展開にワクワクしています。この作業によって、FastCommentsは将来的により良いスケールとアップタイムを持つはずです。FARTのランブックが言うように:「何かを嗅ぎ取ったら、何かを言ってください」。問題を発見した場合は、下にお知らせください。