Apache Kafka®ガバナンスのためのKlawのご紹介

<font color="Grey">*[Introducing Klaw for Apache Kafka® governance](https://aiven.io/blog/introducing-klaw-for-apache-kafka-governance)の翻訳です。*</font>

2022年9月29日

# Apache Kafka®ガバナンスのためのKlawのご紹介

オープンソースのデータガバナンスツールキットであるKlawは、企業がApache Kafka®のトピックとスキーマのガバナンスを実行するのに役立ちます。Klawで何ができるかをご覧ください！

エンタープライズ環境でApache Kafka®を実行するのは簡単なことではありません。AivenはKafkawizeを買収しました。KafkawizeはApache Kafkaの上に一元化されたガバナンスレイヤーを提供し、完全にオープンソースで自由にダウンロードして使用することができます。


このプロジェクトは現在Klawと改名されている。完全なオープンソースで、自由にダウンロードして使用することができます。


### 古い方法


企業がApache Kafkaの設定に関連するタスクを処理する伝統的な方法は2つある：自由と門番。


**自由と混乱

インフラチームは、サービスユーザーから伝えられた要件に基づいて、新しい設定や接続を自由に作成する。これには通常、チーム間の行き来が多くなり、所有権や誰がその輪に入るべきかが曖昧になる。変更は体系的に追跡されないかもしれない。その結果、有機的に成長した接続と要素のジャングルジムができ、何かを見つけるのも、それが何に接続されているのかを知るのも難しくなる。


**ゲートキーピングとボトルネック**。

一人のゲートキーパーが、どのような要素や接続が作られるかをコントロールする。ゲートキーパーは利害関係者と交渉し、要件をインフラ・チームに伝え、ゲートキーパーが承認印を押すまでは何も展開されない。その結果、一握りの人（あるいは一人でも！）に依存する遅いプロセスとなり、コンフィギュレーションを更新することが難しくなる。


**Klawはその代わりにプロセスとウェブベースのデータガバナンス・ツールキットを提供し、サービスを利用するチームが新しいトピック、スキーマ、アクセス権限、コネクターに関するリクエストを提出できるようにします。


![Klaw-dashboard](https://cdn.sanity.io/images/sczeoy4w/production/f4b8e093da7335afa9011d37e5999d9109c3c952-1902x1132.png?q=80&fit=min&auto=format&dpr=1.5)


## ♪Klawは何をしている？


KlawはApache Kafkaのトピック、ACL、スキーマを管理するウェブベースのデータガバナンスツールキットです。


Klawは、Apache Kafkaサービスユーザーのチームが、管理者の介入なしにApache Kafkaの設定変更をリクエストできるセルフサービスのユーザーインターフェースを提供します。Klaw経由でリクエストできる変更は以下の通りです：


* Kafkaユーザーのロールの追加と定義
* ある環境から別の環境へのトピックの作成と昇格
* スキーマの作成と更新
* トピックへの生成またはトピックからの消費を行うユーザーの承認
* コネクタの追加


## Klawの利点


Klawを使ってリクエストをすると、そのリクエストを実行するために必要なすべての情報が含まれ**、チーム間のコミュニケーションの手間が省けます。


また、このようによく構造化されたリクエストにより、新しいトピックは**一貫した構成**になります。


確立されたワークフロー**では、どのようなリクエストに対しても常に第二の目が向けられるため、リクエストの品質が高く保たれ、説明責任が維持されます。


さらに、Klawは設定変更に関連するすべてのイベントの**ログ**を管理します。誰がいつ何を要求し、いつ変更が実行されたかを後で簡単に確認できます。


まとめると、KlawはApache Kafkaの上に一元化されたガバナンスと監査レイヤーを実装するために使用できます。


![Klaw-req-menu](https://cdn.sanity.io/images/sczeoy4w/production/a5d5d6475ddf16c5db5e3ee79949bf5dd78a8bed-454x250.png?q=80&fit=min&auto=format&dpr=1.5)


## Klawはどのように機能するのか？


このアイデアは、Apache Kafkaを使用しているチームのメンバーが、変更のリクエストを提出できるというものです。そして、関連リソースを所有するチームの仲間は、それを承認することができる。つまり、すべてのデータは、それを理解するチームが所有する。


![Klaw-ConnectorRequestForm](https://cdn.sanity.io/images/sczeoy4w/production/2d51dd225204ece7cd1502619c923c07ef28529b-1297x880.png?q=80&fit=min&auto=format&dpr=1.5)


リクエストが行われると、それを承認できるチーム全員にアラートが届きます。チームメンバーなら誰でもリクエストを承認できます。


### チーム、役割、ユーザー


最初のステップは、必要なチームを設定し、その責任について決めることである。デフォルトでは `infrateam` と `stagingteam` の2つのチームが用意されている。


次にユーザーを入れます。ユーザーはチームに割り当てられ、そこで変更をリクエストしたり、リクエストを承認したりすることができます。ユーザーを作成する最も簡単な方法は、LDAPを使うか、既存のSSOプロバイダーと統合することです。デフォルトで提供されるユーザーは1つだけで、それはsuperadminユーザーです。


ユーザーとそのパーミッションの管理を簡単にするために、ロールを使い、それぞれのロールに異なるパーミッションを割り当てることができます。デフォルトでは `user` と `superadmin` の2つのロールが提供されている。必要に応じてさらに作成することができる。


### 環境


Apache Kafkaリソースは、Klaw内部で環境に設定されます。クラスタと環境を別々に管理し、それらの間の関係を設定してデプロイパイプラインを構築することができます。


例えば、以下のような環境階層を指定できます：

Testing（テスト） -> Staging（ステージング） -> Acceptance（アクセプタンス） -> Production（プロダクション


たとえば、Testing 環境で新しい Topic を作成し、Staging 環境で作成するときに、Topic の昇格を要求できます。このプロセスにより、Topic 全体とその構成が Testing 環境で作成され、Staging 環境にコピーされるため、作成プロセスを繰り返す手間が省けます。


### 同期


![Klaw-sync-menu](https://cdn.sanity.io/images/sczeoy4w/production/eb8903262754782c512fafd8648aaf7e0128d25d-475x258.png?q=80&fit=min&auto=format&dpr=1.5)


Klawの最もクールな機能の一つは、クラスタ間でトピックとACLを同期する機能です。あるクラスタからトピックとACLを取り出し、ワンクリックで別のクラスタに複製することができます。これにより、Klawの初期化を簡素化するだけでなく、Apache Kafkaクラスタ全体の標準設定を作成することができます。


## Klawと他のアプリケーション


Klawは**どのようなApache Kafkaフレーバー**でも、純粋なセルフマネージドApache Kafkaでも、Aiven for Apache Kafkaのようなマネージドサービスでも動作します。


ユーザー認証のために、Klawは**Active Directory (AD)**、**SSO (OAuth2)**、**LDAP**で動作します。


Aivenのオープンソーススキーマレジストリである**Karapace**と**Confluent Schema Registry**の両方がサポートされており、ユーザーはそれらの中に存在するスキーマのリクエストを提出することができます。


サポートされているプロトコルは **PLAINTEXT**、**SSL**、**SASL** です。


Klawは、Apache Kafkaリソースを管理するためのApache Kafka AdminClient APIにプラグインする独自のクラスタAPIを持っています。


![Klawアーキテクチャ](https://cdn.sanity.io/images/sczeoy4w/production/173f64b14b5c85f9c96325f6aab04babba6b20e8-800x400.png?q=80&fit=min&auto=format&dpr=1.5)


## ♪クロウとAiven


AivenはKlawのオープンソースの維持に全面的に取り組んでいます。Karapaceと同様、KlawもAivenのオープンソースの一部であり、誰でも無料で利用できる。Aiven for Apache KafkaはKlawとシームレスに動作するため、当然ながら私たちの一番のおすすめですが、必須ではありません。


Apache Kafkaは一流のツールに値し、Klawは企業のApache Kafka環境では不足しがちな重要なリンクを提供します。


## Klawを始めよう


Klawの導入を始めるには、[Klawプロジェクトページ](https://klaw-project.io)をご覧ください。ダウンロードして[ドキュメント](https://klaw-project.io/docs)を読み、Apache Kafkaユーザーに力を与え始めましょう！