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

MoT Online Tech Talk Vol.01 - ダウンロード数No1配車アプリを支...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for GO Inc. dev GO Inc. dev
February 05, 2021

MoT Online Tech Talk Vol.01 - ダウンロード数No1配車アプリを支えるバックエンド

今回はオンラインにて、5ヶ月という期間で2つのタクシー配車アプリを統合し、満を持して2020年9月にリリースした『GO』のバックエンドの話を、GO技術責任者とバックエンドエンジニアの方をお呼びして語っていただきました。

2つのサービスの統合におけるデータ同期の裏側や、決済代行サービスの対応、統合を経て『GO』ならではのサービスの提供など、ご参加の皆様には幅広いテーマでMoTの開発事情をお届けいたしました。

YouTube
https://www.youtube.com/watch?v=luHV3velAWA

Avatar for GO Inc. dev

GO Inc. dev

February 05, 2021
Tweet

More Decks by GO Inc. dev

Other Decks in Technology

Transcript

  1. Mobility Technologies Co., • Mobility Technologies とタクシー配⾞アプリ『GO』のご紹介 • タクシー配⾞システムの概要 •

    『JapanTaxi』アプリと『MOV』の統合(本⽇のメイン) • 『GO』のバックエンドシステムのこれから 本⽇の内容
  2. 恵良 和隆(@erakazu) GO技術責任者 / 開発本部本部長 / フル スタックエンジニア 2002年より約16年間、家庭用ゲームや PCゲーム、モバイルゲームなどの開発に

    携わり、2018年にモビリティサービス開 発者へとキャリアチェンジし、次世代タ クシー配車アプリMOVの開発に携わる。 2020年4月から株式会社Mobility Technologiesに転籍し、開発本部本部長 としてエンジニア組織をマネジメントし つつ、新タクシー配車アプリGOの開発に も携わっている。 池田 周平(@haminick) バックエンドエンジニア UserApp向け, 車載端末向け, 車内コ ンテンツ配信WebAPIと社内管理画面 を担当中です。 アプリケーションを 開発しつつ、クラウド環境の面倒もみ れるいまの開発チームが気に入ってい ます。 https://qiita.com/haminiku http://subc.github.io/
  3. Mobility Technologies Co., タクシー配⾞に必要な機能とは︖ 動態情報 (時刻ごとの座標、メーター情報など) 配⾞注⽂ 配⾞指⽰ 配⾞承諾 注⽂確定

    • タクシーの動態情報をクラウド上のシステムに収集 • その情報を元に、ユーザーからの配⾞注⽂を処理する
  4. Mobility Technologies Co., タクシー配⾞に必要な機能とは︖ 動態情報 (座標、メーター情報な ど) 配⾞注⽂ 配⾞指⽰ 配⾞承諾

    注⽂確定 • タクシーの動態情報をクラウド上のシステムに収集 • その情報を元に、ユーザーからの配⾞注⽂を処理する
  5. Mobility Technologies Co., • 『MOV』のシステムをベースとするが、『MOV』乗務員アプリに加えて 『JapanTaxi』乗務員アプリへの配⾞注⽂にも対応する • 『JapanTaxi』乗務員アプリは、『JapanTaxi』アプリからの配⾞注⽂は これまで通り受けつつ、『GO』からの配⾞注⽂も受け付ける •

    『MOV』のアップデートで『GO』を実現するが、 『MOV』から『JapanTaxi』乗務員アプリに配⾞注⽂出来てはならない 統合アプリ『GO』の要件 JapanTaxi対応タクシー⾞両 (JapnTaxi乗務員アプリ) MOV対応タクシー⾞両 (MOV乗務員アプリ) バージョン アップ 呼べるようにする
  6. Mobility Technologies Co., • 『MOV』のシステムをベースとするが、『MOV』乗務員アプリに加えて 『JapanTaxi』乗務員アプリへの配⾞注⽂にも対応する • 『JapanTaxi』乗務員アプリは、『JapanTaxi』アプリからの配⾞注⽂は これまで通り受けつつ、『GO』からの配⾞注⽂も受け付ける •

    『MOV』のアップデートで『GO』を実現するが、 『MOV』から『JapanTaxi』乗務員アプリに配⾞注⽂出来てはならない 統合アプリ『GO』の要件 受けられるようにする 引き続き呼べる 呼べる JapanTaxi対応タクシー⾞両 (JapnTaxi乗務員アプリ) MOV対応タクシー⾞両 (MOV乗務員アプリ) バージョン アップ
  7. Mobility Technologies Co., • 『MOV』のシステムをベースとするが、『MOV』乗務員アプリに加えて 『JapanTaxi』乗務員アプリへの配⾞注⽂にも対応する • 『JapanTaxi』乗務員アプリは、『JapanTaxi』アプリからの配⾞注⽂は これまで通り受けつつ、『GO』からの配⾞注⽂も受け付ける •

    『MOV』のアップデートで『GO』を実現するが、 『MOV』から『JapanTaxi』乗務員アプリに配⾞注⽂出来てはならない 統合アプリ『GO』の要件 バージョン アップ 呼べる 『MOV』は 受けてはいけない JapanTaxi対応タクシー⾞両 (JapnTaxi乗務員アプリ) MOV対応タクシー⾞両 (MOV乗務員アプリ)
  8. Mobility Technologies Co., • 『MOV』のシステムをベースとするが、『MOV』乗務員アプリに加えて 『JapanTaxi』乗務員アプリへの配⾞注⽂にも対応する • 『JapanTaxi』乗務員アプリは、『JapanTaxi』アプリからの配⾞注⽂は これまで通り受けつつ、『GO』からの配⾞注⽂も受け付ける •

    『MOV』のアップデートで『GO』を実現するが、 『MOV』から『JapanTaxi』乗務員アプリに配⾞注⽂出来てはならない 統合アプリ『GO』の要件 バージョン アップ 両⽅呼べる (配⾞統合) 呼べる 呼べる 必須要件=配⾞統合 JapanTaxi対応タクシー⾞両 (JapnTaxi乗務員アプリ) MOV対応タクシー⾞両 (MOV乗務員アプリ)
  9. Mobility Technologies Co., 配⾞対象の情報には⼤きな違いはない(同種のサービスなのである意味当然) 『MOV』と『JapanTaxi』アプリの仕様① MOV JapanTaxi • マスターデータ ◦

    タクシー事業者(会社/事業所) ◦ タクシー⾞両 ◦ ⾞載端末識別⼦ ◦ ドライバー など • 動態情報 ◦ タクシーの位置情報 ◦ メーターの情報(空⾞、迎⾞、実 ⾞、運賃など) など • マスターデータ ◦ タクシー事業者(会社/事業所) ◦ タクシー⾞両 ◦ ⾞載端末識別⼦(IMEI) ◦ ドライバー など • 動態情報 ◦ タクシーの位置情報 ◦ メーターの情報(空⾞、迎⾞、実 ⾞、運賃など) など 配⾞対象の情報
  10. Mobility Technologies Co., ネット決済の仕様が異なり、無停⽌で移⾏するには両⽅への対応が必要 決済代⾏会社 利⽤契約の対象 MOV JapanTax i PAYGENT

    SB Payment Service MOV加盟タクシー事業者 JapanTaxiアプリ加盟タクシー事業者 『MOV』と『JapanTaxi』アプリの仕様③
  11. Mobility Technologies Co., 配⾞/注⽂禁⽌エリアとは︖ 注⽂禁⽌エリア 駅や病院の周辺など、特別な施設やタクシー乗り場の 周辺に迎⾞位置を設定できないようにするための制限 エリア。 「この場所にはタクシーを呼べません」 「この場所からは乗れません」

    配⾞禁⽌エリア 駅待ち中の⾞両などにアプリからの配⾞注⽂がかから ないように抑制するための制限エリア。 「この場所にいるタクシーは呼び出せません」 (乗る場所は関係ない)
  12. Mobility Technologies Co., • 『JapanTaxi』アプリ側のマスターデータを『MOV』のDBに同期する (各種IDのコンバートを含む) • 事業者固有の注⽂禁⽌エリア情報を『MOV』のDBに同期し、 『MOV』のシステムが事業者固有注⽂禁⽌エリアに対応する •

    ⾞両の動態情報を⼀括して保持し、配⾞対象を検索するためのシステム • PAYGENTとSB Payment Serviceの両⽅に対応し、利⽤する決済代⾏事業者 を適切に決定する 配⾞統合に必要なもの
  13. Mobility Technologies Co., 動態情報の⼀元管理 JapanTaxi動態情報 収集システム gRPC Streaming APIに動態データを横流し RedisのPub/Subで動態情報をディスパッチ

    動態情報に含まれるIDをMOVシステム系に変換 RedisからSubscribeしたデータをメモリ上に保持し、 API呼び出しに合わせて動態情報を抽出する MOV動態情報 収集システム
  14. Mobility Technologies Co., • アプリからクレジットカード登録する際、2つの決済代⾏サービスに登録 • 既存MOVユーザーのクレジットカード情報は、事前にSB Payment Service にもコピーしておき、必ず全てのクレジットカード情報は2つの決済代⾏サ

    ービスに登録されるようにする • 配⾞対象のタクシー事業者が『JapanTaxi』アプリ加盟事業者ならSB Payment Serviceを、『MOV』加盟事業者ならPAYGENTを使って決済され るように制御する 2つの決済代⾏サービスへの対応
  15. Mobility Technologies Co., • 『MOV』をベースとする『GO』は、現時点では『JapanTaxi』アプリが 提供していた機能の多くを提供出来ていない ◦ 様々なネット決済への対応 ◦ 統合されたWallet機能

    ◦ 複数⾞両配⾞ ◦ など • APIの追加開発とビジネスロジックやシステム構成の最適化が必要 『JapanTaxi』アプリの機能の取り込み