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
62
商品マイクロサービス移行の残課題
商品データベースのリファクタリングへの挑戦
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
Oracle Cloud Infrastructure:2025年9月度サービス・アップデート
oracle4engineer
PRO
0
480
PLaMoの事後学習を支える技術 / PFN LLMセミナー
pfn
PRO
9
3.9k
【Oracle Cloud ウェビナー】クラウド導入に「専用クラウド」という選択肢、Oracle AlloyとOCI Dedicated Region とは
oracle4engineer
PRO
3
120
いま注目しているデータエンジニアリングの論点
ikkimiyazaki
0
610
多様な事業ドメインのクリエイターへ 価値を届けるための営みについて
massyuu
1
420
E2Eテスト設計_自動化のリアル___Playwrightでの実践とMCPの試み__AIによるテスト観点作成_.pdf
findy_eventslides
1
500
AI駆動開発を推進するためにサービス開発チームで 取り組んでいること
noayaoshiro
0
230
OpenAI gpt-oss ファインチューニング入門
kmotohas
2
1.1k
英語は話せません!それでも海外チームと信頼関係を作るため、対話を重ねた2ヶ月間のまなび
niioka_97
0
130
許しとアジャイル
jnuank
1
130
SwiftUIのGeometryReaderとScrollViewを基礎から応用まで学び直す:設計と活用事例
fumiyasac0921
0
150
小学4年生夏休みの自由研究「ぼくと Copilot エージェント」
taichinakamura
0
500
Featured
See All Featured
Docker and Python
trallard
46
3.6k
Designing for Performance
lara
610
69k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
970
Thoughts on Productivity
jonyablonski
70
4.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
The Cult of Friendly URLs
andyhume
79
6.6k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Rails Girls Zürich Keynote
gr2m
95
14k
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