2019年のLinkedIn技術ブログでもっとも読まれたトピックは「Apache Kafkaのカスタマイズ」

2019年も残すところわずかとなり、IT系のメディアでも「2019年を振り返る」といった記事が増えてきました。

オープンソースやマシンラーニング、データインフラストラクチャについての良質な記事が多いLinkedInの技術ブログ「LinkedIn Engineering Blog」でも2019年の振り返り特集として、1年間を通してもっとも読まれた10の記事を12/9付で紹介しています。

「LinkedInのスケールでいかにオーソライゼーションを行っているか」(10位)、「フィードをコミュニティフォーカスに最適化する」(7位)、「Brooklynのオープンソース化: ニアリアルタイムなデータストリーミングサービス」(2位)といった興味深いトピックが並ぶなか、堂々の1位に輝いたのはLinkedInを起源とする分散ストリーミング/メッセージングプラットフォーム「Apache Kafka」を、1日あたり7兆ものメッセージが飛び交うLinkedInネットワークにおいて、いかにカスタマイズしているかを解説している記事でした。

4000以上のブローカーで構成される100を超えるKafkaクラスタ、この上に存在する10万以上のトピックと700万以上のパーティション、そしてトピックを介してやり取りされるメッセージの数は1日あたり7兆超え…、いまや世界中の大規模分散処理システムで採用されているKafkaですが、世界最大級のソーシャルネットワークであるLinkedInのスケールはさすがに圧巻です。

このような超巨大なスケールでKafkaを運用していくために、LinkedInではBrooklynやCruise Controlといったオープンソースを用いて独自のKafkaエコシステムを構築しているほか、オリジナルのApache KafkaにLinkedInが手を加えた”内部ブランチ”のメンテナンスも行っています。つまり、オリジナルのApache Kafkaへのコミット(アップストリームファースト)と並行して、LinkedInのビジネスデマンドに迅速に対応した独自のパッチを内部ブランチとしてコミット(LinkedInファースト)しています。アップストリームへの統合をつねに視野に入れつつ、直近のビジネスイシューにはリアルタイムともいえるスピードで対処可能なLinkedIn専用Kafkaを用意しておく – オープンソースのスペシャリスト集団であるLinkedInだからこそ実現しているアプローチともいえますが、LinkedInファーストで先行したアップデートはこれまで数多く本家のアップストリームに取り入れられています。KafkaがApache Foundation傘下のオープンソースとなってからずいぶん時間が経ちますが、LinkedInがいまもKafkaの進化を支える重要なプレーヤーであることは変わりないようです。

なおLinkedInのKafkaブランチはGitHubで公開されています。