Slide 1

Slide 1 text

© 2024 SaaS Engineering Meetup #SaaSEM AWS re:Invent 2023 セッションYouTube動画レポート SAS305 | SaaS architecture pitfalls: Lessons from the field (SaaSアーキテクチャの落とし穴: 現場からの教訓) https://www.youtube.com/watch?v=sPk_-wdbl8U

Slide 2

Slide 2 text

© 2024 SaaS Engineering Meetup SAS305 | SaaS architecture pitfalls: Lessons from the field

Slide 3

Slide 3 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 サーバ DB サーバ DB サーバ DB テナントA用 テナントB用 テナントC用 サイロ サイロモデルでも、コードベースは 1つ (会社ごとのカスタマイズは行わない)

Slide 4

Slide 4 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 サーバ DB テナントA,B,C共有 プール 共用インフラでも適切な論理テナント分離を考える

Slide 5

Slide 5 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS304 DB サーバ DB DB テナントA用 テナントB用 テナントC用 ハイブリッド 分離した部分を意識しないでよいプログラミングを心がける

Slide 6

Slide 6 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 Tier の考え方は航空機の収益構造に似ている https://gigazine.net/news/20170316-airline-class-economics/

Slide 7

Slide 7 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 SaaSにおけるTierごとの収益構造の実際 ■ Costs:費用 ■ Revenue:収益 ■ Catlog size:顧客数 プランなど Tier を 考えることは ビジネスを考えること に直結する。

Slide 8

Slide 8 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305

Slide 9

Slide 9 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 SaaSの落とし穴 顧客プロファイルの欠 如 シングルバージョン じゃないアプリ 自動化に投資しない 成長の計画がない AWS利用料だけを見 過ぎ 誰に提供するものなのか熟慮しないと、機敏性と柔軟性を達成する ことができなくなります。 スケールするためにはすべての顧客に対して運用するシングル バージョンを維持するという視点を保つ必要があります。 オペレーションに投資しないと、運用の卓越性の代わりに、人間のプ ロセスになってしまいスケールできません。 市場を見ずに近視眼的になってしまうと成長できません。 金額だけを見るのでなくテナントの要求やワークロードを分析し、適 切なアーキテクティングをできているか?が重要です。

Slide 10

Slide 10 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 落とし穴具体例1:デプロイモデルは一度決めると変えられないと思いがち

Slide 11

Slide 11 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305

Slide 12

Slide 12 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 落とし穴具体例2:テナントがすべて同じだと仮定しがち

Slide 13

Slide 13 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305

Slide 14

Slide 14 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305

Slide 15

Slide 15 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 落とし穴具体例3:ユニットコストを優先しない コストに対してスケールメリッ トが活かせているか?

Slide 16

Slide 16 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 テナントごとのコスト分析を 実施する 当然売り上げよりコストがかかって いるなら歪な構造である

Slide 17

Slide 17 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 機能ごとにも分析し最適化を図る 使われる(=売れる)機能を デリバリーできているか?

Slide 18

Slide 18 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 落とし穴具体例4:SaaSにおけるDevOpsを考慮しない テナントのオンボーディン グ/オフボーディングを自動 化する

Slide 19

Slide 19 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 SaaSのスケールにはコントロールプレーンが持つ機能が必要と理解する

Slide 20

Slide 20 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 落とし穴具体例5:テナントごとのカスタマイズ

Slide 21

Slide 21 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 テナントごとの約束事(個別改修)は技術的負債です

Slide 22

Slide 22 text

© 2024 SaaS Engineering Meetup #SaaSEM フィーチャーフラグなどを用いて設定できる状態にしましょう

Slide 23

Slide 23 text

© 2024 SaaS Engineering Meetup #SaaSEM SAS305 すでにカスタマイズをしているのであれば慎重に検討が必要です ベース機能 基本機能群 オプション機能 アドバンスド 機能群 エンタープラ イズ機能群 オプション② オプション③ オブション① C社 個社機能 B社 A社 D社 E社 SaaS標準 アドオン機能 顧客セグメント毎の要件は、機能群を準備して、別々のプラ ンで、別々のプライシングで提供する カスタマイズ機能 共通的にどんな企業でもカスタマイズが必要な項目は、「カ スタマイズ機能」を提供する 一部の企業で必要となるが他社でも使える可能性がある機 能は、「オプション機能」として提供する 他の顧客では絶対に使われない特殊な要件については、 「アドオン機能」でカスタマイズ提供するが可能な限り最小化 する 検 討 順 序 要件の違いの実装方針

Slide 24

Slide 24 text

© 2024 SaaS Engineering Meetup 総括

Slide 25

Slide 25 text

© 2024 SaaS Engineering Meetup #SaaSEM 総括 落とし穴は色々あるけれど、避けつつ素晴らしいSaaSを作りましょう!