SlideShare a Scribd company logo
3分で作る
ストリーム処理基盤
~Kafka + Flink on Docker編~
ウェブニウム株式会社
取締役 CTO 田中康一
自己紹介
名前 田中 康一
所属 ウェブニウム株式会社
役職 取締役CTO
職能 ソウトウェアエンジニア(TypeScript, JavaScript, PHP, Java, etc...)
インフラエンジニア(ミドルウェア)
Twitter @mugeso
今回作るもの
ストリーム処理基盤
INPUT
OUTPUT
groupId: group1
groupId: group2
Apache Kafka
Producer
Producer
Producer
topicA topicB
Consumer
Consumer
Consumer
Broker
Apache Flink
Low latencyHigh Performance
Stateful and Fault-
tolerant
Large scale
VS Apache Storm
出典: https://flink.apache.org/introduction.html
Dockerでの構築
それぞれのイメージ
● Kafka
○ https://hub.docker.com/r/wurstmeister/kafka/
○ 非公式
● Flink
○ https://hub.docker.com/_/flink/
Kafka構築時の注意点
ローカルでシングルブローカー用のサンプル内の、
environment:
KAFKA_ADVERTISED_HOST_NAME: 192.168.99.100
のIPアドレスはdocker engineが動作しているホストマシンのIPアドレスである必
要があります。

More Related Content

What's hot

Introduction of skippbox
Introduction of skippboxIntroduction of skippbox
Introduction of skippboxGo Chiba
 
Gitlab-CIを活かして自動化してみよう
Gitlab-CIを活かして自動化してみようGitlab-CIを活かして自動化してみよう
Gitlab-CIを活かして自動化してみようYoshiyuki Nakahara
 
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Shogo Kawahara
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツールtotty jp
 
開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみたpyar6329
 
最新追従 バリバリの NetCommons3 紹介
最新追従 バリバリの NetCommons3 紹介最新追従 バリバリの NetCommons3 紹介
最新追従 バリバリの NetCommons3 紹介Mitsuru Mutaguchi
 
Arukas meet Mesos/Marathon
Arukas meet Mesos/MarathonArukas meet Mesos/Marathon
Arukas meet Mesos/MarathonShuji Yamada
 
Net commons3 開発環境
Net commons3 開発環境Net commons3 開発環境
Net commons3 開発環境Takako Miyagawa
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発Yuta Matsumura
 
Visual studio 14 CTP2 概要
Visual studio 14 CTP2 概要Visual studio 14 CTP2 概要
Visual studio 14 CTP2 概要Yoshihisa Ozaki
 
VagrantからDockerに開発環境を移行した時の話
VagrantからDockerに開発環境を移行した時の話VagrantからDockerに開発環境を移行した時の話
VagrantからDockerに開発環境を移行した時の話Daijiro Abe
 
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE辰徳 斎藤
 
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方Yuta Matsumura
 
Capistranoで自動デプロイ
Capistranoで自動デプロイCapistranoで自動デプロイ
Capistranoで自動デプロイtoyoshi
 
ビルドサーバで使うDocker
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDockerMasashi Shinbara
 
mocloud カスタムDockerイメージ ハンズオン
mocloud カスタムDockerイメージ ハンズオンmocloud カスタムDockerイメージ ハンズオン
mocloud カスタムDockerイメージ ハンズオンYukihiko SAWANOBORI
 
WebAssemblyが切り拓くフロントエンドWeb開発の未来
WebAssemblyが切り拓くフロントエンドWeb開発の未来WebAssemblyが切り拓くフロントエンドWeb開発の未来
WebAssemblyが切り拓くフロントエンドWeb開発の未来Jun-ichi Sakamoto
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするRyo Adachi
 
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Alibaba Cloud で Docker を動かしてみよう [Hands-on]Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Alibaba Cloud で Docker を動かしてみよう [Hands-on]Masafumi Noguchi
 

What's hot (20)

Introduction of skippbox
Introduction of skippboxIntroduction of skippbox
Introduction of skippbox
 
Gitlab-CIを活かして自動化してみよう
Gitlab-CIを活かして自動化してみようGitlab-CIを活かして自動化してみよう
Gitlab-CIを活かして自動化してみよう
 
ReactiveSignalR
ReactiveSignalRReactiveSignalR
ReactiveSignalR
 
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
 
開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた
 
最新追従 バリバリの NetCommons3 紹介
最新追従 バリバリの NetCommons3 紹介最新追従 バリバリの NetCommons3 紹介
最新追従 バリバリの NetCommons3 紹介
 
Arukas meet Mesos/Marathon
Arukas meet Mesos/MarathonArukas meet Mesos/Marathon
Arukas meet Mesos/Marathon
 
Net commons3 開発環境
Net commons3 開発環境Net commons3 開発環境
Net commons3 開発環境
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 
Visual studio 14 CTP2 概要
Visual studio 14 CTP2 概要Visual studio 14 CTP2 概要
Visual studio 14 CTP2 概要
 
VagrantからDockerに開発環境を移行した時の話
VagrantからDockerに開発環境を移行した時の話VagrantからDockerに開発環境を移行した時の話
VagrantからDockerに開発環境を移行した時の話
 
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
 
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
 
Capistranoで自動デプロイ
Capistranoで自動デプロイCapistranoで自動デプロイ
Capistranoで自動デプロイ
 
ビルドサーバで使うDocker
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDocker
 
mocloud カスタムDockerイメージ ハンズオン
mocloud カスタムDockerイメージ ハンズオンmocloud カスタムDockerイメージ ハンズオン
mocloud カスタムDockerイメージ ハンズオン
 
WebAssemblyが切り拓くフロントエンドWeb開発の未来
WebAssemblyが切り拓くフロントエンドWeb開発の未来WebAssemblyが切り拓くフロントエンドWeb開発の未来
WebAssemblyが切り拓くフロントエンドWeb開発の未来
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
 
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Alibaba Cloud で Docker を動かしてみよう [Hands-on]Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
 

3分で作るストリーム処理基盤~kafka+flink on docker編~

Editor's Notes

  1. 今回構築するのはストリーム処理基盤です。 ストリーム処理基盤は絶えず入力されるデータをリアルタイムに処理し続けるための仕組みです。
  2. 今回の構成では、ブロードキャストもできるメッセージキューシステムであるApache Kafkaを利用します。 KafkaではKafka本体をbroker、メッセージ送信元をproducer、受信先をconsumerと呼びます。 Producerはメッセージをtopicに対して送信しすることができ、一つのborkerで複数のtopicを扱うことができます。 ConsumerはgroupIdと呼ばれるIDをもち、同一のグループごとに通常のメッセージキューのような振る舞いをします。 一方で、グループが異なる場合は同じメッセージがグループそれぞれに同時に配信されます。
  3. Apache Flinkはリアルタイムストリーム処理を行うプロダクトです。 HaddopやStorm、Sparkなどの処理基盤はバッチ処理から発展しているのに対して、Flinkはストリーム処理を前提に設計開発されているため、 ストリーム処理においてハイパフォーマンスでローレイテンシーを実現しています。また、ステートフルに処理を行うことにより堅牢性も実現しています。 実処理の実装はJavaまたはScalaで行います。
  4. こちらは公式サイトに掲載されている、ランダムデータのカウント処理の性能をApache Stromと比較したグラフになります。 FlinkがStormに対して高スループットであることが確認できます。
  5. KafkaとFlinkのイメージはdocker hubに用意されています。 また、それぞれを構成する際のdocker-compose.ymlが用意されているので、これをコピペすれば簡単に構築できます。