Slide 1

Slide 1 text

©PayPay Corporation.All rights reserved. PayPayでのTiDB なぜ選んだのか?どうやって運用しているか? Database Lounge Tokyo #6 Karan Thanvi Platform @PayPay, Inc

Slide 2

Slide 2 text

日本のNo.1決済サービス ゼロタップ支払い ● オフライン決済 ● オンライン決済/ミニアプリ ● P2Pと請求書の支払い PayPayモールミニアプリ ● ヤフー ECを搭載 近くのお店 ● PayPayが利用できるお店が地図一覧 で分かる ● 1つのQRコードでPayPay以外にも Alipayで支払える(Alipay利用OK店 舗のみ) お知らせ PayPayピックアップ ● 事前注文テイクアウトサービス PayPayボーナス運用 ● PayPayボーナスで擬似運 用体験ができる タクシーを予約する ● DiDi ミニアプリ その他多数 PayPayフリマ ※2020年1月16日 ICT総研調べ「 QRコード決済の利用可能店舗数に関する調査」より ©PayPay Corporation.All rights reserved.

Slide 3

Slide 3 text

世界各国から集まったプロダクトチーム プロダクト本部 デザイン プロダクト管理 エンジニアリング プロダクト マーケティング プロダクト オペレーション プロダクトPMO・ コントロール 20カ国以上から集まった200名以上のメン バー ©PayPay Corporation.All rights reserved.

Slide 4

Slide 4 text

TiDBとは ● HTAPワークロードをサポートするオープンソースの NewSQLデータベース ● MySQLコンパチブル シンタックス ● 強い整合性を持つ分散トランザクション ● OLTPとOLAPのサポート ● 水平方向にスケーラブル ● 高可用性 ● CloudNative ©PayPay Corporation.All rights reserved.

Slide 5

Slide 5 text

TiDB Architecture Reference: https://docs.pingcap.com/tidb/v4.0/architecture#tidb-architecture コンポーネント ● TiDBサーバー ● Placement Driver(PD) ● TiKVサーバー ● TiSpark ● TiDBオペレーター ● Pump(tidb-binlog) ● Drainer(tidb-binlog) ©PayPay Corporation.All rights reserved.

Slide 6

Slide 6 text

なぜTiDBか? Architecture of PayPay Payment Finnet Wallet App POS Online Credit card Network ● オフラインとオンライン支払い ● Amazon AWSでマイクロサービスアーキテクチャ ● Spring Boot + MySQL (Amazon Aurora) ©PayPay Corporation.All rights reserved.

Slide 7

Slide 7 text

なぜTiDBか? ● 2020年4月時点、サービス開始から わずか1年7ヶ月で、2,800万人を超 えた。 ● ユーザーや加盟店の増加により、1 秒あたりのトランザクション数(TPS) も伸びている。 ● そのため、Paymentマイクロサー ビスのAuroraがボトルネックにな り始めた。 Reference: https://blog.paypay.ne.jp/paypays-journey-to-1000-payments-per-second/ ©PayPay Corporation.All rights reserved.

Slide 8

Slide 8 text

なぜTiDBか? TiDB Pros ● MySQLコンパチブル ● Horizontally スケーラブルとHigh Availability ● アプリケーションレベルのシャーディングは不要 ● フィンテックでの利用実績がある ● Handled 3x more transactions compared to Aurora Aurora Cons ● Aurora Binlogボトルネック ● NO Horizontally スケーラブル ©PayPay Corporation.All rights reserved.

Slide 9

Slide 9 text

Deployment ● TiDB on ● TiDB on ● 2つのクラスター:メインとサブ ● 毎日フルバックアップ ● インクリメンタル 1時間バックアップ ● 3AZ deployment ● Prometheus Stackを使用したモニタリング ©PayPay Corporation.All rights reserved.

Slide 10

Slide 10 text

Deployment PD TiDB TiKV Pump PD TiDB TiKV Data Backups Main Cluster Sub Cluster Main NS Sub NS ● TiDB on Drainer Drainer ©PayPay Corporation.All rights reserved.

Slide 11

Slide 11 text

Deployment PD TiDB TiKV Pump PD TiDB TiKV Data Backups Main Cluster Sub Cluster ● TiDB on Drainer Drainer ©PayPay Corporation.All rights reserved.

Slide 12

Slide 12 text

TiDB on ● インフラ(EC2): Terraform (社内モジュール) ● TiDBミドルウェア: Ansible (tidb-ansible) ● マネジメント: カスタム Python Fabric (社内 ツール) Reference: https://github.com/pingcap/tidb-ansible Operations TiDB on ● インフラ(EKS): Terraform ● TiDBミドルウェア: Helm ● マネジメント: カスタム Python Jinja社内ツール ● tidb-operator (semi)自動リカバリ Reference: https://github.com/pingcap/tidb-operator Infrastructure as Code ©PayPay Corporation.All rights reserved.

Slide 13

Slide 13 text

Operations TiDB Generator ● TiDB,TiKV で利用する設定ファイルのテンプ レートを提供する ● TiDBをデプロイするための codeを作成 ○ Terraform(eks, network, etc.) ○ Helm のユーティリティスクリプト ○ Customs jobs 用の k8s yaml ○ Prometheus 用の k8s manifests ● 上記で作成したファイルを元に、 helmや kubectl などでデプロイする TiDB Fast-Ops (fop) ● Terraformモジュールを使用してインフラをプ ロビジョニングする ● fop ○ カスタム設定でtidb-ansibleにパッチす る ○ 生成されたansibleでtidbミドルウェアを デプロイする ○ AWSタグを使用して、TiDBクラスターコ ンポーネントを参照できる Infrastructure as Code ©PayPay Corporation.All rights reserved.

Slide 14

Slide 14 text

Future Work? ● TiDBの利用するサービスを増やしていく ● より自動化を進めていく ● 復旧時間の短縮 ○ 大災害への対応 ○ データの復旧 ©PayPay Corporation.All rights reserved.

Slide 15

Slide 15 text

Thank you!!! お疲れ様でした! ©PayPay Corporation.All rights reserved.