Movatterモバイル変換
[0]
ホーム
URL:
画像なし
夜間モード
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Shin Ohno
PDF, PPTX
3,237 views
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
メルカリ社の創業時以来から存在しているモノリスサービスの Kubernetes 移行に関する話
Engineering
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 33
2
/ 33
3
/ 33
4
/ 33
5
/ 33
6
/ 33
7
/ 33
8
/ 33
9
/ 33
10
/ 33
11
/ 33
12
/ 33
Most read
13
/ 33
14
/ 33
Most read
15
/ 33
16
/ 33
Most read
17
/ 33
18
/ 33
19
/ 33
20
/ 33
21
/ 33
22
/ 33
23
/ 33
24
/ 33
25
/ 33
26
/ 33
27
/ 33
28
/ 33
29
/ 33
30
/ 33
31
/ 33
32
/ 33
33
/ 33
Recommended
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
Serverless時代のJavaについて
by
Amazon Web Services Japan
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
PPTX
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
PPTX
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
PDF
Google Cloud で実践する SRE
by
Google Cloud Platform - Japan
PDF
PostgreSQLアンチパターン
by
Soudai Sone
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
Tackling Complexity
by
Yoshitaka Kawashima
PDF
例外設計における大罪
by
Takuto Wada
PDF
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
PDF
3分でわかるAzureでのService Principal
by
Toru Makabe
PDF
ドメイン駆動設計 本格入門
by
増田 亨
PDF
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
by
Ito Takayuki
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
PPTX
ぱぱっと理解するSpring Cloudの基本
by
kazuki kumagai
PDF
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
PDF
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
ヤフー社内でやってるMySQLチューニングセミナー大公開
by
Yahoo!デベロッパーネットワーク
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
PDF
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
PDF
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
PDF
2019-Nov-23 Pivotalのプロセスとプラットフォーム@DellTechnologies FORUM
by
Shinya Yanagihara
PDF
Kubecon NA 2019 Recap: Your Path to Production Ready Kubernetes hosted by Wea...
by
Tomohiro Tsuchida
More Related Content
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
Serverless時代のJavaについて
by
Amazon Web Services Japan
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
PPTX
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
PPTX
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
PDF
Google Cloud で実践する SRE
by
Google Cloud Platform - Japan
PDF
PostgreSQLアンチパターン
by
Soudai Sone
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
マイクロサービス 4つの分割アプローチ
by
増田 亨
Serverless時代のJavaについて
by
Amazon Web Services Japan
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
Google Cloud で実践する SRE
by
Google Cloud Platform - Japan
PostgreSQLアンチパターン
by
Soudai Sone
マイクロにしすぎた結果がこれだよ!
by
mosa siru
What's hot
PDF
Tackling Complexity
by
Yoshitaka Kawashima
PDF
例外設計における大罪
by
Takuto Wada
PDF
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
PDF
3分でわかるAzureでのService Principal
by
Toru Makabe
PDF
ドメイン駆動設計 本格入門
by
増田 亨
PDF
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
by
Ito Takayuki
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
PPTX
ぱぱっと理解するSpring Cloudの基本
by
kazuki kumagai
PDF
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
PDF
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
ヤフー社内でやってるMySQLチューニングセミナー大公開
by
Yahoo!デベロッパーネットワーク
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
PDF
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
PDF
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
Tackling Complexity
by
Yoshitaka Kawashima
例外設計における大罪
by
Takuto Wada
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
3分でわかるAzureでのService Principal
by
Toru Makabe
ドメイン駆動設計 本格入門
by
増田 亨
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
by
Ito Takayuki
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
ぱぱっと理解するSpring Cloudの基本
by
kazuki kumagai
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
ヤフー社内でやってるMySQLチューニングセミナー大公開
by
Yahoo!デベロッパーネットワーク
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
Similar to Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
PDF
2019-Nov-23 Pivotalのプロセスとプラットフォーム@DellTechnologies FORUM
by
Shinya Yanagihara
PDF
Kubecon NA 2019 Recap: Your Path to Production Ready Kubernetes hosted by Wea...
by
Tomohiro Tsuchida
PDF
【日本語版】Styler: Our Journey to GCP
by
MichaelFindlater
PDF
ハイブリットクラウド環境におけるモダンアプリケーション開発
by
政雄 金森
PDF
VMware が考えるコンテナと Kubernetes の世界
by
Yuichi Tamagawa
PDF
20200708サーバーレスでのAPI管理の考え方
by
Amazon Web Services Japan
PDF
Kubernetes 導入から始める DevOps について
by
Shigeru Tatsuta
PDF
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
by
Google Cloud Platform - Japan
PDF
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
by
Amazon Web Services Japan
PDF
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
by
Michitaka Terada
PDF
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
by
Google Cloud Platform - Japan
PDF
NGINX & OpenShift webinar for Energy Sector
by
NGINX, Inc.
PDF
GCPで実現するクラウドネイティブアプリケーション
by
Kiyoshi Fukuda
PDF
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
by
whywaita
PDF
Cloud Nativeを見据えたアプリケーションアーキテクチャとレガシーモダナイゼーション
by
Erina Matsuda
PDF
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
by
Masaya Aoyama
PDF
Kubernetes超入門
by
Takashi Suzuki
PPTX
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
by
Takahiro Fujii
PPTX
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
by
Yoichi Kawasaki
PDF
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
by
Koto Shigeru
2019-Nov-23 Pivotalのプロセスとプラットフォーム@DellTechnologies FORUM
by
Shinya Yanagihara
Kubecon NA 2019 Recap: Your Path to Production Ready Kubernetes hosted by Wea...
by
Tomohiro Tsuchida
【日本語版】Styler: Our Journey to GCP
by
MichaelFindlater
ハイブリットクラウド環境におけるモダンアプリケーション開発
by
政雄 金森
VMware が考えるコンテナと Kubernetes の世界
by
Yuichi Tamagawa
20200708サーバーレスでのAPI管理の考え方
by
Amazon Web Services Japan
Kubernetes 導入から始める DevOps について
by
Shigeru Tatsuta
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
by
Google Cloud Platform - Japan
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
by
Amazon Web Services Japan
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
by
Michitaka Terada
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
by
Google Cloud Platform - Japan
NGINX & OpenShift webinar for Energy Sector
by
NGINX, Inc.
GCPで実現するクラウドネイティブアプリケーション
by
Kiyoshi Fukuda
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
by
whywaita
Cloud Nativeを見据えたアプリケーションアーキテクチャとレガシーモダナイゼーション
by
Erina Matsuda
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
by
Masaya Aoyama
Kubernetes超入門
by
Takashi Suzuki
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
by
Takahiro Fujii
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
by
Yoichi Kawasaki
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
by
Koto Shigeru
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
1.
1Mercari JPのモノリスサービスをKubernetesに移行した話PHP Conference
2022Shin Ohno(@ganchiku)
2.
2Engineering Manager Mercari API
Team, Mercari JP Shin Ohno
3.
3Mercari-api チームストリームドアラインド &
イネイブリングを兼ねているようなチームチームとその領域
4.
4なぜ Kubernetes 環境に移行をしたかトピックなにを
Kubernetes 環境に移行したかどうやって Kubernetes 環境に移行したかチームトポロジー的な視点02030401既存アプリケーションの問題にどう対処したか05今後、どうなっていくか06
5.
5なぜ Kubernetes 環境に移行をしたかWHY
6.
6なぜ Kubernetes 環境に移行をしたかCloud
ならではの利点の享受● Reliability を向上させる● インフラのコスト最適化させる開発者体験を改善し、エンジニアの満足度の向上● Kubernetes, Terraform などの Platform 基盤の上に乗る● 開発環境と本番環境の差を最小にするPlatform チームが提供するMercari のマイクロサービスと同じ開発体験とするため
7.
7なぜ Kubernetes 環境に移行をしたか移行前の開発環境
移行後の開発環境開発環境の主なオーナー CI/CDチーム Mercari API チーム本番環境と開発環境の差異 開発環境は、VM の Docker環境で他のサービスと相乗りしていた本番と同じくコンテナイメージを使用するようになった開発環境のセットアップ Web UI から手動で VM を起動していたGitHub PR が作られると、自動的に開発クラスターにDeploy され、起動していたログの確認 開発環境のコンテナ内のログを参照DataDog に流れるようになった開発環境と本番環境の差を最小にする
8.
8サービスの概念図(簡略版)
9.
9実際のインフラ構成図(簡略版)移行前
10.
10実際のインフラ構成図(簡略版)
11.
11なにを Kubernetes 環境に移行したかWHAT
12.
12モノリスサービスの構成見出しAPIサーバー Nginx+Apache キューを処理するWorker Q4M with
PHP ● メール送信 ● SMS送信 ● プッシュ通知送信 ● 会計処理 など ● マイクロサービス化されていないエンドポイント群 ● 購入、配送処理の一部 ● ユーザー管理の一部 など ● 配送処理のバッチ ● リマインド通知のバッチ ● 会計の月次処理のバッチ ● 一部ログ掃除などのバッチ など Cron Job
13.
13どうやって Kubernetes 環境に移行したかHOW
14.
14どうやって Kubernetes 環境に移行したか●
Lift○ 既存のシステムをそのままクラウド環境へ移行する● Shift○ クラウドへ移行したシステムを徐々にクラウド環境に最適化するLift & Shift アプローチ
15.
15どうやって Kubernetes 環境に移行したか●
PHPの Base Container を予め用意する● アプリケーションを含んだContainer を Build & Release● 1つずつ影響度の小さいものから移行していく。Kustomize 使用影響の小さいものから少しずつ(Worker から)キューのDB は同じなので、取り合いに注意
16.
16どうやって Kubernetes 環境に移行したかWorker
の移行後、API サーバーも準備し、少しずつ Traffic を移行していく0%-0.01% -> 0.01%-1%-5% -> 5%-25%-42%-0% -> 0%-5% -> 5%-25%-50% -> 50%-0% -> 0%-50%-0% ->0%-10% -> 10%-25% -> 25%-0%-50% -> 50%-100%参考: What it’s like to work as an embedded microservices SRE
17.
17どうやって Kubernetes 環境に移行したかMercari
API チームが先行事例を作り、ドキュメント作成後、各チームに委譲● ノウハウをドキュメント化し、各ドメインオーナーに伝え、支援するCronJob の数: 約40CronJob に関しては、先行事例を最初に作って、各ドメインオーナーが実施検索 取引物流クーポン通知ユーザー価格出品ログインコメント
18.
18チームトポロジー的な視点Team Topologies Perspective
19.
19チームトポロジー的な視点● 初期(構想を練って、プロトタイプ化) ○ タスクフォース的に、モノリスサービスの知見を持ったメンバーがリード
○ 先行して移行をしていたMercari USの知見を参考 ● 中期(Kubernetes 環境にリリース) ○ マイクロサービスの知見を持ったメンバーがKubernetes の設定をリード ○ ミドルウェアの運用の知見を持ったSREにヒアリング ● 後期(運用改善) ○ CronJobに関しては、各チームに委譲していく ○ オブザーバビリティ改善のため、Embedded SRE と共にサービス改善を行う ■ DataDog によるモニタリング、ログ等の組み込み ■ 最適なCPU, Memory の設定 フェーズによってチームメンバーが入れ替わり、チームのインタラクションモードも合わせていった。
20.
20チームトポロジー的な視点移行タスクフォース: ストリームアラインドチーム● 移行そののものをリードSRE:
イネイブリングチーム● 移行で困難なことやノウハウを伝授、教育Platform: プラットフォームチーム● マイクロサービス共通基盤などを提供チームのタイプ
21.
21チームトポロジー的な視点● タスクフォース的に、モノリスサービスの知見を持ったメンバーがリード ●
US の移行の知見のヒアリングブロッカーになりそうな場所の整理● Log の集約をどうするか● Credentials の管理をどうするか大まかなマイルストーンとスケジュール● Base となるコンテナイメージ の作成● Worker, APIServer, CronJob それぞれいつまでの移行完了を目指すか初期(構想を練って、プロトタイプ化)(3ヶ月)参考: 巨大モノリスをKubernetesに移行してシングルクラスタ運用にするためにどうしたか
22.
22チームトポロジー的な視点● マイクロサービスの知見を持ったメンバーがKubernetes の設定をリード
● ミドルウェアの運用の知見を持ったSREにヒアリング開発期(yamlがほとんど)● Worker の Deployment 用意● GitHub PR merge でアプリケーションイメージの作成● PubSub -> Spinnaker でデプロイ中期(Kubernetes 環境にリリース)(5ヶ月)
23.
23チームトポロジー的な視点運用改善 ● オブザーバビリティ改善のため、SRE と共にサービス改善を行う
● DataDog によるモニタリング、ログ等の組み込みCronJob 移行 ● 移行ドキュメントやスケジュールを管理し、各チームに委譲、レビューや相談に乗る後期(運用改善)(5ヶ月)運用改善CronJob移行
24.
24既存アプリケーションの問題にどう対処したかApplication Specific issues
25.
25既存アプリケーションの問題にどう対処したか時間の経過と共に Worker のメモリが溜まっていく●
24時間に一度 Rollout して、Pod を入れ替える メモリリーク問題(Worker)メモリが上がってくるタイミングを想定して、CronJob のスケジューラーで RollOut
26.
26既存アプリケーションの問題にどう対処したか処理中に落ちたりしてしまわないように、pcntl_signal 関数でシグナルを確認OnPremiss環境● 複数の
Worker を Supervisord で管理Kubernetes 環境● 各Worker 毎に Deployment で管理● スケールインする際に、正しくジョブの実行が終わっていることをチェック グレースフルシャットダウン(Worker)
27.
27既存アプリケーションの問題にどう対処したかGKE特有の問題、concurrencyPolicy: Replace でも並列稼働する可能性あり●
重複実行をしても良い設計に(冪等性)● それでも重複実行を許容できない処理においては、アプリケーションレベルで、ロック機構を用いて対応参考: https://engineering.mercari.com/blog/entry/k8s-cronjob-20200908/ CronJob 重複実行問題
28.
28既存アプリケーションの問題にどう対処したかKubernetes での接続先の Host
の解決での DNS の問い合わせの数が増えてしまっていた● Trailing dotがないとき○ ドメインの解決候補の数(5回)+ フルドメイン(1回)○ IPv4 + IPv6 の両方で問い合わせ■ 6回x2回の問い合わせ -> 12回● Trailing dotがあるとき○ Hostに trailing dot を付けて、厳密な問い合わせをするようにした○ 1回x2回の問い合わせ -> 2回PHP に限った話ではないが、PHP だと顕著にパフォーマンスに影響のあったDNS解決問題
29.
29ホストの指定改善前と改善後DNSサーバーの RPSHost指定が多かったエンドポイントの Latency改善前
改善後改善前改善後
30.
30今後、どうなっていくかNext?
31.
31今後どうなっていくか● Log 基盤の最適化○
今までログの一部に td-agent を使用していたが、Cloud Logging へ● Traffic のルートの最適化○ 今まで Gateway からの Traffic を GCE の Proxy を経由していたが、直接 GKE のアプリケーションへ● Cloud Resource の最適化○ CPU, Monitor などを適宜ウォッチし、改善の余地がある場所を見つけ、改善● 柔軟なリリース○ Canary Release を採用し、より安全なリリースへの改善まだまだLift & Shift の Shift の最中
32.
32まとめメルカリ最古のモノリスサービスをKubernetes 環境に移行● なぜ、なにを、どうやって●
フェーズによってMercari-api チームだけでは解決できない問題○ SREチームとファシリテーションモード 、コラボレーションモード で関わりながら遂行○ ドメインオーナーが持つべき CronJob の移行は、Mercari-api チームがファシリテートして移行他のマイクロサービスと同じ Platform の上に乗ることができた● チームが開発し、運用し、改善をすることがしやすくなった● CPU, Memory の最適化の改善を考えた運用ができるようになった
33.
33We are hiringRobust
Foundation for Speed, Mercari
Download
[8]
ページ先頭
©2009-2025
Movatter.jp