Jump to section

Apache Kafka とは

URL をコピー

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

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

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

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

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

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

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

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

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

 

IT 運用

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

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

Gartner によると、2020 年までに、IoT デバイスは 200 億台以上になると予測されています。IoT の価値は、この膨大な量のセンサーから生成される実用的なデータです。Apache Kafka は IoT から送信される膨大な量のデータを処理できるスケーラビリティを念頭に設計されています。

e コマース

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

Kubernetes は Apache Kafka にとって理想的なプラットフォームです。開発者には Kafka アプリケーションをホストするスケーラブルなプラットフォームが必要で、その回答が Kubernetes です。

Apache Kafka と同様に、Kubernetes も開発プロセスの俊敏性向上に貢献します。Google のクラウドサービスを支えるテクノロジーである Kubernetes は、コンテナ化アプリケーションを管理するオープンソース・システムであり、これを使うことで、コンテナに関連する手動プロセスの多くが不要になります。Apache Kafka を Kubernetes で使用すると、Apache Kafka のデプロイ、構成、管理、使用が最適化されます。

Kafka と Kubernetes を組み合わせると、Kafka のすべてのメリットに加えて、Kubernetes の特長であるスケーラビリティ、高可用性、移植性、デプロイの容易性も活用できます。

Kubernetes のスケーラビリティは自ずと Kafka を補完します。Kubernetes では、シンプルなコマンドでリソースをスケールアップまたはスケールダウンできます。または、必要に応じて使用量をベースに自動的にスケーリングして、コンピュート、ネットワーク、ストレージのインフラストラクチャを最適に利用できます。この機能によって、限りのあるリソースプールを Apache Kafka と他のアプリケーションで共有させることが可能になります。また、Kubernetes を使えば、Apache Kafka をインフラストラクチャ・プロバイダーやオペレーティングシステムに移植することもできます。Kubernetes によって、Apache Kafka クラスタをオンサイトおよびパブリック、プライベート、またはハイブリッドクラウドにまたがらせ、異なるオペレーティングシステムを使用することができます。

Kafka を無料で試す

ストリームベースのアプリケーション向けの Kafka サービスで、完全にホストおよび管理されている Red Hat OpenShift Streams for Apache Kafka をご利用ください。

関連資料

記事

統合 (インテグレーション) とは

統合に関する詳細な情報をお探しですか?デジタル・トランスフォーメーションとは何か、どのように導入できるか、そして、オープンソースがどのような相乗効果をもたらすのかを説明します。

記事

Apache Kafka とは

Apache Kafka は分散データストリーミング・プラットフォームで、レコードのストリームをリアルタイムで公開、サブスクライブ、保存、処理できます。

記事

API とは

API はアプリケーション・プログラミング・インタフェースの略であり、アプリケーション・ソフトウェアを構築および統合するための一連の定義とプロトコルです。

統合 (インテグレーション) の詳細はこちら

製品

Red Hat Integration

包括的な統合 (インテグレーション) およびメッセージング・テクノロジー群。

Red Hat Cloud Services

ハイブリッドクラウドのエクスペリエンスを効率化するホスト型およびマネージド型のプラットフォーム、アプリケーション、データサービスが含まれます。これにより、クラウドネイティブ・アプリケーションの提供に伴う運用コストと複雑さを軽減できます。

Red Hat Runtimes

クラウドネイティブ・アプリケーションの開発とメンテナンスに役立つ製品、ツール、コンポーネン​トを 1 つのセットとしてまとめたものです。Red Hat AMQ、Red Hat Data Grid、Red Hat JBoss® Enterprise Application Platform、Red Hat JBoss Web Server、 Red Hat の OpenJDK ビルド、Red Hat の Quarkus ビルド、クラウドネイティブ・ランタイム一式、Migration Toolkit for Applications、シングルサインオンおよびランチャーサービスが含まれます。

Red Hat Process Automation

ビジネスプロセスと意思決定をインテリジェントに自動化するための製品群。Red Hat Decision Manager、Red Hat Process Automation Manager、および Red Hat Runtimes が含まれます。

リソース

トレーニング

無料のトレーニングコース

Red Hat Agile Integration Technical Overview

Illustration - mail

その他の関連コンテンツ

無料のニュースレター「Red Hat Shares」(英語) では、注目の IT トピックスに関するコンテンツをお届けしています。