SlideShare a Scribd company logo
ワークフローエンジンdigdag研究し、
プロダクトF.O.Xに導入した
F.O.X moteki takahiro
目次
● プロダクトF.O.X説明
● 背景
● 課題
● 解決
● 設計
● digdagに関して
○ 比較 / 市場動向 / 運用して
Force Operation X(F.O.X)概要
レポーティング1
アプリ解析機能2
マーケット分析3
リターゲティング機能4
スマートフォン広告におけるマーケティング統合プラットフォーム(アドプラットフォーム)
F.O.X位置づけ
メディア連携数
1,300
計測端末数
1.2億台
導入アプリ数
6,500
F.O.X
サーバ
メディア
App Store スマホ
2. リダイレクト
1. 広告click
3. Install
4. 初回起動
5. 広告成果を連絡
F.O.X連携メディア
Facebook Mobile
Measurement Partner
Twitter Official
Partner
App Attribution
Partner
目次
● プロダクトF.O.X説明
● 背景
● 課題
● 解決
● 設計
● digdagに関して
○ 比較 / 市場動向 / 運用して
背景: F.O.Xシステム全体像
計測サーバ
データ収集 処理(ETL/集計) 利用/分析
保存
ストレージ
分析アプリ
ケーション
計測ログ
ストレージ ストレージ
データパイプライン
背景: F.O.Xシステム規模感
データ収集
8
最大30万リク
エスト/秒
処理(ETL/集計/保存) 分析/可視化
計測サーバ 休眠・復旧分析
アクション(イベント)分析
KPI分析
国別分析
ユーザー分析売上分析
プラットフォーム
総UU: 15億~
DAU: 7億~
query: 数千
/day(batch)
ストレージ
total data : 1PB
RDB
弊社 分析アプリケーション
目次
● プロダクトF.O.X説明
● 背景
● 課題
● 解決
● 設計
● digdagに関して
○ 比較 / 市場動向 / 運用して
案外難しい処理(ETL)バッチ開発/管理
課題
オペレーションが複雑
状態確認/管理しにくい
追加の開発コスト高
課題(1): 状態確認/調査しにくい
svr001サーバのcron svr002サーバのcron
… svr011サーバのcron … svr0112サーバのcron
①バッチ
②バッチ
バッチ③
バッチ④
svr001サーバの②が動いてる間は①止まる, ③が動いたら② / ④は動かす
バッチ数百あったら??? -> 今何が動いていて、何が止まってるのかわからない
バッチ依存(依存関係)と呼ぶ
課題(2): オペレーションが複雑
①バッチ
②バッチ
③バッチ
④バッチ
⑤バッチ
⑥バッチ
⑦バッチ
②障害発生
④障害発生
⑥障害発生
step1) AAAをkill
step2) BBB.shの実行引数変えてCCCまで実行
….
step8) …..
step1) AAAを動かしたままBBBをkill
step2) AAAをkill
….
step12) …..
step1) CCCを残り3回手動で実行
...
step5) DDDを実行
↑ バッチ7本の例...これがバッチ数百あったら???
最悪case = バッチの状態 × バッチ数 -> 1千リカバリ手順??
リカバリ手順
課題(3): 追加の開発コスト高
● アラート発行をプログラム開発...
○ バッチコケた/バッチが時間内に終わらないアラート...
● リトライ制御をプログラム開発...
○ リトライ方式? リトライ回数?...面倒
● バッチインタフェース開発
○ リトライ時を考慮してゴリゴリ変数計算...
● データロード、S3データ取得 ETL基本処理の開発
○ DAO、JDBCロジック書いて... 面倒
長い道のり...
ワークフローエンジン
digdag導入
digdagとは?
依存関係が複雑な大量ジョブを良い感じにしてくれる
TresureData開発のOSS
● xxx.dig拡張子のファイルにジョブ定義をスゴイyml記載し実行
● スゴイyml javascript / python / rubyも書ける
● 実行 Web-UIとCUIで可能
スゴイyml(例
digdagの機能とは?
実行状態
可視化
アラート
実行制御
エラー
制御
バッチ
開発支援
バッチ
スケールサポート
高速化/
最適化
digdagどう使う?
xxx.dig
ローカルPCで
dig編集
digdag-devサーバ
デプロイ/実行
digdag-devサーバ上
で実行
xxx.dig xxx.dig
ローカルPC実行
ローカルPCで
dig編集
digdag-devサーバで
dig編集
デプロイして
digdag-devクライアン
ト実行
xxx.dig
ローカルPCで
dig編集
開発時
サクッと試した
いくらい
digdagアーキテクチャ設計/構築
digdagの検証
やったとこ(工数3~4ヶ月)
バッチ数 数千/day
データパイプライン設計/ETL置き換え
目次
● プロダクトF.O.X説明
● 背景
● 課題
● 解決
● 設計
● digdagに関して
○ 比較 / 市場動向 / 運用して
解決
オペレーションが簡素
状態確認/管理しやすい
追加の開発コスト低
解決(1): 状態確認/調査がしやすい
ジョブどこでコケ
たのか? わかる
コケたジョブの
ログにたどり着
ける
今何が動いてる
か? わかる
demo
解決(2): オペレーションが簡素
ジョブがコケた
コケたジョブのみ
全部再実行
全ジョブの再実
行
demo
解決(3): 追加の開発コスト低
並列実行
アラート実装
javascriptによ
る変数計算
これだけ
リトライ制
御
豊富なオペレー
タで開発レス
demo
目次
● プロダクトF.O.X説明
● 背景
● 課題
● 解決
● 設計
● digdagに関して
○ 比較 / 市場動向 / 運用して
設計: アーキテクチャ
複数サーバで
バッチ分散
クラスタ
設計: 耐障害性
● SPOFは0
● PostgreSQL以外はス
ケールアウト可
● 高可用性に向けて
○ task graceful
shutdown / restart
○ task permissive対応
○ task logのS3化
設計: ワークフロー
● ディレクトリ分けすると思わ
ぬ罠があるので構成をテン
プレート化
● 新規に取り組みやすい
● プロジェクトのバッティング
防止
運用: 効率化/サポート
デプロイテンプレート
ansibleロール
docbaseと動作再現可能なsample dig
目次
● プロダクトF.O.X説明
● 背景
● 課題
● 解決
● 設計
● digdagに関して
○ 比較 / 市場動向 / 運用して
他ツールと概要比較
type 言語型 GUI型 GUI分散型 DSL型 特化型 イベント型
tool Airflow /
Luigi
Rundeck /
Jenkins
Chronos /
Dkros
Digdag / Patriot /
Azkaban
Glue Job /
CloudCompo
ser / Argo
Stack Storm
pros * ワークフロー
の自由度高い
* 簡素なワー
クフロー構築
ラク
* 簡素なワーク
フロー構築ラク
* 性能スケール
する
* 再現性がある
* version管理出来
る
* 自由度はGUI型
>DSL型<言語型
* 特定条件下で
親和性が高い
* イベントドリブ
ンなワークフ
ロー構築可
cons * 簡素なもので
もプログラミン
グ必要
* 移植性低い
* version管理
しにくい
* 性能スケー
ルしにくい
* 移植性低い
* version管理し
にくい
* 定形処理以外の
動的ワークフロー
構築面倒
* マルチテナン
トしにくい
* observavility
的な情報少ない
市場動向
● 日本Web系 digdag or airflow多い印象
○ 内製ワークフローエンジンもちらほや(kuroko2 / patriot)
● 日本SI系 JP1多い印象
● 海外はairflowが多く、digdagはほとんど使われてない印象
● 特化型のGlue Job / Cloud Composer / Argoがどう市場で伸び
ていくか気になる
digdagに関して: 運用して(要望系)
● 動的な依存関係が組みにくい
● requireオペレータ利用時、謎にCPU負荷上がる
● 各種オペレータの細かい設定
○ 例) s3_waitオペレータのタイムアウト欲しい
● WEB-UIもう少しリッチになると...
とはいえ完成度高い
おわり

