1.2K Views
July 28, 17
スライド概要
https://connpass.com/event/61546/
2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp
Apache NiFi の紹介 ヤフー株式会社 データ&サイエンスソリューション統括本部 杉山 朋広
自己紹介 杉山 朋広 データ&サイエンスソリューション統括本部 データプラットフォーム本部開発2部 データフローチーム • ヤフーのデータ基盤にデータフローシステムの導入を検討中 • 社内のデータ基盤利用サービスを対象にデータフロー導入プロジェクトを推進中 • Apache NiFiをはじめとする、データフローツールの評価・検証 2
アジェンダ Apache NiFiの紹介 なぜデータフローが必要か? 既存のインフラとの関係
アジェンダ Apache NiFiの紹介 なぜデータフローが必要か? 既存のインフラとの関係
Apache NiFi とは データの処理と配送のための 簡単、パワフル、且つ信頼性が高いシステム 5
Apache NiFi とは Hadoop, AWS, RDB, KVS だけでなくKafkaやMQ、 Firehoseなど、多彩なデータソースをサポート 6
データフローシステムの台頭 OSSだけでなくクラウドベンダーもデータフローを提供 OSS系 7 クラウド系
よく聞かれる声 総じてデータフローの必要性があまり理解されていない感 NiFiって何に使えるんですか? どれくらいスケールするの? 大きいデータを転送できますか? スループットはどれくらいですか? OozieやAirflowと何がちがうの? これあったらKafkaいらない? 8
アジェンダ Apache NiFiの紹介 なぜデータフローが必要か? 既存のインフラとの関係
データフローとSOA Apache NiFi → Dataflow → Flow-based Programming(FBP) Service-oriented architecture(SOA) にフィットしているらしい Now though there are a number of active and rapidly evolving movements making dataflow a lot more interesting and a lot more vital to the success of a given enterprise. These include things like; Service Oriented Architecture, the rise of the API, Internet of Things, and Big Data. (https://nifi.apache.org/docs.html) FBP exhibits "data coupling", described in the article on coupling as the loosest type of coupling between components. The concept of loose coupling is in turn related to that of service-oriented architectures, and FBP fits a number of the criteria for such an architecture, albeit at a more fine-grained level than most examples of this architecture. (https://en.wikipedia.org/wiki/Flow-based_programming) 10
従来型SOA サイロ化されたコンポーネントでサービスを提供 App App App Application Server 11 Database
従来型SOA データフローは設計書に書くのが一般的 DFD App App App Application Server 12 Database
従来型SOA データフローの変更は、システムの変更となり設計やテスト・移行が発生 する大きなイベント 設計 DFD ← 開発 DFD テスト App 移行 App App App Application Server 13 Database
マイクロサービス 柔軟で迅速な変更に対応するために、小規模なサービスを組み合わせ て一つのサービスを提供する手法 14
マイクロサービス 柔軟で迅速な変更に対応するために、小規模なサービスを組み合わせ て一つのサービスを提供する手法 15
マイクロサービス 柔軟で迅速な変更に対応するために、小規模なサービスを組み合わせ て一つのサービスを提供する手法 16
マイクロサービス マイクロサービス化が進行すると、従来の手法のオーバーヘッドが問題 となってくると考えられる DFD DFD 17 DFD DFD DFD
データフローの機能 Flow-based Programmingの概念に則った処理ノードやキューを提供 Flow File システム内を移動するオブジェクトの実体 (Information Packet) Processor (Black Box) データの転送や変換などの処理を行う Connection (Bounded Buffer) Processor間のリンケージを提供しキューとして機能する FlowController (Scheduler) Processor間のFlowFile交換のためのブローカー ※()内はFBPでの表現 18
データフローの適用 従来、人手による設計やシステム変更を代替えしマイクロサービスの機 能追加や変更を迅速化 Dataflow System Connection P 19 P P P P P P P P P Flow Controller
データフローにより得られるもの マイクロサービスの発展とともに顕著化した 新たな課題を解決するための新たな機能 20 迅速な追加・変更 • • • 設計書にしかなかったデータフローをソフトウェアで管理 予め用意されたProcessorを使うことでロード処理の作成が不要に 簡単な操作で変更できるリンケージ(Connection) 一貫したフロー制御 • • • フロー制御機能の提供 キュー制御機能の提供 障害時のリカバリ・再送機能の提供 ガバナンスの確立 • • • Processor, FlowFile, Connectionなどに対する細やかな権限設定 FlowFileやキューのトラッキング(Data Provenance ~ データの由来) スキーマの管理機能(Avro/HWX Schema Registory)
アジェンダ Apache NiFiの紹介 なぜデータフローが必要か? 既存のインフラとの関係
ワークフローエンジンとの関係 ひとつのサービスの中のジョブネットはワークフロー制御すべき データフローとワークフローは共存する Dataflow System Connection P P Job A Job E Job C Job B Job Network X 22 Job D Workflow System Job F Job Network Y
メッセージキューとの関係 データフローのキューで置き換え可能だが、性能面で好ましくない 性能に特化したコンポーネントは複数のデータフローで共用も可能 System1 P P P P P P P Kafka ActiveMQ ..etc P P P System2 23
まとめ 24 • Apache NiFiはデータフローオーケストレーションソフト ウェアのひとつ • マイクロサービスの発展に伴って顕著化した 新しい課題を解決するための新しいツール • 既存のワークフローエンジンやメッセージキューを置き換 えるものではない
ご清聴ありがとうございました