【PIXIV DEV MEETUP 2024】AirflowのKubernetes移行 ~ Kubernetesで運用するのは思ったより難しくない ~
by
Kashira
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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関連の課題