More Related Content

PDF
REST API のコツ
PDF
FridaによるAndroidアプリの動的解析とフッキングの基礎
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
PPTX
Dockerからcontainerdへの移行
PPTX
DeNA の AWS アカウント管理とセキュリティ監査自動化
PDF
Mavenの真実とウソ
PDF
Ansibleで始めるインフラ構築自動化
REST API のコツ
FridaによるAndroidアプリの動的解析とフッキングの基礎
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
Dockerからcontainerdへの移行
DeNA の AWS アカウント管理とセキュリティ監査自動化
Mavenの真実とウソ
Ansibleで始めるインフラ構築自動化

What's hot (20)

PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
PDF
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
PDF
AWS Black Belt Online Seminar AWS Amplify
PDF
Maven基礎
PDF
ヤフー社内でやってるMySQLチューニングセミナー大公開
PDF
PostgreSQL 15の新機能を徹底解説
PDF
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
PPTX
LINEのMySQL運用について 修正版
PPTX
入門!Jenkins
PPTX
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
PDF
Dapr on Kubernetes
PDF
怖くないSpring Bootのオートコンフィグレーション
PDF
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PDF
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
PDF
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
PPTX
初心者向けMongoDBのキホン!
PPTX
[社内勉強会]ELBとALBと数万スパイク負荷テスト
PDF
20190514 AWS Black Belt Online Seminar Amazon API Gateway
PDF
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
AWS Black Belt Online Seminar AWS Amplify
Maven基礎
ヤフー社内でやってるMySQLチューニングセミナー大公開
PostgreSQL 15の新機能を徹底解説
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
LINEのMySQL運用について 修正版
入門!Jenkins
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
Dapr on Kubernetes
怖くないSpring Bootのオートコンフィグレーション
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
アーキテクチャから理解するPostgreSQLのレプリケーション
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
初心者向けMongoDBのキホン!
[社内勉強会]ELBとALBと数万スパイク負荷テスト
20190514 AWS Black Belt Online Seminar Amazon API Gateway
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
Ad

