PayPay Inside-Out People and Culture

Tech Talks vol.26 – Database Team

2023.05.30

Tech Talksについて

Tech Talksシリーズは、世界約50カ国の国と地域から集まった個性豊かなプロダクトメンバーたちの声を通して、我々のモノづくりへの姿勢や雰囲気をダイレクトにお伝えしていきます!
今回は、Databaseチームでエンジニアとして活躍する4名にお話を伺います。

中村 弘平(Kohei)

DatabaseチームでエンジニアリングマネージャーをしているKoheiです。前職はゲーム・漫画アプリを開発する会社でDBAとして働いていました。データベースのことだけでなく、インフラエンジニア、プラットフォームエンジニアとして活躍の場を広げたくて2019年の11月にPayPayに入社しました。

大野 薫敬(Oono)

ヤフーでデータエンジニアとして働いていました。PayPayには立ち上げ時からジョインし、当初は社内用の無線LANルーターを買いに行くなど何でもやっていました。カオスで楽しかったです。 PayPayのための様々なインフラを担当してきましたが、少し前にDatabaseチームに異動しました。

Amogh Garg(Amogh)

Tech Lead

インド出身で、来日して10年になります。入社前からPayPayのカルチャーは知っていて、チャレンジングな環境を求めて2020年9月にPayPayにジョイン。以前はインフラエンジニアでしたが、データベースを学びたくて、Databaseチームに加入させてもらいました!

二宮 朋輝 (Ninomiya)

Tech Lead

2019年6月にPayPayに入社しました。バックエンドチームで性能/安定性の改善に向けて取り組んでいましたが、データベース周辺の改善に携わるにつれて興味を持ち、Databaseチームに異動しました。PingCAP Certified TiDB Associate認定世界第一号。

Sachin Badapure

約1年前に来日し、2021年7月からPayPayで働き始めました。Databaseチームで、データベースエコシステムに取り組んでいます。残念ながら取材当日は参加できませんでしたが、日々スピーディに進化するPayPayの環境を毎日楽しんでいます!

チームの業務内容、ミッションは?

Ninomiya:
DatabaseチームはPayPayで使用されているデータベースを包括的に管理しています。現在はMySQL、TiDB、Elasticsearchの3つをAWS上で運用しています。これらを使って、性能や安定性といったものに加えて、金融サービスとして求められるセキュリティ・コンプライアンスなどの仕様を満たすデータベースをいかに効率的に実装していくかということに日々取り組んでいます。PayPayのサービス提供に必要な様々なデータを扱っており、サーバー台数にすると2000台以上にもなる数多くのデータベースを数名のメンバーで管理しています。

Kohei:
データベースを管理する上で重要な観点はいくつかあって、その一つが安定性です。データベースを含め、プラットフォームはあらゆるサービスのベースとなるものなので、通常稼働し続けることが基本になります。
それと同時に、パフォーマンスの改善も重要なポイントです。例えば、1秒間で決済数に対する目標があった時に、データベースからのアプローチで劇的に改善することもあるんです。6時間かかっていた処理がちょっとしたチューニングで3分で終わるなんてこともあります。

Amogh:
あとは、コストの改善もデータベースエンジニアの腕の見せ所ですね。データベースにかかるコストは、AWSにかかっているコストの半分を占めるほど大きいものなんです。事業立ち上げ時はスピード重視で進めてきたところもあるので、チューニング次第でコストを半分にすることも可能です。組織が成長し、リソースも充実してきたので、コスト削減に取り組むステージに来ている感じですね。

Kohei:
実際に、大野さんも1ヵ月で大幅なコスト削減のタスクを完了させてましたよね。

Oono:
TiDBのバックアップの取り方を改善した件ですね。大規模なデータベースなので、ちょっとしたアイディアでも大きな影響が現れますね。
普段からみんな少しでもコストを抑えようと意識していますし、如何にコストを抑えてシステムを用意出来るかというのはエンジニアの面白さの一つでもあると思います。

個々の課題や具体的な取り組みを教えてください!

Kohei:
24時間365日動き続けるPayPayのデータベースをサポートするため、業務が個人に依存しないよう、様々な業務の標準化を推進しています。TiDB、MySQL、Elasticsearchはデータストアという枠組みでは一緒ですが、全く別物でそれぞれ専門的な知識が必要なものなんです。なので、メンバー間で知見の共有を加速させて、メンバー全員で複数のコンポーネントをサポートできる状態を目指しています。

具体的には、どんなトラブルが起きてどう対処したのかを資料として残すことや、今期からのバディ制度導入があげられます。これにより2人の間で属人的な知識の共有ができるだけでなく、その内容を議論してチーム全体にも広めていくことで、アウトプット自体の品質の向上にも取り組んでいます。
これらを通じて少ない人数でより大きな成果を出せる体制をつくっていきたいと思っています。

Ninomiya:
私はTiDBに関連する業務に携わる機会が多く、運用やその改善、バージョンアップや新機能調査などに取り組んでいます。
また、以前バックエンドチームで働いていた経験が活きることもあります。PayPayの技術要素やデータベースの使い方、またサービスのアーキテクチャなど、データベース側からは見えづらい観点に関してチームのサポートを行うことも多いです。ここは業務が属人化してしまっている部分なので、チームメンバーに知識としてどう広げていくか、は大きな課題ですね。

Oono:
僕はElasticsearchは得意としていますが、まだTiDBの知識は十分ではないと自覚しています。なので、個人の課題としては、TiDBの理解を深めていくことと、Elasticsearchの知識をチームに広げていくことに取り組んでいきたいと思います。

