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

マルチテナントSaaS開発の考え方 with Amplify

Avatar for matsuura matsuura
February 19, 2025
38

マルチテナントSaaS開発の考え方 with Amplify

社内勉強会のためのスライドです

Avatar for matsuura

matsuura

February 19, 2025

Transcript

  1. 要件定義 設計開発 構築 運用保守 提供事業者 顧客 ヒアリング エンジニア 作成 構築担当者

    デプロイ テナント システム 運用担当者 BizDevOps 開発サイクルの比較 従来のパッケージ販売モデル SaaSモデル 要件定義 要件定義 設計 設計 開発 開発 構築 構築 リリース リリース 各顧客ごとに構築し管理していた すべての顧客に対して同じ汎用アプリケーションを提供 テナント テナント テナント 7
  2. 要件定義 設計開発 構築 運用保守 提供事業者 顧客 ヒアリング エンジニア 作成 構築担当者

    デプロイ テナント システム 運用担当者 BizDevOps 場合によっては各顧 客専用のアプリケー ションが顧客の数分 できる 開発サイクルの比較 従来のパッケージ販売モデル SaaSモデル 要件定義 要件定義 設計 設計 開発 開発 構築 構築 リリース リリース 各顧客ごとに構築し管理していた すべての顧客に対して同じ汎用アプリケーションを提供 顧客別の専用カス タマイズに担当者 がロックされる テナント テナント テナント 8
  3. 要件定義 設計開発 構築 運用保守 提供事業者 顧客 ヒアリング エンジニア 作成 構築担当者

    デプロイ テナント システム 運用担当者 BizDevOps 場合によっては各顧 客専用のアプリケー ションが顧客の数分 できる SaaSモデル アジャイル開発と相性が良 く、顧客が求めているもの をヒアリングし日々改善し ていく必要がある 顧客別の専用カス タマイズに担当者 がロックされる テナント テナント テナント 開発サイクルの比較 従来のパッケージ販売モデル 要件定義 要件定義 設計 設計 開発 開発 構築 構築 リリース リリース 各顧客ごとに構築し管理していた すべての顧客に対して同じ汎用アプリケーションを提供 9
  4. テナントA テナントB テナントC テナントA専用 アプリケーション テナントB専用 アプリケーション テナントA専用 アプリケーション A専用の運用保守

    B専用の運用保守 C専用の運用保守 アーキテクチャ 従来のパッケージモデル SaaSモデル 共通した運用保守 アーキテクチャが顧客毎に違うことがある 共通したアーキテクチャ テナントA テナントB テナントC 10
  5. テナントA テナントB テナントC テナントA専用 アプリケーション テナントB専用 アプリケーション テナントA専用 アプリケーション A専用の運用保守

    B専用の運用保守 C専用の運用保守 共通した運用保守 アーキテクチャ 従来のパッケージモデル SaaSモデル アーキテクチャが顧客毎に違うことがある 共通したアーキテクチャ 顧客毎の固有ニーズ を満たせる 顧客毎の固有ニーズ を満たせる テナントA テナントB テナントC 汎用性を高める 汎用性を高める 11
  6. テナントA テナントB v1.1.1 v1.1 テナントBのニーズに合わせ たカスタマイズ パッケージモデルのデメリット v1.0 latest カスタマイズ用の工数や保守費用込

    みの契約になり刹那的に見ると儲か っているように見えるがこういった ビジネス展開をしていると・・・ 13
  7. テナントC v1.2.1 v1.2 テナントA テナントB v1.1.1 v1.1 v1.3 v1.3.1 テナントD

    パッケージモデルのデメリット v1.0 latest テナントCのニーズに合わせ たカスタマイズ テナントDのニーズに合わせ たカスタマイズ 14
  8. テナントA テナントB テナントC v1.2.1 v1.2 v1.3 v1.3.1 テナントD v1.1.1 v1.1

    テナントE v1.4.1 テナントF パッケージモデルのデメリット v1.0 latest v1.4 他のテナントに提供したカス タマイズを使い回すこともあ る 15
  9. テナントA テナントB テナントC v1.2.1 v1.2 v1.3 v1.3.1 テナントD v1.1.1 v1.1

    テナントE v1.4.1 テナントF v1.0 v1.4 どの顧客に対してどんなカスタマイズを提供してい るか把握しづらくなり、またコンフリクトを解消し ないとメイン機能の最新版を提供できない パッケージモデルのデメリット latest 16
  10. テナントA テナントB テナントC v1.2.1 v1.2 v1.3 v1.3.1 テナントD v1.1.1 v1.1

    テナントE v1.4.1 テナントF v1.0 v1.4 それ即ちどこかのタイミングでバグが入ってしまい 最新版で解消されていたとしても各顧客それぞれに 迅速に提供することが非常に困難である パッケージモデルのデメリット latest 17
  11. 管理コンソール SaaSは二つのパーツに分けられる コントロールプレーン アプリケーションプレーン 26 フロントエンド micro service micro service

    micro service micro service バックエンドアプリケーション オンボーディング 請求 ID管理 テナント管理 ユーザー管理 監視 分析 デプロイ
  12. テナントA テナントB application micro service micro service micro service micro

    service application micro service micro service micro service micro service application プールモデル と サイロモデル プールモデル サイロモデル micro service micro service micro service micro service テナントA テナントB 31