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
DMMプラットフォームがTiDB Cloudを採用した背景
Search
pospome
April 17, 2024
Programming
10
5.1k
DMMプラットフォームがTiDB Cloudを採用した背景
私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT
https://findy.connpass.com/event/314602/
pospome
April 17, 2024
Tweet
Share
More Decks by pospome
See All by pospome
DMMプラットフォームにおけるTiDBの導入から運用まで
pospome
7
3k
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
33
13k
マイクロサービス環境におけるDB戦略 in DMMプラットフォーム
pospome
12
3.7k
組織全体で開発生産性に取り組むために 専門チームを作った話
pospome
2
1.7k
DMMプラットフォームにおける GKE を利用した プラットフォームエンジニアリングへの 取り組み
pospome
1
570
DMMプラットフォームにおけるコード品質を改善する取り組みの理想と現実
pospome
3
2.4k
(再アップロード)Microservices & APIs
pospome
0
94
(再アップロード)Datastore/Go のデータ設計と struct の振る舞いについて
pospome
0
100
マイクロサービス環境におけるToilを削減するTerraformの活用 in DMMプラットフォーム
pospome
3
1.4k
Other Decks in Programming
See All in Programming
開発部に不満を持っていたCSがエンジニアにジョブチェンしてわかった「勝手に諦めない」ことの大切さ
sakuraikotone
28
16k
Google's Recipe for Scaling (Web) Security – LocoMocoSec 2024
lweichselbaum
0
170
最近追加した型の紹介とその振り返り
aki19035vc
0
170
Android開発者のための Kotlin Multiplatform入門
ntaro
0
190
feature環境をGitHub ActionsとCloudFormationでいい感じに管理する
nealle
2
310
スクラムマスターって孤独じゃないですか?
yoshitaroyoyo
1
140
Play Billing Library 7.0.0 変更点まとめ@potatotips#88
kako351
0
160
The rollercoaster of releasing an Android, iOS, and macOS app with Kotlin Multiplatform | droidcon Berlin
prof18
0
110
MIERUNE BBQにおけるユーザー中心設計()
mierune
PRO
1
110
社内 LT 会を発足し、アウトプット文化を醸成させるために考えたこと・やったこと / Starting internal LT meetings and fostering an output culture
mackey0225
3
120
Advanced App Shrinking Techniques
cbeyls
2
150
Webエディタライブラリ 「CodeMirror」から学ぶ Webアプリ開発のテクニック
ryosukeigarashi
0
250
Featured
See All Featured
The Invisible Customer
myddelton
117
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.3k
Designing for humans not robots
tammielis
247
25k
Designing with Data
zakiwarfel
96
5k
Build your cross-platform service in a week with App Engine
jlugia
227
17k
StorybookのUI Testing Handbookを読んだ
zakiyama
15
4.9k
Building Flexible Design Systems
yeseniaperezcruz
323
37k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Why Our Code Smells
bkeepers
PRO
332
56k
What's new in Ruby 2.0
geeforr
338
31k
Fashionably flexible responsive web design (full day workshop)
malarkey
399
65k
Docker and Python
trallard
37
2.9k
Transcript
DMMプラットフォームが TiDB Cloudを採用した背景 @pospome
登壇者 名前:pospome(ぽすぽめ) 所属:DMMプラットフォーム Twitter:@pospome
概要 • DMMプラットフォーム内の認証チームがTiDB Cloudを採用した。 ◦ すでに本番環境で動いている。 ◦ 別のチームも採用予定である。
認証チームが抱えるDB周りの課題 • オンプレのMySQLをクラウド化したい。 ◦ マネージドなDBを採用し、DevOpsを実現する。 • Cassandra, Couchbaseを廃止し、DBを一本化したい。 ◦ 歴史的経緯でNoSQLも利用していた。
• 中長期的な要件に対応できるDBが欲しかった。 ◦ 書き込みのスケール、強整合性、耐障害性などなど。 • DB起因のダウンタイムを避けたい。 ◦ マイクロサービス環境では調整コストが高い。
New SQLの検討 • 書き込みがスケールする。 • 強整合性を保証できる。 • 耐障害性が高い。 • ダウンタイムがない。
• パフォーマンスはRDBに劣る。 ◦ それほどパフォーマンスにシビアではない環境なので問題ない。 ◦ TiDB移行後の実績値として APIのレイテンシは全体的に20~30ミリ秒ほど高くなった。
よし、Google Cloud Spanner 使おう (´・ω・`)
謎のDMが来た・・・ このDMはノリなのでは? (´・ω・`)
TiDBも検討候補に・・・ • Spannerの論文を参考に開発されたOSSである。 • MySQLプロトコル互換 ◦ MySQLのSQLやテーブル定義をそのまま使える。 ◦ ここに価値を感じたので検討候補に入れた。 •
マネージド環境としてTiDB Cloudがある。 ◦ 認証チームでTiDBを採用する場合は TiDB Cloudを採用することになる。
検証結果 Spannerの方がDBとしては完成されている
Spannerのすごさ • Googleの技術力と資金力によって開発されている。 ◦ ハードウェアも含めてのSpannerである。 • レプリカへの読み取り操作も強整合性を保証できる。 ◦ TiDBよりもパフォーマンスが高くなる可能性が高い。 •
JOIN対象のテーブルを同一ノードに保存できる(インターリーブ)。 ◦ JOINのパフォーマンスを最適化できる。 • 課金体系が柔軟でスモールスタートしやすい。 • Google Cloud との連携がある。
なぜTiDBを選択したのか?
TiDB Cloudを採用した理由 • MySQLプロトコル互換 ◦ レガシーアプリケーションのコード変更が不要。 ◦ テーブル定義の変更が不要。 ◦ 運用作業の変更が不要。
◦ MySQLエコシステムをそのまま活用できる。 ◦ エンジニアの学習コストを低く抑えられる。 • TiDBでも十分中長期的に使っていけると判断した。
TiDB Cloudを採用した後の話 • 本番環境で稼働している ◦ 特に問題なく動いている。 ◦ TiDB CloudによってDevOpsを徹底できている。 •
MySQLプロトコル互換は嬉しい。 ◦ 移行作業は想定以上にスムーズに進んだ。 ◦ TiDBを採用する前と変わらず開発・運用できている。 • MySQLは廃止済み & Cassandraの移行中
まとめ 以下の観点でTiDBがハマる可能性がある。 • オンプレをメインで利用している。 • 組織内にMySQLのノウハウやエコシステムが存在する。 • MySQLを利用しているレガシーシステムが存在する。 地味にSpannerとの棲み分けができている。(´・ω・`)
おわり