Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ZOZOのMLOpsチームにおける監視への取り組み / Observability in 10...
Search
Kohei Ota
March 05, 2020
Programming
5.9k
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.7k
The Cloud Native Chronicles: 10 Years of Community Growth Inside and Outside Japan
inductor
0
200
Cracking the KubeCon CfP
inductor
2
940
KubeCon Recap -Platform migration at Scale-
inductor
1
1.1k
コンテナビルド最新事情 2022年度版 / Container Build 2022
inductor
3
610
データベースとストレージのレプリケーション入門 / Intro-of-database-and-storage-replication
inductor
28
6.7k
KubeConのケーススタディから振り返る、Platform for Platforms のあり方と その実践 / Lessons from KubeCon case studies: Platform for Platforms and its practice
inductor
3
1k
オンラインの技術カンファレンスを安定稼働させるための取り組み / SRE activity for online conference platform
inductor
1
1.4k
Kubernetesネットワーキング初級者脱出ガイド / Kubernetes networking beginner's guide
inductor
23
7.9k
Other Decks in Programming
See All in Programming
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
390
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
460
Webの地図
yosuke_furukawa
PRO
6
4.9k
FreeBSDでZabbixを動かす
kenkino
0
330
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
560
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
1
1.9k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
180
setup-vp GitLab対応の裏側
naokihaba
0
140
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.5k
wkhtmltopdfの次どうするか問題2026
willnet
2
1.8k
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
150
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
A designer walks into a library…
pauljervisheath
211
25k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
A better future with KSS
kneath
240
18k
Technical Leadership for Architectural Decision Making
baasie
3
580
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
390
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
500
The Curious Case for Waylosing
cassininazir
1
540
Fireside Chat
paigeccino
43
4k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
520
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
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