今日(米国時間8/28)サンフランシスコで行われたKafka SummitでLinkedInが、KafkaのクラスターのためのロードバランサーツールCruise Controlを発表した。
LinkedInが開発したオープンソースのメッセージストリーミングツールKafkaは、それを使えば、ネットワーク上で大量のデータをアプリケーション間でリアルタイムに送受するタスクが簡単にできる。Cruise ControlのプロジェクトをリードしたソフトウェアエンジニアJiangjie Qinによると、Kafkaは今、ほとんど必須のツールになっているので、今LinkedInには専用のサーバーが1800台、それらが…つまりKafkaが…一日に2兆あまりのトランザクションを動かしている。
これだけの量であれば当然、Kafkaのクラスターを正常に動かし続けることはユーザーの企業にとってミッションクリティカルであり、そこで今年早期にチームは、クラスターの異状を見つけるツールを作ろうとした。そしてそのツールは、既定の一連のルールに従ってクラスターを自動的に構成し、適正な数のリソースを使用し、不具合を自己修復して動き続けるようにする。そのツールが、Cruise Controlになった。
Cruise Controlを作る前には、クラスターがダウンするたびにそれを手作業で再構成しなければならず、しかもQinによると、再構成に不正があると将棋倒しのようにほかのクラスターたちに悪影響が及ぶ。若干の人間の監視のもとに、マシン自身にクラスターの管理をやらせれば、その過程が大幅に単純化され、成長するネットワークのニーズに合わせてクラスターの修復作業のスケーリング(規模拡大)も可能になり、技術者たちが手作業でやっていたときに比べると仕事は大幅に効率化される(人力では不可能なほどに)。
Qinの説明によると、それらはロードバランシングの問題に帰結する。クラスターは、他のクラスターに迷惑をかけずに、正しい数のリソースで動いているか? 彼によるとこの問題はさらに、よくある構成上の問題を見つけ、ひとつひとつのクラスターに適正な目標を適用することに帰結する。人間でなく機械なら、クラスターのニーズを素早く評価し、一連の一般的な構成および目標と比較対照し、正しいものを選ぶ。
Cruise Controlはその際、この最適化プランでよろしいか?と人間に尋ねる。
なぜそんなツールが、もっと前からなかったのか、それについてQinは、技術者の数を最近増やすまでは、そっちにリソースを回す余裕がなかった、と答えた。
クラスターの構成とリソースの使用量を機械にチェックさせる今回のソリューションが完成するまでに、約半年を要している。同社はこのツールをオープンソースでリリースし、Kafkaクラスターのロードバランシングを改善するだけでなく、そのほかの分散システムにも同じロードバランシングの原理を適用できるようにしたい、と考えている。いろんなユースケースで、便利に使えるはずだ、とQinは述べている。