Slide 1

Slide 1 text

Airflowはすごいぞ!

Slide 2

Slide 2 text

自己紹介 ● Hank Ehly (ハンク イーリー) ● ENECHANGE株式会社 ● qiita.com/hankehly

Slide 3

Slide 3 text

アジェンダ ● Airflowとは ● コンセプト qiita.com/hankehly

Slide 4

Slide 4 text

Airflowとは

Slide 5

Slide 5 text

Airflowとは > 概要 ● ワークフローを作成、実行、監視するためのプラットフォーム ● Python ● Airbnb、メルカリ、楽天、Tesla、Twitter、等々 ● マネージド版 ○ Amazon Managed Workflows for Apache Airflow (AWS) ○ Cloud Composer (GCP) ○ Astronomer qiita.com/hankehly

Slide 6

Slide 6 text

Airflowとは > 解決する問題 1. タスクの依存関係を明確にする qiita.com/hankehly ドキュメントやコメントで書く タスクがフローチャートとして表示される 2. エラーが起きた箇所を特定する 追跡できるようなログを出力する エラー表示のタスクをクリックしてログを確認する 3. タスクを同時に実行する multiprocessing や asyncio で頑張る 依存関係がないタスクは同時に実行される 4. 失敗しがちな処理を3回までリトライする リトライ用のデコレーター関数を使う タスクの「最大リトライ数」を設定する 等々… ワークフローの開発において様々な課題がある …

Slide 7

Slide 7 text

Airflowとは > 使い方のイメージ ワークフロー名 成功/失敗回数 実行頻度 qiita.com/hankehly

Slide 8

Slide 8 text

Airflowとは > 使い方のイメージ qiita.com/hankehly

Slide 9

Slide 9 text

Airflowとは > 使い方のイメージ N回目の実行のログ qiita.com/hankehly

Slide 10

Slide 10 text

Airflowとは > 使い方のイメージ qiita.com/hankehly

Slide 11

Slide 11 text

コンセプト

Slide 12

Slide 12 text

コンセプト > DAGs ● DAGとは「Directed Acyclic Graph」の略 ● ワークフロー/パイプライン ● 依存関係にあるタスクをどの順番で実行するか qiita.com/hankehly

Slide 13

Slide 13 text

コンセプト > Tasks ● DAGは、Taskで構成されている ● Python関数、Rubyのコンテナ、Bashスクリプト ● 状態を持つ ○ リトライ待ち ○ 実行中 ○ 失敗 / 成功 ○ 等々… qiita.com/hankehly Airflowで表示 a >> [b, c] >> d 開発者が書く

Slide 14

Slide 14 text

コンセプト > Operators ● 「タスクのテンプレート」 ● 用意されているものがたくさんある ○ BashOperator(Bashコマンドを実行) ○ EC2StartInstanceOperator(EC2インスタンスを起動する) ○ PythonOperator(Python関数を実行) ○ EmailOperator(Eメールを送信する) ○ DockerOperator(コンテナを実行) ○ SlackAPIPostOperator(Slackにメッセージを投稿する) start_instance = EC2StartInstanceOperator( task_id="start_instance", instance_id="***", ) Operatorの使い方 qiita.com/hankehly

Slide 15

Slide 15 text

コンセプト > Variables start_instance = EC2StartInstanceOperator( task_id="start_instance", instance_id=Variable.get("INSTANCE_ID"), ) qiita.com/hankehly

Slide 16

Slide 16 text

コンセプト > Logging UI から個別のタスクログが確認できる ● S3 ● CloudWatch ● Google Cloud Storage ● Elasticsearch qiita.com/hankehly

Slide 17

Slide 17 text

ご清聴ありがとうございました https://qiita.com/hankehly/items/1f02a34740276d1b8f0f