Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloud Native Kafka - KIP-500及び関連KIPについて

52d9c2096956a1fd886e1abe1cdf4db2?s=47 hashi
December 17, 2021

Cloud Native Kafka - KIP-500及び関連KIPについて

Apache Kafka Meetup Japan #10 LT登壇資料
Cloud Nativeというキーワードでは専らCloud NativeなワークロードのランタイムとなるKubernetesの話題になるのが常ですが、本セッションではワークロード、Kafka自身がCloud Nativeとなるという観点でKIP-500 (Replace Zookeeper with a Self-Managed Metadata Quorum) とその関連KIPについてお話します。

52d9c2096956a1fd886e1abe1cdf4db2?s=128

hashi

December 17, 2021
Tweet

Transcript

  1. Apache Kafka Meetup Japan #10 Cloud Native Kafka - KIP-405、KIP-500、及び関連KIPについて

    Shinichi Hashitani, Solutions Engineer, Dec-17, 2021. #kafkajp
  2. Cloud Native Kafka Kafka自体がCloud Nativeになるということ。 #kafkajp

  3. Cloud Native … You Mean Kubernetes?

  4. Operator Custom Resource Container Runtime No Operator. Just containers and

    a chart. Pod
  5. Cloud native technologies empower organizations to build and run scalable

    applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone. CNCF Cloud Native Definition v1.0
  6. クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッ ドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケー ションを構築および実行するための能力を組織にもたらします。 このアプローチの代表 例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラスト ラクチャ、および宣言型APIがあります。 これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現し ます。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変 更を最小限の労力で頻繁かつ予測どおりに行うことができます。

    Cloud Native Computing Foundationは、オープンソースでベンダー中立プロジェクト のエコシステムを育成・維持して、このパラダイムの採用を促進したいと考えてます。 私たちは最先端のパターンを民主化し、これらのイノベーションを誰もが利用できるよ うにします。 CNCF Cloud Native 定義 v1.0
  7. It talks about tools, the way we manage them, AND

    stuff that run on them.
  8. Kafka itself becoming “Cloud Native”. Meaning, Kafka is more: -

    Architecturally Simple - Scalable - Tolerable to runtime failures
  9. The Architect: Bare Metalsson Rejects the Cloud “But you think

    I’m gonna let somebody else manage our infrastructure, host our databases, or run Kafka for me?”
  10. KIP-500 Goodbye, Zookeeper. #kafkajp

  11. Copyright 2021, Confluent, Inc. All rights reserved. This document may

    not be reproduced in any manner without the express written permission of Confluent, Inc. KIP-500 - Replace Zookeeper with a Self-Managed Metadata Quorum 11 Description 現在KafkaはBrokerやPartitionに関するメタデー タをZookeeperに保存し、Kafka Controllerの選 出にも利用している。本変更によりこれらメタ データの管理方法をより堅固かつスケーラブルな 方法へと刷新し、より多くのPartitionをサポート 出来るようにする。 このKIPは全体構想を定義するものであり、関連改 善は個別のKIPとして詳細に定義される。 KIP-500: Replace Zookeeper with a Self-Managed Metadata Quorum Changes • Metadataの管理方法とControllerの責任範囲 • Broker間の合意形成のアプローチ • Clientの変更 ZK ZK ZK
  12. Copyright 2021, Confluent, Inc. All rights reserved. This document may

    not be reproduced in any manner without the express written permission of Confluent, Inc. KIP-631 - The quorum-based Kafka Controller 12 個々のBrokerから もアクセスあり 全ての変更を通知 できない Controllerとして機能 しメタデータは持って るがソースはZK。 新しいControllerが選出 される際にZookeeperか らメタデータ読み込みに 時間がかかる ZookeeperとController 間でデータの乖離が発生 する KIP-631: The Quorum-based Kafka Controller ❏ Broker Info ❏ Partition Info ❏ Broker Info ❏ Partition Info ❏ Consumer Info ZK ZK ZK • Controllerが複数 (3+)。Controller内で合意 形成。(Raft) • BrokerはActive Controllerと通信。 (現行の Controllerと同等) • BrokerがメタデータをActive Controllerから フェッチ+永続化。 • registered, unregistered, and fenced (new). ❏ Broker Info ❏ Partition Info ❏ Consumer Info
  13. Copyright 2021, Confluent, Inc. All rights reserved. This document may

    not be reproduced in any manner without the express written permission of Confluent, Inc. KIP-595 - A Raft Protocol for Metadata Quorum 13 • メタデータ合意 (Leader/Follower) • Leader Election KIP-595: A Raft Protocol for Metadata Quorum メタデータの永続化ストアからログベースへ 元々Kafkaはユーザーデータ/メタデータのそれぞれ をログベースで行っており、Raftモデルとの親和性は 高い。メタデータは内部Topic __cluster_metadata にて管理。スナップショットとTopicを利用して迅速 にメタデータを復旧。 KIP-380 Controller Epoch KIP-380: Detect outdated control requests and bounced brokers using broker generation により、 オフラインとなったControllerが復帰時にController 責任を放棄するメタデータ (Epoch) が既に入ってい る。(EpochはRaftにおけるTermと同義)
  14. Copyright 2021, Confluent, Inc. All rights reserved. This document may

    not be reproduced in any manner without the express written permission of Confluent, Inc. KIP-630 - Kafka Raft Snapshot 14 KIP-630: Kafka Raft Snapshot 0からのState復旧 Controllerはメタデータログから状態 (State) を更新 しメモリに保存、合わせて永続化している。この Metadata Stateを再現する為にはログが必要だが、 ログは絶えず増えState再現にかかる時間も比例的に 増大する。 Active Controllerはあるコミットされた状態で定期 てにMetadata Storeのスナップショットを取得。 新たに参加 (新規/復旧) する新しいControllerはス ナップショットを始点として必要なオフセットからメ タデータログを消化しStateを再現する。
  15. Cloud Native Kafka Kafka running on someone else’s computer (or

    container) #kafkajp
  16. Copyright 2021, Confluent, Inc. All rights reserved. This document may

    not be reproduced in any manner without the express written permission of Confluent, Inc. Major Benefits of KIP-500 16 よりシンプルな構成 信頼できるメタデータ Fenced Registered Unregistered リクエストは受けないが 状態をキープ スナップショットによる 迅速なState復旧
  17. So, Cloud Native Kafka means

  18. Cheaper Failures

  19. Running Kafka on someone else’s computer, like Cloud (or Container).

  20. #kafkajp