Apache Kafka とは

URL をコピー

Apache Kafka は、分散データ・ストリーミング・プラットフォームであり、大規模なストリーミングデータをリアルタイムで取り込んで処理し、配信します。レコードのストリームをリアルタイムで公開、サブスクライブ、保存、処理でき、複数のソースからデータストリームを処理し、複数のコンシューマーに配信することに特化しています。ただ A から B に動かすのではなく、A から Z までの複数の地点、および必要なあらゆる場所に、同時に大量のデータを移動させることが可能です。

Apache Kafka は従来のエンタープライズ・メッセージング・システムに代わるものです。当初は LinkedIn が 1 日 1 兆 4,000 億件のメッセージを処理するために社内システムとして開発したものですが、今ではさまざまなエンタープライズのニーズに対応するアプリケーションを持つオープンソースのデータストリーミング・ソリューションとなりました。

Kubernetes で Kafka を実行する理由

マイクロサービスによって、開発をめぐる状況は一変しました。共有データベース階層などの依存関係が減少し、開発者の俊敏性が増しました。しかし、開発者が構築している分散アプリケーションには、データを共有するためにまだいくらかの統合が必要です。統合の手法としては同期を使った方法が一般的であり、この手法ではアプリケーション・プログラミング・インタフェース (API) を使用して異なるユーザー間でデータを共有します。

もう 1 つの手法である非同期の方法は、中間ストレージにデータを複製します。ここが Apache Kafka の出番で、他の開発チームからのデータをストリーミングしてデータストアに入力し、データを複数のチームとアプリケーション間で共有できるようにします。

マイクロサービスを利用して開発を行うチームにとっての統合の要件は、従来のウォーターフォール型開発チームのものとは異なります。このようなチームには、次の 3 つの基本的な能力が必要です。

  1. 分散統合:必要に応じて継続的にデプロイでき、一元化された ESB タイプのデプロイに制限されない、軽量でパターンベースの統合。
  2. API:収益性があり信頼できるサービスの使用方法を提供する、パートナー、顧客、開発者のエコシステムを育成するための、API ベースのサービス。
  3. コンテナクラウドネイティブのコネクテッド・アプリケーションを開発、管理、スケーリングするためのプラットフォーム。コンテナによって、DevOps プロセスの一貫として個別にデプロイでき、すぐに使えるクラスタリングでサポートされる、無駄のないアーティファクトの開発が可能になり、高可用性が確保されます。

Red Hat ではこのアプローチを「アジャイル・インテグレーション」と呼びます。このアプローチでは、統合をアプリケーション開発プロセスの一部に取り入れることで俊敏性を増し、適応性の高いソリューションを提供します。アジャイル・インテグレーションの特長の 1 つが、アプリケーション固有のニーズに応じて、同期または非同期の統合を自由に選んで使用できることです。非同期のイベント駆動型統合を使用して同期統合と API の使用を増大し、マイクロサービスのサポートを強化してアジャイル・インテグレーションを実現することを目指すのであれば、Apache Kafka は非常に優れた選択肢です。開発プロセスを効率化し、イノベーションを促進して時間を節約する取り組みの中心に Apache Kafka を据えれば、最終的には、新しい機能、アプリケーション、サービスを迅速に市場に投入することも可能になるでしょう。

Red Hat のリソース

Apache Kafka はストリーミング・データ・パイプラインに組み込まれ、システムおよびアプリケーション間でデータを共有します。また、このデータを使用するシステムおよびアプリケーションにも組み込まれます。Apache Kafka は、高スループットとスケーラビリティが欠かせないさまざまなユースケースをサポートします。Apache Kafka によって、特定のアプリケーションでのデータ共有に対してポイントツーポイントの統合の必要性が最小化されるので、レイテンシーがミリ秒単位にまで短縮されます。つまり、データがすぐにユーザーの手に渡るようになります。これは、IT 運用や e コマースなど、リアルタイムでデータを取得する必要があるユースケースにおいては大きなメリットになり得ます。

Apache Kafka は毎秒数百万のデータポイントを処理できるため、ビッグデータの課題に対する最適な解決策です。さらに Kafka は、現在このような膨大な量のデータを取り扱っていない企業にとっても意味があります。IoT (モノのインターネット) やソーシャルメディアなど、多数のデータ処理ユースケースにおいて、データは爆発的に増加しており、現在のデータ量を基準に構築しているアプリケーションではまもなく手に負えなくなります。データ処理の面ではスケーラビリティを考慮する必要があり、データの急増化を見越しておく必要があります。

 

 

IT 運用

IT 運用の要はデータです。IT 運用部門はデータにアクセスする必要があり、しかも迅速なアクセスが必要です。Web サイト、アプリケーション、システムを常時稼働させ、機能させるには、これが唯一の方法です。Apache Kafka は、監視、アラート、レポート、ログ管理、Web サイトアクティビティの追跡など、さまざまな情報源からのデータ収集を中心とする IT 運用業務に適しています。

IoT (モノのインターネット)

IoT の価値は、インターネットに接続された物理オブジェクトから生成される実用的なデータです。Apache Kafka は IoT から送信される膨大な量のデータを処理できるスケーラビリティを念頭に設計されています。

e コマース

e コマースは Apache Kafka を使用する事例として成長中の分野で、ページクリック、いいね、検索、注文、ショッピングカート、インベントリーなどのデータを処理できます。

ハブ

Red Hat 公式ブログ

Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。

すべての Red Hat 製品のトライアル

Red Hat の無料トライアルは、Red Hat 製品をハンズオンでお試しいただける無料体験版です。認定の取得に向けた準備をしたり、製品が組織に適しているかどうかを評価したりするのに役立ちます。

関連情報

InstructLab とは?をわかりやすく解説

InstructLab は、IBM ResearchとRed Hatが開発したオープンソース・プロジェクト。大規模言語モデル(LLM)を効率的にチューニングし、強化するためのプラットフォームです。

Docker とは?をわかりやすく解説

Docker は、オープンソースのコンテナ技術。複数の環境間で軽量なコンテナを作成し、その仮想環境でのアプリケーションの迅速なデプロイ、スケール、管理を可能にします。

CentOS とは?をわかりやすく解説

CentOSはオープンソースのLinux OSであり、CentOS Stream(RHELのアップストリーム開発基盤)とCentOS LinuxというLinuxディストリビューションを提供するコミュニティです。

オープンソースリソース

関連記事