100億円キャンペーン第1弾から学んだこと

山本氏は、100億円キャンペーン第1弾によるシステムのトラブルが発生したことで、次のような課題がわかったと語った。

  • 一部機能の停止によって、重要な機能が停止してしまう
  • 負荷試験に漏れがあった
  • チューニングが甘かった

こうした課題への対策のポイントの1つが「タイムアウトの設定」となる。山本氏は「マイクロサービスは複雑であり、壊れることを前提としておく必要があります。当初、タイムアウトの設定を長めにとっていたのですが、それがよくありませんでした。タイムアウトを短縮することで、システムの通信を遮断して障害が広がることを防ぐことができます」と語る。

第1弾キャンペーンでは、認証につながっていたユーザーモジュールがクラッシュしてリソースを使ってしまった。サービスを分割しておくことも大事だという。これにより、障害が発生した時に切り分けが容易に行える。

2つ目のポイントであるテストは、エンド・ツー・エンドで行うことが信頼を得る唯一の方法であり、ライトのトラフィックについては、インターナルのユーザーで1円のトランザクションを発生させることで負荷テストを行ったそうだ。

3つ目のポイントとしては「標準化」が紹介された。PayPayの開発チームでは標準化に向けて、ログシステムの構築、DatadogとNewRelicによるモニタリングシステムの構築、Kubernetesの導入などを行った。また、チームつくりのために、SRE(Site Reliability Engineering)とDevOpsに取り組んだ。

今後の課題は「エンジニアを増やすこと」

ちなみに、山本氏は元はヤフーのエンジニアでオンプレミスのシステムに携わっており、AWSによってシステムを構築したのは今回が初めてだったそうだ。

「AWSのサービスは信頼性が高いです。ヤフーのオンプレミスのシステムに引けを取りません」と、山本氏は話す。

PayPayの提供にあたって、ソフトバンク・ビジョン・ファンドのポートフォリオカンパニーで、インドの決済サービス事業者であるPaytmと連携していることから、PaytmのメンバーからAWSについて知識を得たそうだ。

エンジニアのチームは7つ以上あるが、世界で募集をかけていることもあり、日本人以外のエンジニアが増えてきている。「もっと新しいことに取り組みたいので、エンジニアをさらに増やしたい」と、山本氏はいう。AWSの講演でも、エンジニアの募集を呼び掛けていたので、かなり真剣だと思われる。

ただし、「われわれのチームは、みな貪欲ですが、いわゆるスーパーエンニアの集りではありません」と山本氏。技術への情熱がPayPay採用のカギなのかもしれない。

将来は、「ユーザーによって表示されるクーポンを変えるなどの機能を提供していきたい。まだまだやることはたくさんあります」と山本氏は語る。

キャッシュレス決済市場は競争が激化しているが、その一方で、PayPayは競合であるLINE Payとメルペイと共同で7月11日から、「最大20%戻ってくる!キャンペーン」をセブン-イレブンで開始した。市場が立ち上がった今、プレイヤーが手を結んで、市場を盛り上げていこうとしているのだろう。これからも、日本のキャッシュレス決済市場を占う立場にあるPayPayから目が離せない。