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
85
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
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
610
「SOLID原則(一部)」と Testability の関係 iOS 編
ganchiku
1
230
Other Decks in Technology
See All in Technology
Adding Right-to-Left support to your web application with CSS logical properties — Lessons from Redmine
vividtone
0
170
MIXIで活躍できるエンジニアを 若手社員目線で考えてみる
mixi_engineers
PRO
0
130
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
300
国家プロジェクトを支える「さくらONE」 大規模LLM開発におけるGPU障害を乗り越えるクラスター運用戦略
gpuunite_official
0
250
35分でわかるEffective Platform Engineering
nwiizo
5
600
AIで変わるエンジニアの働き方(仮)
naoinaoi
0
430
アクセスキーが漏れた日にやるべきこと- 無効化の先にある本当の対応
kazzpapa3
0
210
巨大気象データと戦う ― サロゲートモデル学習を高速化する圧縮技術
gpuunite_official
0
250
地震情報アプリを作ってみた
yama3133
1
110
NANDでも描画したい!
nichica906
2
530
案件に一番詳しいAIを Amazon Bedrock AgentCore で作る ― 知見が知見を生むチームへ / Compounding Knowledge with AgentCore
yusukeshimizu
1
170
AIにブラウザを触らせて、E2EテストをPlaywrightで書く
koji_kawamura
0
370
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
350
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
250
We Have a Design System, Now What?
morganepeng
55
8.3k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
710
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Designing Powerful Visuals for Engaging Learning
tmiket
1
500
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
550
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