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

BtoB SaaSにおける技術課題との向き合い方

BtoB SaaSにおける技術課題との向き合い方

Daisuke Takeuchi

December 06, 2022
Tweet

More Decks by Daisuke Takeuchi

Other Decks in Technology

Transcript

  1. © 2022 ASOVIEW Inc. 
 1
 レジャー施設向けSaaSでの
 外部システム連携について BtoB SaaSにおける技術課題との向き合い方

    
 2022.11.17
 アソビュー株式会社
 竹内 大介

  2. © 2022 ASOVIEW Inc. 
 2
 0. 目次
 1. 自己紹介


    2. レジャー施設向けSaaSって?
 3. 外部システムとの連携って?
 4. 外部システム連携との向き合い方
 5. まとめ

  3. © 2022 ASOVIEW Inc. 
 3
 1. 自己紹介
 - 竹内

    大介
 - エンジニアリングマネージャ / バックエンド エンジニア
 - 主にウラカタチケット(レジャー施設向け SaaS)を担当
 - 趣味: ダイビング、ゲーム、散歩

  4. © 2022 ASOVIEW Inc. 
 4
 2. レジャー施設向けSaaSって? 
 アソビュー!って?


  5. © 2022 ASOVIEW Inc. 
 5
 2. レジャー施設向けSaaSって? 
 -

    アクティビティ事業者やレジャー施設がWeb上でアクティビティの予約やチケットの 販売を行えるようにするプラットフォーム
 - 主に2つに分類されます
 - アクティビティ事業者向け : ウラカタ予約 - レジャー施設向け: ウラカタチケット アソビューのSaaSって?
 今回はレジャー 施設向けの話を します
  6. © 2022 ASOVIEW Inc. 
 6
 2. レジャー施設向けSaaSって? 
 ものすごくおおざっぱなシステムイメージ


    レジャー施設向けSaaSって?

  7. © 2022 ASOVIEW Inc. 
 7
 3. 外部連携について 
 他社サイトで販売するための外部連携(※今回はこの話をしません)


    外部システム連携は大きく2種類

  8. © 2022 ASOVIEW Inc. 
 8
 3. 外部連携について 
 施設運営支援システムとの外部連携(※今回はこの話をします)


    外部システム連携は大きく2種類

  9. © 2022 ASOVIEW Inc. 
 9
 3. 外部連携について 
 主に3種類


    1. 商品連携
 - 連携先の商品を SaaS で販売するため - 連携先から商品情報を取り込んで SaaS 側の商品を作成している - 商品IDのみ持つこともある 2. 販売連携
 - SaaS での販売情報を連携先に伝えるため - 連携方法にもよるが、販売情報が連携されないとゲストは入場できない 3. ステータス連携
 - チケットが利用されたりキャンセルされたりしたときのステータス同期 外部システムとどんな連携してるの?

  10. © 2022 ASOVIEW Inc. 
 10
 4. 外部連携との向き合い方 
 -

    連携先商品のどの情報を取得するか
 - 必要最小限の商品情報を連携している - 料金、販売期間、有効期限など連携先と一致する必要がある情報のみとした 
 - SaaS 側に商品情報を保持するか
 - SaaS 側にも連携先から取得した情報を保持している - 商品ページの説明文などの見せ方はアソビューで登録している - 連携先への依存を局所化 1. 商品連携で向き合ってきたこと
 ✓ 連携先によっては商品IDのみの簡易版でもあり
 - 連携先の商品IDをアソビュー側に持つ - 商品情報のバリデーション等できないので一長一短か 向き合ってきて思うこと

  11. © 2022 ASOVIEW Inc. 
 11
 4. 外部連携との向き合い方 
 -

    パフォーマンス問題(同期連携の場合)
 - 人気商品でアクセス急増した場合など連携先 APIコールが性能ネックになる場合も - サービス全体がダウンする原因にもなりうる - 性能監視やタイムアウト設定、 APIコール数削減など取り組み改善を図っている 
 - リアルタイム性(非同期連携の場合)
 - 購入時点から遅れるだけ入場可能になるのが遅れる - 連携先の性能も考慮し数分ごとにバッチ連携している 2. 販売連携で向き合ってきたこと
 ✓ タイムアウトや例外処理など早めにきちんとやっておくと良い(問題が起きたときの インパクトが大きい)
 ✓ 連携先と協力関係を築き、一緒に課題解決していけるとよい
 向き合ってきて思うこと

  12. © 2022 ASOVIEW Inc. 
 12
 - 連携の方向を極力シンプルに
 - 必要最小限の連携方向とした

    - 着券: 連携先 → アソビュー - キャンセル: アソビュー ← 連携先 - 連携先のステータスをアソビュー側の UIでも見れるようにした(社内からの問合せ削減) 
 - 要件によっては双方向も
 - 運用要件により一部連携先で双方向も対応した(キャンセル) - 特にステータスマッピングと運用フローは連携先と時間をかけて検証した 4. 外部連携との向き合い方 
 3. ステータス連携で向き合ってきたこと
 ✓ 運用が許せば連携は単一方向がわかりやすいしリスクも少ない
 ✓ 双方向は入念に設計とテストが必要
 向き合ってきて思うこと

  13. © 2022 ASOVIEW Inc. 
 13
 4. 外部連携との向き合い方 
 -

    連携先によって異なる要件への対応
 - 主に前述の3つの連携だが詳細な要件は異なることが多い - 簡易商品連携, QR仕様, API/ファイル連携, etc… - 既存の連携方式でいきたいが、どうしても個別対応が必要な場合がある - 結果いろんな連携方式が存在することに・・ 
 - 人気商品によるトラフィック増への対応
 - 販売と着券(入場)というクリティカルな機能は可用性や応答速度はとても重要 - SLOを導入しモニタリングと日々の改善を継続 - インフラの増強などは連携先と足並みを揃えることも - ビジネス側から人気商品の情報を得られるようにし連携先と共有 苦労していること

  14. © 2022 ASOVIEW Inc. 
 - 連携先の個別対応をうまく分離したい
 - 現状 個別対応が既存処理に入り込んでしまっている

    - 今後連携先が増えても追加しやすいようにしたい 14
 5. まとめ
 今後の課題
 このインターフェイスを定義 できないか
  15. © 2022 ASOVIEW Inc. 
 - 運用を考慮しどういった連携が望ましいか関係者と検討する
 - 連携は可能な限りシンプルに、複雑な場合は入念に設計とテストを行う
 -

    例外処理はできるだけ早めに組み込む
 - 性能要件がシビアな機能は性能をモニタリングし改善を継続する
 - 連携先と協力関係を築く
 - 連携先ごとの個別対応部分は分離できる設計だとなお良い
 15
 5. まとめ
 外部連携において大事だと思うこと

  16. © 2022 ASOVIEW Inc. 
 
 お気軽にアクセスしてください!
 https://www.asoview.co.jp/career
 16
 6.

    宣伝
 エンジニア募集しています!!
 私たちは、エンジニアリングの力で、顧客(ゲスト /パートナー/クライアント/地域)に 価値提供するプロダクトを創造することで、遊びを世界につなげていきます。