Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【PIXIV DEV MEETUP 2024】AirflowのKubernetes移行 ~ K...
Search
Kashira
October 14, 2024
Technology
0
1.5k
【PIXIV DEV MEETUP 2024】AirflowのKubernetes移行 ~ Kubernetesで運用するのは思ったより難しくない ~
PIXIV DEV MEETUP 2024の発表資料です。
https://conference.pixiv.co.jp/2024/dev-meetup
Kashira
October 14, 2024
Tweet
Share
More Decks by Kashira
See All by Kashira
【PIXIV MEETUP 2023】ピクシブのデータインフラと組織構造
kashira
1
5.2k
Other Decks in Technology
See All in Technology
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
240
Obsidian応用活用術
onikun94
2
490
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
21
10k
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
170
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3.1k
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
1
480
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
440
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
240
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
150
EncryptedSharedPreferences が deprecated になっちゃった!どうしよう! / Oh no! EncryptedSharedPreferences has been deprecated! What should I do?
yanzm
0
260
オブザーバビリティが広げる AIOps の世界 / The World of AIOps Expanded by Observability
aoto
PRO
0
370
ChatGPTとPlantUML/Mermaidによるソフトウェア設計
gowhich501
1
130
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
512
110k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Documentation Writing (for coders)
carmenintech
74
5k
Fireside Chat
paigeccino
39
3.6k
Designing for Performance
lara
610
69k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Being A Developer After 40
akosma
90
590k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Agile that works and the tools we love
rasmusluckow
330
21k
Making Projects Easy
brettharned
117
6.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
920
Practical Orchestrator
shlominoach
190
11k
Transcript
Airflowの Kubernetes移行 kashira ~ Kubernetesで運用するのは 思ったより難しくない 〜
全社のデータインフラ・データマ ネジメントを担当しています kashira
このLTで話さないこと • 全社Airflowの運用の工夫・残っている課題 • 移行での苦しみ • インフラ構成の細かい話 Ask the Speakerで話しましょう
みなさん Airflowを運用していますか?
データパイプラインの基盤として利用
なおさら、Kubernetes(k8s)での運用なん てやばくない? Airflowは運用が大変と よく聞きませんか?
大変です... けど思ったより簡単でした (ピクシブの場合)
なぜ簡単だと思ったのか? これについて話します
移行前の構成
移行前は課題がいっぱい(抜粋) • これ以上垂直スケール出来ないと言われた • サーバーがインフラの管理なので手が出しにくい • チームAのタスクが問題でチームBのタスクが遅延する
根本解決には 大規模な構成の変更が必要
でもデータエンジニアには 難しそう...
とりあえずインフラチームに相談 • Google CloudのCloud Composerに乗せる ◦ オンプレのDBとの接続がネック • (採用) オンプレk8sの上にHelm管理で入れる
◦ 一から全部作るの難しそう 解決策
解決策がまとまったので やってみる!💪
移行後の構成
Templateに従うだけで 完成度の高いリソース構成 が出来た
あれ、思ったより簡単?
簡単だと思った要因 • 社内のインフラチームに聞けば大抵解決する • Argo CDなどのk8s運用で便利な仕組みが整っている • Helmを使ってパラメータをいじるだけでほぼ完成する ◦ 構成の完成度も高い
安心してください(?) 辛いところもありました
辛いところ • 社内共用のk8sクラスタに乗るので制約がある • やっぱり学習コストは重い ◦ Kubernetesの基礎 ◦ Helmの基礎 ◦
Argo CDの基礎 ◦ Airflowの深い理解
制約による課題 • Airflow(バッチ)の特性上、特定の時間に負荷が集まる ◦ 何も考えずに一気に移行すると他のサービスに影響を与える 可能性が高い • リソース消費の激しい処理は事前に調整が必要 • ストレージ周りの運用で細かい調整が必要だった
◦ テンプレートをそのまま使えない
移行には一工夫した 移行は気合いで乗り切った • 全チームの約200個のDAGを数個ずつ、インフラと調整 しつつ、6ヶ月かけて1人で移行した ◦ 合わせて、ピーク時間の調整・平滑化を行った • Airflow起因で他サービスに影響を与えることはなかった
苦労したけど、 移行して良かった!!
移行前より確実に運用しやすい • Airflowの変更がデータ基盤チームで完結する • 学習コストは高いけど、Argo CDやk8sクラスタの運用は 無いので十分に運用できる • 水平スケール出来る・タスクリソースの分離が可能
データ基盤チームとインフラチームは部が違う 2024年9月6日時点
Before After
運用すべきものは実は少ない インフラ管理 データ基盤管理 責務が分離されていれば Airflowのみに集中できる
Airflowをk8sで運用するのは 思ったより簡単
k8sに詳しい仲間と 相乗りできるk8s基盤があれば
一番大変で重要なことは Airflowを深く理解すること
Ask the Speakerで!! • 全社Airflowを運用する上での工夫 • Airflowを深く理解していなくて苦労した話 • Airflowのベストプラクティス •
インフラ構成の細かい話 • 社内に残っているAirflow関連の課題