Similar to [社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入 (20)

PPTX
F.O.Xを支える技術
PPT
スマートフォンPKG開発成功
PDF
LocalFolio運用のご提案
PDF
Firefox OS 1.0 Application Development
PDF
中国におけるアプリマーケ最新動向
PDF
ReactとImmutable.jsで関数型を体験してみて思ったこと #scripty06
PDF
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
PPT
アンドロイド勉強会第二回 080525 3
PDF
海外向けスマホアプリプロモーションサービスについて
PPTX
AppPot製品概要
PDF
【媒体資料】AppDriver
PDF
インターン研修 自己紹介スライド
PDF
ドコモオープンイノベーションの取り組みと提供APIのIoT展開について
PPT
統合キャンペーン管理プラットフォーム概要
PDF
Html5で加速するモバイルアプリ開発
PPTX
20130417 マイクロソフト研究
PDF
Oprol_Engine_pitch_v1.1_1min
PDF
アプリリリース後に後悔しないための20のこと
PDF
Facebook事例&サービス紹介(2010.9.16セミナープレゼン資料)
F.O.Xを支える技術
スマートフォンPKG開発成功
LocalFolio運用のご提案
Firefox OS 1.0 Application Development
中国におけるアプリマーケ最新動向
ReactとImmutable.jsで関数型を体験してみて思ったこと #scripty06
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
アンドロイド勉強会第二回 080525 3
海外向けスマホアプリプロモーションサービスについて
AppPot製品概要
【媒体資料】AppDriver
インターン研修 自己紹介スライド
ドコモオープンイノベーションの取り組みと提供APIのIoT展開について
統合キャンペーン管理プラットフォーム概要
Html5で加速するモバイルアプリ開発
20130417 マイクロソフト研究
Oprol_Engine_pitch_v1.1_1min
アプリリリース後に後悔しないための20のこと
Facebook事例&サービス紹介(2010.9.16セミナープレゼン資料)
Ad

More from Takahiro Moteki (13)

PDF
[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話
PDF
[AWSセミナーマイグレーション事例祭20190409]分析環境をAWS_Athenaに移行_その後1年間の運用課題を振り返る
PDF
[2018bcu30]1年半もかけてしまったビッグデータ環境のリプレイス
PDF
[社内共有会]AWS NAT-GW導入と構成変化 2年運用して 同時接続数 秒間100->10万へ成長
PDF
[F.O.XMeetup#2]インフラ業務を開発エンジニアへ移譲して_2年間の軌跡_
PDF
[JAWSBigData#11]Cloudera on AWSと Amazon EMRを両方本番運用し 3つの観点から比較してみる
PDF
[社内勉強会]サクっと業務でつくったログ/データ調査環境(re:dash ☓ AWS Athena ☓ embulk)
PDF
[社内勉強会]計算機工学のスケジューリングを現実世界に活かせないだろうか(ネタ)
PPTX
[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化
PDF
[serverlessconf2017]FaaSで簡単に実現する数十万RPSスパイク負荷試験
PDF
[社内合同勉強会]インフラ業務を開発エンジニアへ移譲して 移譲前-移譲後-そして今-
PDF
[社内勉強会]エンジニアな僕の情報収集法
PPTX
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話
[AWSセミナーマイグレーション事例祭20190409]分析環境をAWS_Athenaに移行_その後1年間の運用課題を振り返る
[2018bcu30]1年半もかけてしまったビッグデータ環境のリプレイス
[社内共有会]AWS NAT-GW導入と構成変化 2年運用して 同時接続数 秒間100->10万へ成長
[F.O.XMeetup#2]インフラ業務を開発エンジニアへ移譲して_2年間の軌跡_
[JAWSBigData#11]Cloudera on AWSと Amazon EMRを両方本番運用し 3つの観点から比較してみる
[社内勉強会]サクっと業務でつくったログ/データ調査環境(re:dash ☓ AWS Athena ☓ embulk)
[社内勉強会]計算機工学のスケジューリングを現実世界に活かせないだろうか(ネタ)
[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化
[serverlessconf2017]FaaSで簡単に実現する数十万RPSスパイク負荷試験
[社内合同勉強会]インフラ業務を開発エンジニアへ移譲して 移譲前-移譲後-そして今-
[社内勉強会]エンジニアな僕の情報収集法
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本

[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入