Slide 1

Slide 1 text

Airflowの Kubernetes移行 kashira ~ Kubernetesで運用するのは 思ったより難しくない 〜

Slide 2

Slide 2 text

全社のデータインフラ・データマ ネジメントを担当しています kashira

Slide 3

Slide 3 text

このLTで話さないこと ● 全社Airflowの運用の工夫・残っている課題 ● 移行での苦しみ ● インフラ構成の細かい話 Ask the Speakerで話しましょう

Slide 4

Slide 4 text

みなさん Airflowを運用していますか?

Slide 5

Slide 5 text

データパイプラインの基盤として利用

Slide 6

Slide 6 text

なおさら、Kubernetes(k8s)での運用なん てやばくない? Airflowは運用が大変と よく聞きませんか?

Slide 7

Slide 7 text

大変です... けど思ったより簡単でした (ピクシブの場合)

Slide 8

Slide 8 text

なぜ簡単だと思ったのか? これについて話します

Slide 9

Slide 9 text

移行前の構成

Slide 10

Slide 10 text

移行前は課題がいっぱい(抜粋) ● これ以上垂直スケール出来ないと言われた ● サーバーがインフラの管理なので手が出しにくい ● チームAのタスクが問題でチームBのタスクが遅延する

Slide 11

Slide 11 text

根本解決には 大規模な構成の変更が必要

Slide 12

Slide 12 text

でもデータエンジニアには 難しそう...

Slide 13

Slide 13 text

とりあえずインフラチームに相談 ● Google CloudのCloud Composerに乗せる ○ オンプレのDBとの接続がネック ● (採用) オンプレk8sの上にHelm管理で入れる ○ 一から全部作るの難しそう 解決策

Slide 14

Slide 14 text

解決策がまとまったので やってみる!💪

Slide 15

Slide 15 text

移行後の構成

Slide 16

Slide 16 text

Templateに従うだけで 完成度の高いリソース構成 が出来た

Slide 17

Slide 17 text

あれ、思ったより簡単?

Slide 18

Slide 18 text

簡単だと思った要因 ● 社内のインフラチームに聞けば大抵解決する ● Argo CDなどのk8s運用で便利な仕組みが整っている ● Helmを使ってパラメータをいじるだけでほぼ完成する ○ 構成の完成度も高い

Slide 19

Slide 19 text

安心してください(?) 辛いところもありました

Slide 20

Slide 20 text

辛いところ ● 社内共用のk8sクラスタに乗るので制約がある ● やっぱり学習コストは重い ○ Kubernetesの基礎 ○ Helmの基礎 ○ Argo CDの基礎 ○ Airflowの深い理解

Slide 21

Slide 21 text

制約による課題 ● Airflow(バッチ)の特性上、特定の時間に負荷が集まる ○ 何も考えずに一気に移行すると他のサービスに影響を与える 可能性が高い ● リソース消費の激しい処理は事前に調整が必要 ● ストレージ周りの運用で細かい調整が必要だった ○ テンプレートをそのまま使えない

Slide 22

Slide 22 text

移行には一工夫した 移行は気合いで乗り切った ● 全チームの約200個のDAGを数個ずつ、インフラと調整 しつつ、6ヶ月かけて1人で移行した ○ 合わせて、ピーク時間の調整・平滑化を行った ● Airflow起因で他サービスに影響を与えることはなかった

Slide 23

Slide 23 text

苦労したけど、 移行して良かった!!

Slide 24

Slide 24 text

移行前より確実に運用しやすい ● Airflowの変更がデータ基盤チームで完結する ● 学習コストは高いけど、Argo CDやk8sクラスタの運用は 無いので十分に運用できる ● 水平スケール出来る・タスクリソースの分離が可能

Slide 25

Slide 25 text

データ基盤チームとインフラチームは部が違う 2024年9月6日時点

Slide 26

Slide 26 text

Before After

Slide 27

Slide 27 text

運用すべきものは実は少ない インフラ管理 データ基盤管理 責務が分離されていれば Airflowのみに集中できる

Slide 28

Slide 28 text

Airflowをk8sで運用するのは 思ったより簡単

Slide 29

Slide 29 text

k8sに詳しい仲間と 相乗りできるk8s基盤があれば

Slide 30

Slide 30 text

一番大変で重要なことは Airflowを深く理解すること

Slide 31

Slide 31 text

Ask the Speakerで!! ● 全社Airflowを運用する上での工夫 ● Airflowを深く理解していなくて苦労した話 ● Airflowのベストプラクティス ● インフラ構成の細かい話 ● 社内に残っているAirflow関連の課題