レポート

「Kafka Summit 2020」開催!ストレージ階層化,ZooKeeperフリー,クラウドネイティブ ―次の10年に向けて進化を続けるKafkaのいま

この記事を読むのに必要な時間:およそ 3.5 分

8月24日,25日(米国時間)の2日間に渡り,Confluentが主催する「Kafka Summit 2020」がオンラインで開催されました。新型コロナウイルスの感染拡大により,2020年はほぼすべてのITカンファレンスがキャンセル,またはオンラインでの開催へと切り替えられてきましたが,これまで年に2回,サンフランシスコやロンドン,ニューヨークなどでリアルイベントが行われてきた「Kafka Summit」も同様に,初めてのバーチャルカンファレンスとして開催されました。もっとも今回の登録者数は143ヵ国から約3万5,000名にも上り,リアルイベントからオンラインへと変わったことで,Kafka Summitとしては過去最大級の参加者を集めています。

もともとは米テキサス州オースティンで8月に開催される予定だった「Kafka Summit 2020」は物理イベントが中止となり,初のオンライン開催となった

もともとは米テキサス州オースティンで8月に開催される予定だった「Kafka Summit 2020」は物理イベントが中止となり,初のオンライン開催となった

大量に発生するデータをリアルタイムでハンドリングするパブサブ(Publish/Subscribe)型のメッセージングプラットフォームとしてLinkedInで誕生したKafkaは,2011年にThe Apache Foundationに寄贈されオープンソースとして開発が進められてきました。2014年にはKafkaのメインクリエーターたちがLinkedInからスピンアウトし,Kafkaをビジネスの中核に据えたConfluentを設立,現在ではNetflixやCisco,Airbnb,Box,LINEなど,データドリブンなビジネスで成功している数多くの企業で採用されています。

Kafka誕生から10年近く経った現在,世界の情勢もITのトレンドも大きく変化しました。その変化の波がより速く,激しくなる中にあって,Kafkaはこれからどんな方向に進もうとしているのでしょうか。本稿では8月に24日に行われたConfluentのエンジニアリングリーダーであり,Apache Kafkaのメインコントリビューターでもあるグウェン・シャピラ(Gwen Shapira)氏のオープニングキーノートの内容を中心に,Kafkaが次の10年で目指そうとしている方向性を見ていきます。

キーノートでのグウェン・シャピラ(Gwen Shapira)氏,Confluentのエンジニアリングリーダーを務め, Kafkaのメインコントリビューターでもある

キーノートでのグウェン・シャピラ(Gwen Shapira)氏

Kafkaにおける「コンセプチュアルインテグリティ」を実現するために

「すばらしいアーキテクチャにはコンセプチュアルインテグリティ(Conceptual Integrity,コンセプトの統合)がある」―キーノートの冒頭,シャピラ氏はソフトウェア工学でよく語られるキーワードを引き合いに出し,Kafkaもまた統合されたコンセプトのもとに構築されるアーキテクチャであるべきとしています。加えてKafkaにおけるコンセプチュアルインテグリティを実現する要素として,以下のポイントを示しています。

スケーラビリティ
マルチテナンシー,ブローカーの追加=キャパシティの増加,すべてのディメンジョンでリニアにスケール
使いやすい運用環境(Operationally Friendly)
整備されたドキュメント,監視可能,自動化のしやすさ,メンバーどうしの共同作業のしやすさ,効率性(=安価であること)
弾力性(Elasticity)
ブローカーの追加/削除のしやすさ,ワークロードの変更に対する適応

コンセプチュアルインテグリティはフレデリック・ブルックス「人月の神話」などに出てくる言葉で,システム開発におけるコンセプトの重要性をあらわしている

コンセプチュアルインテグリティはフレデリック・ブルックス「人月の神話」などに出てくる言葉で,システム開発におけるコンセプトの重要性をあらわしている

ではこうした要点を押さえた上で,Kafkaはどのように変化していこうとしているのでしょうか。シャピラ氏はKafka開発者がKafkaの改善点を提案/議論するスペース「Kafka Improvement Proposals(KIP⁠⁠」の議題の中でも,データプレーンとコントロールプレーンのそれぞれにおいて取り組むべきもっとも重要な項目として以下の2つを挙げています。

このうち,ZooKeeper依存を廃するKIP-500に関してはすでに承認済みの修正項目となっており,近い将来のアップデートで実現することが決定しています。

まずはデータプレーンのアップデートであるストレージ階層化について。KIP-405ではKafkaクラスタのストレージをローカルとリモートの2階層に分け,ローカル層は従来(ブローカー上のローカルディスク)と同様の位置づけに,そして新たに追加するリモート層はHDFSやAmazon S3などの上に構築され,書き込みが完了したログセグメントを保存する役割を担います。つまりリモート層をコールドストレージとして機能させることで,ローカル層に保存されるデータの保存期間を大幅に短縮することが可能になります。シャピラ氏はストレージ階層化によって得られるメリットとして

  • ほぼ制限なしでの履歴保存
  • プラガブルストレージの実現
  • 容易なキャパシティプランニング

を挙げていますが,書き込みが完了したログをリモートストレージへと分離することで,ストレージの独立性を高め,さらにスケーラビリティの大幅な拡張も見込めます。また,この変更はKafkaの既存アーキテクチャにはそれほど大きな影響を与えず,既存ユーザのユーザビリティも損なわれないとされており,シャピラ氏は「レイテンシとスループットを最適化するためにもKIP-405はひじょうに重要なアップデート」と語っています。

そして,コントロールプレーンにおける,というよりもKafkaの進化においてもっとも重要ともいえる変更がZooKeeperからの依存脱却です。前述したとおり,ZooKeeperのリムーブはすでに決定事項であり,正式リリースに向けてさまざまな取り組みが進んでいます。たとえば2020年4月にリリースされた「Apache Kafka 2.5.0」では管理ツールによるZooKeeperへのダイレクトアクセスが非推奨(KIP-555)とされ,ダイナミックコンフィギュレーションでZooKeeperのアクセスが不要になっており,"脱ZooKeeper"に向けて着々と準備が整っている印象です。

Kafkaの今後の進化を左右する2つの大きなアップデート。ストレージの階層化(KIP-405)とZooKeeperのリムーブ(KIP-500)

Kafkaの今後の進化を左右する2つの大きなアップデート。ストレージの階層化(KIP-405)とZooKeeperのリムーブ(KIP-500)

著者プロフィール

五味明子(ごみあきこ)

IT系の出版社で編集者としてキャリアを積んだ後,2011年からフリーランスライターに。フィールドワークはオープンソースやクラウドコンピューティング,データアナリティクスなどエンタープライズITが中心。海外カンファレンス取材多め。Blog 「G3 Enterprise」やTwitter(@g3akk),Facebookで日々IT情報を発信中。

北海道札幌市出身/東京都立大学経済学部卒。

バックナンバー

2020年

  • 「Kafka Summit 2020」開催!ストレージ階層化,ZooKeeperフリー,クラウドネイティブ ―次の10年に向けて進化を続けるKafkaのいま

バックナンバー一覧