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
ZOZOのMLOpsチームにおける監視への取り組み / Observability in 10...
Search
Kohei Ota
March 05, 2020
Programming
5.8k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ZOZOのMLOpsチームにおける監視への取り組み / Observability in 10 mins at ZOZO MLOps
社内の勉強会資料を公開します
Kohei Ota
March 05, 2020
More Decks by Kohei Ota
See All by Kohei Ota
CloudNative Meets WebAssembly: Exploring Wasm's Potential to Replace Containers
inductor
4
3.5k
The Cloud Native Chronicles: 10 Years of Community Growth Inside and Outside Japan
inductor
0
180
Cracking the KubeCon CfP
inductor
2
910
KubeCon Recap -Platform migration at Scale-
inductor
1
1.1k
コンテナビルド最新事情 2022年度版 / Container Build 2022
inductor
3
600
データベースとストレージのレプリケーション入門 / Intro-of-database-and-storage-replication
inductor
28
6.6k
KubeConのケーススタディから振り返る、Platform for Platforms のあり方と その実践 / Lessons from KubeCon case studies: Platform for Platforms and its practice
inductor
3
990
オンラインの技術カンファレンスを安定稼働させるための取り組み / SRE activity for online conference platform
inductor
1
1.4k
Kubernetesネットワーキング初級者脱出ガイド / Kubernetes networking beginner's guide
inductor
22
7.7k
Other Decks in Programming
See All in Programming
霧の中の代数的エフェクト
funnyycat
1
320
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
15
3.2k
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
410
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
1k
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
250
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.3k
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.7k
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.8k
関数型プログラミングのメリットって何だろう?
wanko_it
0
160
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
290
symfony/aiとlaravel/boost
77web
0
120
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
300
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Discover your Explorer Soul
emna__ayadi
2
1.2k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.7k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
So, you think you're a good person
axbom
PRO
2
2.1k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
180
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
370
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The Limits of Empathy - UXLibs8
cassininazir
1
410
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
310
The Mindset for Success: Future Career Progression
greggifford
PRO
0
410
Transcript
MLOps チームにおける監視への取り 組み SRE技術共有会 #15 株式会社ZOZOテクノロジーズ MLOpsチーム 太田 航平
Copyright © ZOZO Technologies, Inc.
© ZOZO Technologies, Inc. 株式会社ZOZOテクノロジーズ 開発部 MLOpsチーム エンジニア 太田 航平
2018年4月入社 開発部のPBチームにて、AWSを中心とした海外向け自社ECのインフ ラ開発や運用などを担当後、SREとして各所のインフラに従事。 2019年6月より、MLOpsチームに配属となり、主にGCPを使った機械 学習基盤の設計構築や運用などを行っている。 2
© ZOZO Technologies, Inc. • MLOps について • 提供しているサービスの紹介 •
監視の考え方と各サービスの使い分け アジェンダ 3
© ZOZO Technologies, Inc. MLOps について 4
ZOZO MLOpsチーム 2019年4月に発足 • リーダーのsonotsさんが入社して3ヶ月後 • 発足時2名 → 現在4名 •
ZOZO研究所があったが、本番にML機能を出せていない課題があった MLOps チームのミッション • MLプロダクトを世に出すために必要となるモデル作成以外の全てのエンジニアリングを担当 し、MLエンジニアが優れたモデルを作ることに注力できるようにする • 特にMLエンジニアが(一般的に)得意としていないプロトタイプからプロダクションレベルへの 引き上げフェーズで成果を発揮することがミッション
チームの現状のフェーズ Phase1: ML機能を1つプロダクションに出す • チーム自体のオンボーディング(立ち上げ) • レベルの高い(技術選定が妥当である、安定している、十分に高速)インフラを構築できることを示す ◦ MLOpsチームへの社内からの信頼を得る →
次の仕事を得る ◦ 社外からの技術プレゼンスを得る → 優秀な人材の採用に繋げて仕事の幅を広げられる下地を作る • 1つ目なので社内外からの信頼度はまだ低い状態 Phase2: ML機能を複数プロダクションに出す • ML機能をさらに出すことで、再現性があることを示す。 • それにより、社内外からの信頼度をさらに高める。 • 新メンバーを受け入れて、新メンバーのオンボーディング Phase3: ML機能の量産体制を整える, e.g., ML基盤? イマココ
None
© ZOZO Technologies, Inc. 提供しているサービスの紹介 8
© ZOZO Technologies, Inc. 9 • サイトの画像からアイテムを検出 • カテゴリごとに分類 •
ZOZOTOWN で実際に販売されてい る類似のアイテムを表示 ↓ 安い商品や、売り切れた商品からの導 線としてサジェストすることでユーザー の購買意欲を促進 ZOZOTOWN の類似画像検索
© ZOZO Technologies, Inc. 10 • WEAR のトップ画面で動作 ◦ 個人の興味関心によってオス
スメのコーディネートを出し分 け WEAR のパーソナライズ機能
© ZOZO Technologies, Inc. 11 MLOps チーム の基本的なソフトウェアスタック(その1) サーバアプリケーション •
Python/Flask/Gunicorn/Swagger/gRPC • Chainer/CuPy (TensorFlow/TPU も検証) インフラ • 推論 API: Google Kubernetes Engine (GKE) + Memorystore (Redis) • Cloud Load Balancer (L7) + Cloud Armor • 学習: Cloud Composer + GKE + Filestore (NFS) • Cloud Storage (GCS) / Container Registry (GCR) • AWS Route53 (ドメイン発行) / Terraform • Datadog / Stackdriver / Sentry Cloud Composer Kubernetes Engine Cloud Memorystore Cloud Filestore Cloud Load Balancing Cloud Armor Cloud Storage Container Registry Stackdriver
© ZOZO Technologies, Inc. 12 MLOps チーム の基本的なソフトウェアスタック(その2) サーバアプリケーション •
Java/Spring Boot インフラ • API: Google Kubernetes Engine (GKE) + Cloud SQL (MySQL) • Cloud Load Balancer (L7) • インデクシング: Cloud Dataflow / BigQuery • Cloud Functions / Cloud SQL / Cloud Scheduler • Terraform Kubernetes Engine Cloud SQL Cloud Scheduler Cloud Load Balancing Google App Engine Cloud Functions Container Registry Stackdriver Cloud Dataflow
© ZOZO Technologies, Inc. 主に GCP を中心とした アプリ基盤を扱っています 13
© ZOZO Technologies, Inc. 監視の考え方 14
© ZOZO Technologies, Inc. 15 GCP における監視サービス Cloud Monitoring メトリクスの監視
Google Cloud Operations Suite (旧Stackdriver) Cloud Logging ログの監視 Cloud Trace アプリの監視
© ZOZO Technologies, Inc. 16 GCP における監視サービス Cloud Monitoring メトリクスの監視
Google Cloud Operations Suite (旧Stackdriver) Cloud Logging ログの監視 Cloud Trace アプリの監視 これらをサービスが継続して提供できているかどうかという基準で組み合わせる ・例えばプロセス監視などは原則しない 理由: コンテナやマネージドな基盤ではプロセスが入れ替わる回数がVMやベアメタルに比べ 大幅に増えるので、メトリクスを取ってもあまり意味がない ・ログはN分間にM回以上継続して出た場合などをトリガーにアラート ・余計なログを見つけたらアプリケーション側と協力して潰す (必要ならコードを書く) ・最終的には、E2Eで正常に動いてればヨシ! モニタリング、ロギング、トレーシングの組合せによって可観測性(Observability)を担保
© ZOZO Technologies, Inc. 17 • Cloud Monitoring (Monitoring) ◦
e.g., CloudWatch Metrics, Datadog Metrics, Prometheus + Grafana • Cloud Logging (Logging) ◦ e.g., CloudWatch Logs, Datadog Logs, Splunk • Cloud Trace (Tracing) ◦ e.g., AWS X-Ray, Datadog APM, NewRelic APM (G社にとって) 競合のツール
© ZOZO Technologies, Inc. 18 • Cloud Monitoring (Monitoring) ◦
e.g., CloudWatch Metrics, Prometheus + Grafana, Datadog Metrics • Cloud Logging (Logging) ◦ e.g., CloudWatch Logs, Datadog Logs, Splunk • Cloud Trace (Tracing) ◦ e.g., NewRelic APM, Datadog APM (G社にとって) 競合のツール お値段や要件に合わせて使い分け ・予算の出るサービスでは会社的に使おうとしているDatadogを使う ・そうじゃないプロジェクトでは原則そのクラウドで使える範囲で頑張る Datadog Logsはかなり高いので敬遠気味・・・ メトリクスも基本的にCloud Metricsで十分なことが多い APMだけはDatadogのものが使いやすいので採用することが多い
© ZOZO Technologies, Inc. 19 実際に見ている内容 ・LBのリクエスト数やその傾向 ・レスポンスタイムの監視 ・200以外のステータスを返す場合の通知やエラー内容 ・バッチがコケたり期待通りの時間に終わっていない場合の通知
etc → サービスへの影響度が高いものを優先的に見ている
© ZOZO Technologies, Inc. 20 • アプリケーションのエラー監視 ◦ Sentry ▪
アプリケーションに関わるログだけを可視化できるサービス ▪ 安いし機能も十分だし使いやすい ◦ Cloud Error Reporting ▪ GCPのサービスだけど通知機能が貧弱で使いづらかった その他のサービス
© ZOZO Technologies, Inc. 21 • 死活監視 (GCP ではサービスとしてカバーしていない) ◦
E2E の監視に利用 (HTTP Status 200かどうか) ◦ MLOpsではDatadog の Synthetics を活用 ▪ HTTP Headerとかを気軽に渡せるのでとても便利 ▪ New Relic でも使えるし、最近だと AWS でも出ましたね その他のサービス
© ZOZO Technologies, Inc. 22 • パブリッククラウドのコンソールにログインしなくても良い ◦ 非基盤運用者が余計な操作をするリスクを考えなくて良い ◦
IAM権限の管理コスト削減 • インテグレーションが豊富なことが多い ◦ 複数クラウド・複数プロジェクトを同じサービスで監視できるので監視にお けるコンテキストスイッチが減らせる • (主観だが) Datadogは全体的にかなり使い勝手(利用体験)が良かった 監視SaaS を使うメリット
© ZOZO Technologies, Inc. 23 • 高い (Sentryは安い) ◦ CloudWatch
や Cloud Operations Suite に比べて圧倒的に高い ◦ APMもCloud Traceとそれ以外ではかなりお値段に差がある • 横断的に使える一方で連携の設定は必ず必要だし、メトリクスの自由度もク ラウドまたは監視サービスの限界に引っ張られる • (特に外資の場合) サポートの対応が大手クラウドに比べ弱い ◦ 日本法人がいずれも小さいので日本語だとなお弱い 監視SaaS を使うデメリット
© ZOZO Technologies, Inc. 24 • 高い (Sentryは安い) ◦ CloudWatch
や Cloud Operations Suite に比べて圧倒的に高い ◦ APMもCloud Traceとそれ以外ではかなりお値段に差がある • 横断的に使える一方で連携の設定は必ず必要だし、メトリクスの自由度もク ラウドまたは監視サービスの限界に引っ張られる • (特に外資の場合) サポートの対応が大手クラウドに比べ弱い ◦ 日本法人がいずれも小さいので日本語だとなお弱い 監視SaaS を使うデメリット 値段相応の使い込み方ができるかも重要な観点 監視は基本的にプロダクト運用においては純粋なコストなので、それ なりのコストで使い倒せるものを選ぶのが良い
None