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
6.3k
10
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DMMプラットフォームがTiDB Cloudを採用した背景
私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT
https://findy.connpass.com/event/314602/
pospome
April 17, 2024
More Decks by pospome
See All by pospome
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
670
スタートアップを支える技術戦略と組織づくり
pospome
8
21k
技術好きなエンジニアが "リーダーへの進化" によって得たものと失ったもの
pospome
5
1.7k
DMMプラットフォームにおけるTiDBの導入から運用まで
pospome
8
5.3k
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
44
23k
マイクロサービス環境におけるDB戦略 in DMMプラットフォーム
pospome
12
5.3k
組織全体で開発生産性に取り組むために 専門チームを作った話
pospome
2
2.2k
DMMプラットフォームにおける GKE を利用した プラットフォームエンジニアリングへの 取り組み
pospome
1
980
DMMプラットフォームにおけるコード品質を改善する取り組みの理想と現実
pospome
3
3k
Other Decks in Programming
See All in Programming
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
340
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
110
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
260
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
260
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
360
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
170
バグを直したら useEffect が消えた
colorful12
3
840
Hono + Inertia + React で LP を構築した話
oukayuka
2
210
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
120
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
640
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
220
Featured
See All Featured
Thoughts on Productivity
jonyablonski
76
5.4k
30 Presentation Tips
portentint
PRO
1
390
The Pragmatic Product Professional
lauravandoore
37
7.4k
Prompt Engineering for Job Search
mfonobong
0
440
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
440
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
490
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Making the Leap to Tech Lead
cromwellryan
135
10k
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との棲み分けができている。(´・ω・`)
おわり