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
Shin Ohno
December 20, 2021
Technology
69
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
商品マイクロサービス移行の残課題
商品データベースのリファクタリングへの挑戦
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
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
12
5k
記録をかんたんに、提案をパーソナルに ── AIであすけんが目指すもの
oprstchn
0
170
プロンプト_きのこカンファレンス2026_LT
yurufuwahealer
0
140
ZOZOTOWNの進化と信頼性を両立する負荷試験
zozotech
PRO
0
140
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
220
最近評価が難しくなった
maroon8021
0
250
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
170
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
1
220
Empower GenAI with Agile - あなたのアジャイルが生成AIのバフになる仕組み
hageyahhoo
1
140
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
12
1.8k
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
670
グローバルチームと挑むプロダクト開発
sansantech
PRO
1
160
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
800
The Invisible Side of Design
smashingmag
301
52k
The Limits of Empathy - UXLibs8
cassininazir
1
400
Facilitating Awesome Meetings
lara
57
7k
GraphQLとの向き合い方2022年版
quramy
50
15k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
410
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
410
BBQ
matthewcrist
89
10k
A Tale of Four Properties
chriscoyier
163
24k
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