こんにちは! Bonfire Backend運営の田中です。
7月24日に弊社のオープンコラボレーションスペースLODGEにてBonfire Backend #3を開催しました!
いつもiOS, Android, Designなどさまざまなジャンルにフォーカスをあてたコミュニティを催しておりますが、今回は、サービスのBackendにフォーカスを当てたBonfire Backend#3を開催しました
イベントについて
イベントについてご紹介します。
Bonfire Backend#3のテーマは「モバイル決済の裏側」です。
昨今、さまざまなモバイル決済が目まぐるしく登場しています。各サービスに共通する設計や、使っている技術の違いなどに興味ある人も多いのでは?と思い、このイベントを企画しました。
そして今回はなんと、Origami、Kyash、メルペイ、PayPayの4社から計5名のエンジニアに登壇していただくという、業界初?の取り組みをさせていただきました。
Origami Pay/最初期の苦労話
株式会社Origami 亀井浩明さん
トップバッターは株式会社Origamiから亀井さん。 今年2月からはエンジニアグループのマネージャをされているそうですが、それまではバックエンドからWebフロントまで、多岐にわたり開発をされていたそうです。モバイル決済サービスのローンチ前からOrigamiに入社されていた亀井さんには、Origamiの使用技術の変遷とその時の苦労話をしていただきました。
Origamiがサービスを開始したのは、2015年10月。今でこそモバイル決済は社会に浸透していますが、その当時は浸透しておらず、使用ユーザも使える加盟店も少なかったそうです。
決済処理が発生することも少なく、システムのどこで異常がおきているのかもわからなかったため、近くの加盟店に出向き、自ら決済処理を発生させ、動作を確認するといったことがあったそうです。
当初は、加盟店のレジ係の人が操作方法を知らないので教えたり、決済処理を行うためのデバイスの電源が入っていなくて、起動するまで店内で2,30分待つ、などといったこともあったそうです。
今でこそOrigamiはQR決済が主流ですが、昔はBluetoothを用いた非接触型(iBeacon)の決済方法も採用していました。機種によるBluetooth電波の強さの違いや、端子デバッグ方法の苦労話なども聞かせていただきました。
Kyash/今とこれから 〜Walletの学びとDirectへの挑戦〜
株式会社 Kyash 松田 優貴さん
Kyashからの登壇者は今年2月にKyashに入社された松田優貴さんでした。
松田さんは今年2月まで、ヤフーに在籍されていたので、僕の同期のOJT担当だったということもあり、お話を聞くのを楽しみにしていました。
松田さんには、前半に現在のKyashのバックエンドシステムの構成を説明していただき、後半では現状のシステムの課題に対する解決策を話していただきました。課題にはマイクロサービス構成にしたことによるコンポーネントの責務多寡の問題や、APIがなんでも知っていて、絶対的な正となってしまう「神格化」などを挙げていました。
神格化に対してはCRQSというコマンド責務分離という考え方を取り入れて、それら課題を解決しようと試みているそうです。
松田さんはKyashに入社して約半年ですが、現行システムの課題を正確に把握し、現在開発中のKyash Directにも取り組まれており、即戦力として活躍されているのを感じました。
メルペイ/静的MPM決済を支える技術
株式会社メルペイ sushoさん
メルペイからは入社2年目のsushoさんに登壇していただきました。sushoさんは社内でもその愛称で呼ばれているそうで、自由な社風を感じました。
sushoさんは現在コードペイメントチームに所属されていて、メルペイ決済の処理が開始されてから完了するまでのバックエンドのアーキテクチャを詳細に話していただきました。
メルペイのアプリから決済処理が完了されるまでは大きく4つのサービスが関わっており、それぞれを独立したマイクロサービスとして構成しているそうです。そしてマイクロサービスであることの課題として、データの整合性を挙げていました。
その課題に対して、リクエストが何度行われても同じ結果を返すようにするという冪等性、タイムアウトなどを検知したら自動に元に戻す仕組み、サービス間の不整合を非同期で検知する仕組み、という3つの取り込みを行い、解決に導いたそうです。
それら取り組みを全サービスで実装する手間や、作ったものが期待通りのパフォーマンスをするかという検証が大変といった課題があるそうです。それらを解決するために今後はサービスメッシュを使って、検証したい状況を作りやすくし、テストをしやすい環境を作っていきたいという展望を話してくださりました。
PayPay/100億を支える技術
PayPay株式会社 正木 一平
PayPayからの1人目の登壇者は、2016年にヤフーに入社後、去年からPayPayに出向している正木です。
発表の最初の方は株式会社PayPayの概要を話してくれました。スーパーフレックス、外国籍のエンジニア率40%、アジャイル開発など、聞いて驚くことが非常に多かったです。
その中でも特に驚いたのはセキュアなデータはヤフーのセキュア環境に保存されているということです。開発リソース以外でもヤフーがPayPayを支えているという事を再認識しました。
発表の後半では、正木が現在担当している、PayPayのキャンペーン付与について話してくれました。PayPayでは常に5個以上のキャンペーンが平行して実施されていて、店舗やユーザ属性の条件などを考慮すると40-50のキャンペーンがあるそうです。
ユーザの決済1つ1つが、どのキャッシュバックが適用されるか適切に判断し、キャッシュバックされる予定の金額を即時に伝えるための仕組みを話してくれました。さらに、それらの処理はユーザの決済処理とは独立に稼働するような設計がされているそうです。
PayPay/Payment as a Microservice
PayPay株式会社 Harsh Prasad
PayPayから2人目の登壇者は、2013年にIIT大学院を卒業し、2014年にヤフーに入社したHarsh Prasadです。
登壇していない時は冗談を言って周りの人たちを笑わせ、場を和ませてくれました。そんなHarshはPayPayで決済が行われてからの処理について話してくれました。
PayPayのシステムは多くのマイクロサービスで構成されているそうです。マイクロサービスと聞くと、エラー処理が複雑で大変そうというイメージがありますが、分散システムにすることによってそれを回避しているとのことです。
メルペイと同じようにPayPayでもマイクロサービスの課題は、データの整合性を保つことだと認識しているそうです。それに対して、サーキットブレーカーという仕組みを導入したり、定期実行する不整合検知バッチを用意しているそうです。
懇親会
会の最後には、登壇してくださった方々と参加者を交え、懇親会を行いました。
登壇者の方への技術選定の相談や、マイクロサービスを運用する時の悩みなど、本当にいろいろな話題がそれぞれのテーブルで繰り広げられていました。
全体的に、決済系の会社で働いている人が多く、懇親会がいつも以上に盛り上がっていたように感じました!
僕も、自分が運営だということを忘れて、聴き入ってしまうテーブルもありました(笑)
まとめ
Bonfire Backend#3では、「モバイル決済の裏側」というテーマで、モバイル決済サービスを提供する4社から計5人のエンジニアの方に登壇していただきました。
各サービス、アプリのUIやビジネス的な観点は違えど、似たようなアーキテクチャでシステムが設計されていると感じました。また、同じ課題に対して、会社によって異なるアプローチをしている点に面白さを感じました。
会の終了後に参加者からのアンケート結果を見ると、
「わかりやすい」
「アニメーションで処理のイメージが膨らんだ」
などの声が多かったです。
どの登壇者の方も、発表がすごくお上手で、聞いている人が理解しやすい発表をしてくださったのだなあと思いました。
今後もさまざまな会社の課題と解決策を発表する機会を作り、聞きに来てくださった方や登壇してくださった方の新しい学びになるような場を提供していきたいと思いました。
Yahoo! JAPAN主催の技術・デザインコミュニティー「Bonfire」では、定期的に勉強会を開催しています。 connpassで告知していますので、ぜひご参加ください。
photo credit : 福島 シオン
こちらの記事のご感想を聞かせください。
- 学びがある
- わかりやすい
- 新しい視点
ご感想ありがとうございました