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
商品マイクロサービス移行の残課題
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Shin Ohno
December 20, 2021
Technology
65
0
Share
商品マイクロサービス移行の残課題
商品データベースのリファクタリングへの挑戦
Shin Ohno
December 20, 2021
More Decks by Shin Ohno
See All by Shin Ohno
「SOLID原則(一部)」と Testability の関係 iOS 編
ganchiku
1
220
Other Decks in Technology
See All in Technology
コミュニティ・勉強会を作るのは目的じゃない
ohmori_yusuke
0
210
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
23k
自立を加速させる神器 - EMOasis #11
stanby_inc
0
140
AndroidアプリとCopilot Studioの統合
nakasho
0
100
ぼくがかんがえたさいきょうのあうとぷっと
yama3133
0
190
ハーネスエンジニアリングをやりすぎた話 ~そのハーネスは解体された~
gotalab555
4
1.7k
Shipping AI Agents — Lessons from Production
vvatanabe
0
240
Azure Static Web Apps の自動ビルドがタイムアウトしやすくなった状況に対応した件/global-azure2026
thara0402
0
410
Revisiting [CLS] and Patch Token Interaction in Vision Transformers
yu4u
0
360
AI駆動1on1〜AIに自分を育ててもらう〜
yoshiakiyasuda
0
120
AzureのIaC管理からログ調査まで、随所に役立つSkillsとCustom-Instructions / Boosting IaC and Log Analysis with Skills
aeonpeople
0
230
EBS暗号化に失敗してEC2が動かなくなった話
hamaguchimmm
2
200
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
My Coaching Mixtape
mlcsv
0
100
AI: The stuff that nobody shows you
jnunemaker
PRO
6
570
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
180
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
200
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
We Are The Robots
honzajavorek
0
220
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
180
Transcript
1 商品マイクロサービス移行の残課題 商品データベースのリファクタリングへの挑戦 Business Platform Item Shin Ohno(ganchiku) 2021/12/16
2 Shin Ohno(ganchiku) • 2020年6月、バックエンドエンジニアとして入社 • 2021年5月、ハンズオンも行うエンジニアリングマネージャーに 現在やっていること • 商品情報、商品画像のマイクロサービスのエンジニアマネージャー
• モノリスアプリケーションの Kubernetes 移行 自己紹介
3 商品データベースの今、昔 MySQL Monolith service Admin service Google Spanner Monolith
service Admin service CloudSQL Microservices Item Microservice Microservice A Microservices Microservices Microservices B Big Query Big Table MySQL MySQL MySQL MySQL Monolith service Admin service MySQL MySQL
4 Exclusive Data Ownership 商品データベースの改善と運用の課題 Scalable Database Migration Database Refactoring
02 03 01
5 データは一つのサービスのオーナーが責任を持つという設計指針 • Why? ◦ データの変更がどこで行われたかを追いやすくするため ◦ データストア上の依存を疎結合にするため ◦ データオーナーによる一貫性を保つため
Exclusive Data Ownership
6 • 商品マイクロサービスからの書き込み、読み込み • モノリスアプリケーションからの書き込み、読み込み • 管理アプリケーションからの読み込み Exclusive Data Ownership
商品情報のケース items table Item microservice Admin service Monolith service C microservice B microservice A microservice
7 MySQL からよりスケーラブルなデータベースへ移行 • Why? ◦ データの管理を各マイクロサービスのチームへ移行したい。 ◦ データがより大きくなっても、水平ににスケールしたい。 Scalable
Database Migration
8 Scalable Database Migration 商品情報のケース 見出し MySQLのキャパシティが問題 MySQLの管理がSRE
• 問題が起きたときSREに頼る 必要がある。 • チームがオーナーとしてデー タの管理をするようにした い。 • 累計出品数25億品以上 (2021年12月時点)の商品情 報 • Item テーブルも巨大になり、 自前MySQLでは限界が見え てきた。 • Google Spanner • TiDB • Something else? 移行先DBのPoC(未決定)
9 ソースコードのリファクタリング データベースのリファクタリング 設定ファイルのリファクタリング • Why? ◦ 修正や追加開発に時間がとてもかかるようになる。 ▪ 使われなくなったカラムの存在意義がわからない
▪ 複数のドメインが一つのテーブルにまたがっていて、独立してない ▪ テーブルのデータが大きくなる Database Refactoring
10 • 今まで ◦ descriptionカラムを移動 ▪ (https://engineering.mercari.com/blog/entry/2017-11-29-161124/ ◦ photo_[1-4]_updatedカラムを移動
▪ https://engineering.mercari.com/blog/entry/20201211-55e3c90f44/ • これから ◦ いいねのカウント、コメントのカウントなど ◦ 他にも取引に関する情報もリファクタリング Database Refactoring 商品情報のケース
11 Exclusive Data Ownership 商品データベースの改善と運用の課題 Scalable Database Migration Database Refactoring
02 03 01