Amogh:
Databaseチームはアプリケーションのデリバリーのサポートも行っているので、依頼を受けて手作業が発生することも多いですよね。できるだけその時間を減らせるように、同じような要望が多い場合は自動化をしたり、アプリケーションチームが自分たちで対応できるようなステップを作ったりしたいと思っています。その分のリソースで、データベースの性能向上や新しいデータベースの発掘など、データベース側の改善に注力していきたいですね。

PayPayでのチャレンジングな出来事は?

Kohei:
TiDBを導入したことがPayPayのデータベースとして一番大きなチャレンジだったと思います。ユーザが一気に増えて、今のデータベースでは捌ききれないとなった時に分散型データベースを導入したのですが、当時、日本ではTiDBの経験者はほとんどいませんでしたし、日本語の情報もほとんど見かけませんでした。1から学んで問題が起きないように運用していくというのは、チャレンジングでしたし、キャリアとしても大きな経験になりました。

Ninomiya:
当時4200万ユーザー以上を抱える決済サービスであるPayPay、そのコアとなるデータベースをTiDBに移行するのはなかなか難しいものでした。

僕はTiDBの導入にバックエンドチームから携わったのですが、PayPayとして自信を持って本番環境に導入するために必要なことは全て行いました。具体的にはアプリケーションのTiDB向け改修に始まり、非機能要件の洗い出しや検証、及び問題が起きた場合のリスク評価とそれに向けた事前対応などが挙げられます。MySQLの機能に依存している隠れた仕様をも明らかにしていくのは骨が折れましたが、この移行を通して作成されたドキュメントは今でも役に立っています。

この経験により技術的な観点だけでなく、サービスや事業の観点からもアプリケーションを見ることができるようになったと思います。また、このプロジェクトがDatabaseチームで働くきっかけにもなりました。

Oono:
僕個人としては、ディザスターリカバリーのプロジェクトがチャレンジングでした。このプロジェクトは大規模な障害時にもサービスが継続できるよう、複数の拠点を使用してシステムの冗長化を行うものでした。僕が担当していたElasticsearchでそれをやるのはあまり容易ではなく、ちょうどリリースされた最新の機能を使うことになったのです。かなり手探りになり、苦労もしましたが、あまり例がないようなシステムを構築できたのは良い経験になりました。

チームのカルチャーについて教えてください!

Kohei:
もともとのキャリアがデータベースエンジニアではないメンバーが集まっているので、それぞれが持つ知識や観点をいかしながらディスカッションして決めていく文化がありますね。あとは、フォローし合うことも多いです。例えばオンコールで受けた依頼が自分ではわからなかったり、誰かに助けてほしかったりした時でも、「僕が対応します」って助け合うシーンはよく見ます。

Oono:
みんな親切なんですよね。すぐにリアクションしてくれますし、誰かが困っていれば、察して動いてくれるメンバーが揃っているんだと思います。

Amogh:
Databaseチームだけでなく、PayPay全体にブレない文化がありますよね。何か問題が起きた時に、解決策の発見や改修に誰もが集中していて、誰かを責めたりはしません。Databaseチームでも、不測の事態が起きた時は、全員でZoomミーティングをするのですが、慌てることなく冷静に話し合いができるんです。ただただすべきことに集中しているので、解決も早いですね。

今後、PayPayでチャレンジしたいことは?

Kohei:
Databaseチームとしては、アプリケーションサービスごとに適切なデータベースを提供できるようになりたいと思っています。今は3つのオプションの中から選ぶ形になっていますが、本当はもっと違うアドバイスもできるはずなんです。一番の理想は、データベースの研究や検証の時間を増やして、もっと多くのデータベースを使えるようにすること。PayPayの成長をデータベース側からも牽引できるようになって、「PayPayのDatabaseチームすごい」と言われるような存在になっていきたいですね。

Oono:
僕も同じ意見です。提案できる幅を増やしていくのは大切なことだと思います。既存の知識でどうにかするのではなく、いつも目的に適したものを提案できるよう、様々なデータベースに精通していきたいですね。

Kohei:
本当はデータベースを増やしたり、そのための勉強をしたりするのは大変なことなんですけどね。それを楽しめるメンバーだから、言えることなんだと思います。

最後に、読者にメッセージをお願いします!

Amogh:
PayPayは、自分の意見をちゃんと聞いてもらえますし、裁量が大きいので、会社の成長に貢献したい、オーナーシップを持って取り組みたいという人にはピッタリの環境だと思います。良い意見であればすぐに実装、リリースができるので技術的な成長にもつながりますし、5700万ユーザーに届ける経験を積むことができます。

Oono:
PayPayはいい意味ですごく欲張りです。絶対に24時間止まらないようにしておかないといけませんし、ストレスなく快適に動くようにもしないといけない。セキュリティにも妥協は出来ません。このような環境なので、誰もやったことがないようなまさにチャレンジに出くわすこともあるので、チャレンジ精神旺盛な方にぜひ来ていただきたいですね。

Ninomiya:
Databaseチームでは、インフラとして膨大なデータベースを管理することに留まらず、常に成長するサービスに対してデータベースの方から課題にアプローチできる面白さを経験することができます。技術指向なだけでなく、プロダクトのために本気で取り組みたいという想いがある方には、ぜひチャレンジして欲しいです。

Kohei:
国民的なサービスのデータを管理するということ自体が大きな魅力ですし、それを最新の技術を使ってどう実現していくかというチャレンジに日々向き合えるエキサイティングな環境です。しかも、それをネガティブに捉える人はおらず、チームでタッグを組んで取り組んでいけますし、キャリアに関係なく合理的なアイデアがあればどんどん取り入れていきます。意欲と責任感がある方なら活躍できると思いますよ!

現在募集中のポジション

※募集状況、社員の所属等は取材当時のものです。