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

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

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

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

Avatar for Daisuke Takeuchi

Daisuke Takeuchi

December 06, 2022
Tweet

More Decks by Daisuke Takeuchi

Other Decks in Technology

Transcript

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


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

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

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

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

    アクティビティ事業者やレジャー施設がWeb上でアクティビティの予約やチケットの 販売を行えるようにするプラットフォーム
 - 主に2つに分類されます
 - アクティビティ事業者向け : ウラカタ予約 - レジャー施設向け: ウラカタチケット アソビューのSaaSって?
 今回はレジャー 施設向けの話を します
  4. © 2022 ASOVIEW Inc. 
 9
 3. 外部連携について 
 主に3種類


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

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

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

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

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

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

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

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

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

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

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

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

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

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