Contenu connexe
Similaire à データ分析基盤におけるOpsのためのDev with event driven + serverless (20)
データ分析基盤におけるOpsのためのDev with event driven + serverless
- 3. 3 自己紹介
• 白鳥 昇治 / @irotoris
データエンジニア@リクルートライフスタイル
2013.04〜 SIer
• インフラエンジニアとしてプライベートクラウドの開発・運用
• 開発ツールの社内ホスティングサービス開発・運用
2017.07〜 リクルートライフスタイル
• データエンジニアとして社内データ分析基盤/データパイプライン
の開発・運用
興味/関心事
• Docker / Kubernetes / IaC / CD/CI / Serverless
- 10. 10 データ分析基盤チーム
Dev Team
• より効率的なデータ連携・集計の仕組みの開発
• ビッグデータ系の新しい技術・サービスの検証・導入
Ops Team
• 日々のデータ連携・集計バッチのモニタリング・エラー対応
• 新しいデータソース連携や集計バッチの追加対応
• インフラ・ミドルウェアの管理と整備
みんなで
• データをどう効率的・安定的に処理・提供するか考える
• データを使って何かしたい人たちの相談に乗る
• 大規模なエラー対応
- 11. 11 データ分析基盤チームがやりたいこと
Dev Team
• より効率的なデータ連携・集計の仕組みの開発
• ビッグデータ系の新しい技術・サービスの検証・導入
Ops Team
• 日々のデータ連携・集計バッチのモニタリング・エラー対応
• 新しいデータソース連携や集計バッチの追加対応
• インフラ・ミドルウェアの管理と整備
みんなで
• データをどう効率的・安定的に処理・提供するか考える
• データを使って何かしたい人たちの相談に乗る
• 大規模なエラー対応
価値を増幅させ、素早く届けるための活動
その活動のための時間を創出する
- 23. 23 この基盤の運用をなるべく減らすためのDev
• event driven + Serverless
イベント(ファイル連携)発生時のみパイプラインが起動
AWS Batchによりオンデマンドに実行環境が起動
バッチはコンテナでまとめる
• 自動リトライ
各処理ですべてにリトライ処理を実装する
処理はべき等にしておく
retry×3retry×3retry×3
- 28. 28 ServerlessでDevOpsプラクティスがどう変わったか
CD/CI
• よかったこと
バッチはコンテナで動かしているので、デプロイ/ロールバッ
クが簡単に。イメージ差替だけ。
テストパスすればいつでもデプロイ可能な状態に。
コンピュートリソースは独立しているので、いろんな変更を並
列テストできる。
• 課題
Lambda/サーバーレス基盤自体のテスト、特に異常系が難しい
AWS sam-local(AWSリソースのイベントをローカルで再現できる)
E2Eのテストだけでは心もとない
機械学習プログラムが5時間かかる→テストがボトルネック
データ量によってテストステージを分ける
- 29. 29 ServerlessでDevOpsプラクティスがどう変わったか
ロギング、モニタリング
• よかったこと
Lambdaで外形監視を組みやすい(パイプライン自体を変更しな
くても良い)
マネージドサービスAPI→CloudWatch→Datadogでアラート
• 課題
ログの出力先が個々のマネージドサービスのコンソール、
CWLに吐かれるのでトレースが難しい
Slackに集約しても逆によくわからなくなる
パイプラインの全体像がわかりにくくなる
Elasticsearch+Kibanaで状態遷移を可視化してもバッチ数が多
いと限界がある
必要なエラーイベントだけ補足できればOKかも?
- 31. 31 diff データサイエンティスト データエンジニア
データエンジニアデータサイエンティスト
• モデルの予測精度向上
• 学習速度向上
• Edge版ライブラリ
etc.
• エラーハンドリング
• ワークロード最適化
• オートスケール
• Stable版ライブラリ
etc.
興味・志向・軸
お互いの知識ドメインが異なる
- 36. 36 運用、どうですか?
• 運用期間:2017/12〜現在
• 自動リトライ処理のお陰で、基盤側のエラーはほぼ自動で解
決している。Datadogを眺めているくらい。
• いつでもすぐバッチのデプロイが可能な状態。
• 余裕が出たのでDevSecOpsにもトライ。
– 新しいこと、やりたいことに取り組めている=いい状態!
機械学習基盤の運用もしつつ、本業のデータ分析基
盤の開発も行えました。
- 37. 37 まとめ
• 運用を極力減らし、機能開発に集中するためのevent driven +
Serverlessなバッチシステム構成とそのDevOpsプラクティス変化について
紹介しました。
• Serverlessとバッチシステムは相性が良い。
• 次→もっとServerless!
現状のデータ分析基盤 / データパイプライン / バッチシステム
をサーバーレス構成で順次適用中
より複雑で並列度の高いバッチシステムをサーバーレスででき
るか?運用減らして価値開発に集中できるか?
Notes de l'éditeur
- ビジネス、データエンジニアリング、データサイエンスの役割の人が連携しながらビジネスを作り上げている
私がいるのは、データエンジニアリング
- ビジネス課題を解決するためのデータを提供しています
- 脳みその日次バッチの部分ですよを冒頭に
前述のscalability,availability,maitenability,robustness,costを考えこのような構成にしました。
メインのバッチは2つあります。
まずはETL部分のバッチそして機械学習のバッチです。
それぞれAWS Batchを使用しています。
それらはeven drivenでサーバレスなパイプラインで繋ぎました。
- 最後に、弊社の企業文化についてお話しておしまいにしたいと思います。
この画像、弊社の採用ページなんですけど、ボトムアップ文化が非常に強く、
個々人が自分が実現したい世界、解決したいクライアント・カスタマーの課題のために動き、人を巻き込んでいくスタイルです。
圧倒的当事者意識
経営層にもガンガンインプットいれるし、それに答えてくれる。
論理的に正しく、筋が通った提案なら、即実行。
その実現したい世界に対してみんながアドバイス、フィードバックをかけていくれます。
社内ビジネスコンテストもあり、そこから新しいプロダクトも次々出てきています。
そういったマインドやビジネススピードが損なわれないように、DevOpsのプラクティスやスクラム、開発・運用を改善していきます。