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
9
4.2k
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
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
29
11k
マイクロサービス環境におけるDB戦略 in DMMプラットフォーム
pospome
12
3.4k
組織全体で開発生産性に取り組むために 専門チームを作った話
pospome
2
1.4k
DMMプラットフォームにおける GKE を利用した プラットフォームエンジニアリングへの 取り組み
pospome
1
430
DMMプラットフォームにおけるコード品質を改善する取り組みの理想と現実
pospome
3
2.2k
(再アップロード)Microservices & APIs
pospome
0
72
(再アップロード)Datastore/Go のデータ設計と struct の振る舞いについて
pospome
0
67
マイクロサービス環境におけるToilを削減するTerraformの活用 in DMMプラットフォーム
pospome
3
1.3k
組織のコード品質を向上させる “レビューシステム”の取り組み
pospome
11
7.3k
Other Decks in Programming
See All in Programming
0→1と1→10の狭間で Javaという技術選定を振り返る/Reflecting on the Decision to Choose Java Between Scaling from 0 to 1 and 1 to 10
jaguar_imo
2
390
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
660
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
Going beyond Apache Parquet's default settings
xhochy
0
110
Ruby GitHub Packages
bkuhlmann
0
630
CDKコントリビュートの最初の壁を越えよう! -簡単issueの見つけ方-
badmintoncryer
2
140
What We Can Learn From OSS
inouehi
0
430
デフォルトにして至高、RubyMineの大好きな所
ruzia
0
540
TCAとKMPを用いた新規動画配信アプリ 「ABEMA Live」の設計
tomu28
2
120
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
680
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.4k
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
230
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
Build your cross-platform service in a week with App Engine
jlugia
226
17k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
Bash Introduction
62gerente
605
210k
Web development in the modern age
philhawksworth
203
10k
Teambox: Starting and Learning
jrom
128
8.4k
Debugging Ruby Performance
tmm1
70
11k
In The Pink: A Labor of Love
frogandcode
138
21k
Six Lessons from altMBA
skipperchong
22
3k
What's in a price? How to price your products and services
michaelherold
238
11k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
10
1.5k
A Philosophy of Restraint
colly
197
16k
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との棲み分けができている。(´・ω・`)
おわり