Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Airflow 2.0 Migrationガイド
Airflow Study #1 2021.06.23 Katsunori Kanda @potix2
サイトリライアビリティエンジニア

2018年 電通デジタル入社



Twitter/GitHub @potix2 

去年書いたAirflow2.0に関する記事
「SPOFとはもう呼ばせない!Airflow 2.0で生ま
れ変わったHAスケジュ...
この発表について
● 対象
○ Airflow2.0への移行を考えている人
● 発表のゴール
○ 移行作業で何をやるのかイメージを掴む
○ 環境による移行作業の違いを知る
○ 移行チェックスクリプトの動かし方を学ぶ
2021年6月末で1.10系が
EOLを迎えます
突然ですが、
Airflowのバージョンライフサイクル
Version Current
Patch/Minor
State First
Release
Limited
Support
EOL/Termin
ated
2 2.1.0 Supported Dec ...
マネージドAirflowの2.0への対応状況
● Cloud Composer/MWAAともに2系を利用可能な状況
● Cloud Composerは2.0へのブリッジリリースとなる 1.10.15をサポートしている
環境 1.10系 2系
Cl...
環境別移行難易度
環境 難易度 補足
Cloud Composer しっかりとした移行ガイドがある
MWAA ブリッジリリースを経由できない
その他(K8S Executor) Kubernetes Executorの大幅な設定変
更がある
そ...
公式移行手順の解説
1. (Python2系を使っている場合)Python3系へアップデート
2. Airflow1.10.15へアップグレード
3. 移行チェックスクリプトの実行
4. OperatorのImportパスを書き換え
5. DAG の互換性問題を解決...
● Python2系はサポート対象外になる
● 3系(3.6,3.7,3.8)への移行が必要
○ Cloud Composerでは3.6へ
○ MWAAでは3.7へ
○ 3.9はまだサポートされていないので注意
1. Python3系へのアップ...
● 1.10.15は2.0へのブリッジリリースという位置付け
● 2.0に含まれるさまざまな機能がバックポートされている
○ 各種プロバイダー(オペレーターなど)
○ Airflow2.0 CLIコマンド
○ 2.0互換のKubernetesEx...
3. 移行チェックスクリプトの実行
● 移行チェックスクリプトでチェックされるもの
○ airflow.cfgの互換性
○ DAGの互換性
● 移行チェックスクリプトでチェックされないもの
○ Airflow CLIを使ったスクリプト
4. OperatorのImportパスを書き換え
Airflow本体に含まれていたOperatorが外部パッケージになった
from airflow.operators.docker_operator import DockerOperator...
5. DAGの互換性問題を解決する
● template fieldsにおける未定義変数の扱い
● KubernetesPodOperatorの扱い
● dag_run_conf_override_paramsのデフォルト値
● Legacy U...
● airflow.cfgを修正していく
● 非推奨となった設定を取り除く
● Kubernetes Executorの設定を書き換える
○ Base Pod Configurationをairflow.cfgから読み取らなくなった (重要)
○ 代...
7. Airflow2.0にアップデートする
● すべてのDAGを停止する
● apache-airflow2.0をインストールする
● airflow db upgradeを実行する
この手順は既存の設定や実行履歴を引き継ぎたい場合には必要だが、
...
マネージドAirflowの2.0への移行
環境 概要
Cloud Composer 1. 1.10.15にアップデート
2. DAGの互換性問題を解決する
3. CLIの互換性問題を解決する
4. 2.0系にアップデート
MWAA 1. ローカル...
移行チェックスクリプトの実
行(DEMO)
DEMO: SimpleHttpOperatorを2.0に移行する
デモファイル一式: https://github.com/potix2/airflow-migration-example
● 1.10.15で実行確認する
● 移行チェックス...
db:
postgres:9.6のイメージ
docker compose
構成
webserver
scheduler
db
init
airflow db initを実行
webserver/scheduler/init:
apache/air...
DEMO
まとめ
● Airflow2.0への移行手順の概要を説明しました
● マネージド環境ごとの移行手順の違いを解説しました
● 移行チェックスクリプトの動かし方を説明しました
○ サンプルコードはGitHubで公開しています
イベント告知
(第9回)Tech x Marketing Meetupを開催します!
6/25(金) 17:00〜
・広告配信システムにおけるリアーキテクティング
・トラッキング規制と代替技術の最新情報まとめ
https://techxmark...
Appendix:
● 過去の発表
○ 「Airflowを広告データのワークフローエンジンとして運用してみた話 」2020.01.24 大規模データ
集積/分析基盤 Meet-up!
○ 「AWSを活用した少人数チームためのコンテナデプロイ戦略 ...
● Breezeを使って1.10.15の環境を構築する方がdocker composeを使うより簡単
なはずだが、うまく動かなかった
● バックエンドがMySQL5.6を使っている場合、5.7以上にアップデートが必要(公
式の移行手順には書いて...
You’ve finished this document.
Download and read it offline.
Upcoming SlideShare
What to Upload to SlideShare
Next
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

Share

Airflow 2.0 migration ガイド

Download to read offline

Airflow Study #1にて発表した資料です。Airflow2.0へ移行を考えている方に向けて公式の移行手順の解説とクラウド環境別の移行手順を解説しています。
https://finatext.connpass.com/event/214704/

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Airflow 2.0 migration ガイド

  1. 1. Airflow 2.0 Migrationガイド Airflow Study #1 2021.06.23 Katsunori Kanda @potix2
  2. 2. サイトリライアビリティエンジニア
 2018年 電通デジタル入社
 
 Twitter/GitHub @potix2 
 去年書いたAirflow2.0に関する記事 「SPOFとはもう呼ばせない!Airflow 2.0で生ま れ変わったHAスケジューラー」 神田 勝規
 (かんだかつのり)

  3. 3. この発表について ● 対象 ○ Airflow2.0への移行を考えている人 ● 発表のゴール ○ 移行作業で何をやるのかイメージを掴む ○ 環境による移行作業の違いを知る ○ 移行チェックスクリプトの動かし方を学ぶ
  4. 4. 2021年6月末で1.10系が EOLを迎えます 突然ですが、
  5. 5. Airflowのバージョンライフサイクル Version Current Patch/Minor State First Release Limited Support EOL/Termin ated 2 2.1.0 Supported Dec 17, 2020 Dec 2021 TBD 1.10 1.10.15 Limited Support Aug 27, 2018 Dec 17, 2020 June 2021 ref. https://github.com/apache/airflow#version-life-cycle EOLになると(コミュニティからは、)セキュリティ FIXも出なくなる
  6. 6. マネージドAirflowの2.0への対応状況 ● Cloud Composer/MWAAともに2系を利用可能な状況 ● Cloud Composerは2.0へのブリッジリリースとなる 1.10.15をサポートしている 環境 1.10系 2系 Cloud Composer(GCP) 1.10.15 2.0.1 MWAA(AWS) 1.10.12 2.0.2
  7. 7. 環境別移行難易度 環境 難易度 補足 Cloud Composer しっかりとした移行ガイドがある MWAA ブリッジリリースを経由できない その他(K8S Executor) Kubernetes Executorの大幅な設定変 更がある その他(K8S以外) 公式の手順通り
  8. 8. 公式移行手順の解説
  9. 9. 1. (Python2系を使っている場合)Python3系へアップデート 2. Airflow1.10.15へアップグレード 3. 移行チェックスクリプトの実行 4. OperatorのImportパスを書き換え 5. DAG の互換性問題を解決する 6. 環境設定の互換性問題を解決する 7. Airflow2.0にアップデートする 2.0への移行手順 Ref. https://airflow.apache.org/docs/apache-airflow/stable/upgrading-to-2.html
  10. 10. ● Python2系はサポート対象外になる ● 3系(3.6,3.7,3.8)への移行が必要 ○ Cloud Composerでは3.6へ ○ MWAAでは3.7へ ○ 3.9はまだサポートされていないので注意 1. Python3系へのアップデート
  11. 11. ● 1.10.15は2.0へのブリッジリリースという位置付け ● 2.0に含まれるさまざまな機能がバックポートされている ○ 各種プロバイダー(オペレーターなど) ○ Airflow2.0 CLIコマンド ○ 2.0互換のKubernetesExecutor 2. Airflow1.10.15へアップデート
  12. 12. 3. 移行チェックスクリプトの実行 ● 移行チェックスクリプトでチェックされるもの ○ airflow.cfgの互換性 ○ DAGの互換性 ● 移行チェックスクリプトでチェックされないもの ○ Airflow CLIを使ったスクリプト
  13. 13. 4. OperatorのImportパスを書き換え Airflow本体に含まれていたOperatorが外部パッケージになった from airflow.operators.docker_operator import DockerOperator from airflow.providers.docker.operators.docker import DockerOperator たとえば、DockerOperatorは以下のような書き換えが必要
  14. 14. 5. DAGの互換性問題を解決する ● template fieldsにおける未定義変数の扱い ● KubernetesPodOperatorの扱い ● dag_run_conf_override_paramsのデフォルト値 ● Legacy UIを使っていないか(RBAC UIに切り替えているか) ● パーミッションの変更 **マネージドAirflowを使っている人にはほとんどが関係ないです
  15. 15. ● airflow.cfgを修正していく ● 非推奨となった設定を取り除く ● Kubernetes Executorの設定を書き換える ○ Base Pod Configurationをairflow.cfgから読み取らなくなった (重要) ○ 代わりにpod_template_fileと呼ばれるyamlを配置する必要がある 6. 環境設定の互換性問題の解決する **マネージドAirflowを使っている人にはほとんどが関係ないです
  16. 16. 7. Airflow2.0にアップデートする ● すべてのDAGを停止する ● apache-airflow2.0をインストールする ● airflow db upgradeを実行する この手順は既存の設定や実行履歴を引き継ぎたい場合には必要だが、 多くの場合、新しく2.0の環境を作ってデプロイする方が手順が簡単 になる
  17. 17. マネージドAirflowの2.0への移行 環境 概要 Cloud Composer 1. 1.10.15にアップデート 2. DAGの互換性問題を解決する 3. CLIの互換性問題を解決する 4. 2.0系にアップデート MWAA 1. ローカル環境でDAGの互換性問題を解決する 2. CLIの互換性問題を解決する 3. 2.0系にアップデート ● GCP: https://cloud.google.com/composer/docs/migrate-environments-airflow-2 ● AWS: https://docs.aws.amazon.com/mwaa/latest/userguide/airflow-versions.html
  18. 18. 移行チェックスクリプトの実 行(DEMO)
  19. 19. DEMO: SimpleHttpOperatorを2.0に移行する デモファイル一式: https://github.com/potix2/airflow-migration-example ● 1.10.15で実行確認する ● 移行チェックスクリプトの実行 ● DAGの書き換え作業 ● 動作確認 流れ
  20. 20. db: postgres:9.6のイメージ docker compose 構成 webserver scheduler db init airflow db initを実行 webserver/scheduler/init: apache/airflow:1.10.15-python3.7 に移行チェックスクリプトをインストー ルしたイメージ
  21. 21. DEMO
  22. 22. まとめ ● Airflow2.0への移行手順の概要を説明しました ● マネージド環境ごとの移行手順の違いを解説しました ● 移行チェックスクリプトの動かし方を説明しました ○ サンプルコードはGitHubで公開しています
  23. 23. イベント告知 (第9回)Tech x Marketing Meetupを開催します! 6/25(金) 17:00〜 ・広告配信システムにおけるリアーキテクティング ・トラッキング規制と代替技術の最新情報まとめ https://techxmarketing.connpass.com/event/215397/ 主催 : 電通デジタル, サイバー・コミュニケーションズ , VOYAGE GROUP, FLINTERS
  24. 24. Appendix: ● 過去の発表 ○ 「Airflowを広告データのワークフローエンジンとして運用してみた話 」2020.01.24 大規模データ 集積/分析基盤 Meet-up! ○ 「AWSを活用した少人数チームためのコンテナデプロイ戦略 」DevOpsDays Tokyo 2019
  25. 25. ● Breezeを使って1.10.15の環境を構築する方がdocker composeを使うより簡単 なはずだが、うまく動かなかった ● バックエンドがMySQL5.6を使っている場合、5.7以上にアップデートが必要(公 式の移行手順には書いてない罠) Appendix: その他のTIPS

Airflow Study #1にて発表した資料です。Airflow2.0へ移行を考えている方に向けて公式の移行手順の解説とクラウド環境別の移行手順を解説しています。 https://finatext.connpass.com/event/214704/

Views

Total views

310

On Slideshare

0

From embeds

0

Number of embeds

157

Actions

Downloads

1

Shares

0

Comments

0

Likes

0

×