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
0
63
商品マイクロサービス移行の残課題
商品データベースのリファクタリングへの挑戦
Shin Ohno
December 20, 2021
Tweet
Share
More Decks by Shin Ohno
See All by Shin Ohno
「SOLID原則(一部)」と Testability の関係 iOS 編
ganchiku
1
210
Other Decks in Technology
See All in Technology
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
440
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
2
310
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
0
680
【インシデント入門】サイバー攻撃を受けた現場って何してるの?
shumei_ito
0
1.5k
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
390
AI時代、1年目エンジニアの悩み
jin4
1
160
あたらしい上流工程の形。 0日導入からはじめるAI駆動PM
kumaiu
5
750
Amazon Bedrock AgentCore 認証・認可入門
hironobuiga
2
500
システムのアラート調査をサポートするAI Agentの紹介/Introduction to an AI Agent for System Alert Investigation
taddy_919
2
1.7k
変化するコーディングエージェントとの現実的な付き合い方 〜Cursor安定択説と、ツールに依存しない「資産」〜
empitsu
4
1.3k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.5k
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
Featured
See All Featured
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Site-Speed That Sticks
csswizardry
13
1.1k
Agile that works and the tools we love
rasmusluckow
331
21k
The Spectacular Lies of Maps
axbom
PRO
1
510
A Tale of Four Properties
chriscoyier
162
24k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Ruling the World: When Life Gets Gamed
codingconduct
0
140
sira's awesome portfolio website redesign presentation
elsirapls
0
140
Facilitating Awesome Meetings
lara
57
6.7k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
72
Designing for Timeless Needs
cassininazir
0
130
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.3k
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