Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TiDB at PayPay : Why we chose & How we operate

PayPay
June 26, 2020

TiDB at PayPay : Why we chose & How we operate

Speaker: Karan Thanvi
TiDB at PayPay : Why we chose & How we operate ?

A brief introdcution of PayPay application & features with the diversed team behind it. Abstract overview of TiDB & the backend architecture around payment microservice of paypay backend. Issues with payment database bottleneck and it's remedy with TiDB.
Also, information on TiDB deployment architecture with internal tools for operating mutli AZ on cloud TiDB.

PayPay

June 26, 2020
Tweet

More Decks by PayPay

Other Decks in Technology

Transcript

  1. 日本の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.
  2. 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.
  3. なぜ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.
  4. なぜ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.
  5. なぜ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.
  6. Deployment • TiDB on • TiDB on • 2つのクラスター:メインとサブ •

    毎日フルバックアップ • インクリメンタル 1時間バックアップ • 3AZ deployment • Prometheus Stackを使用したモニタリング ©PayPay Corporation.All rights reserved.
  7. 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.
  8. Deployment PD TiDB TiKV Pump PD TiDB TiKV Data Backups

    Main Cluster Sub Cluster • TiDB on Drainer Drainer ©PayPay Corporation.All rights reserved.
  9. 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.
  10. 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.