Skip to content

DNET_SaaSDesignPoints

nishi_74322014 edited this page Aug 3, 2026 · 1 revision

SaaS設計のポイント

概要

SaaS(Software as a Service)設計の重要なポイントを纏めています。

セキュリティ

先ずはサインアップさせないと何もできない。ユーザー認証・認可の基盤設計。

ゼロトラストなる概念の追加。従来の境界防御モデルから、「何も信頼しない」前提でのセキュリティ設計へ。

インフラ

VM

クラウドベースの仮想マシン環境。

VPS

実はVPSも良いのではないかと思っている。

Web

Apache vs nginx

SSL

DBMS

Network

DNS

  • Dynamic DO!.jp(public)
  • クラウド・サービスなどで提供される
    • public
    • private

VPN

クラウド・サービスなどで提供される。

プロキシ

クラウド・サービスなどで提供される。

配信

UIサブシステム

業務系

  • エントリ画面やグラフ表示画面はASP.NET Web Formsでも良かったが、
  • .NET Coreに移行されないのでメンテナンス・フェーズとなった

デザイン重視

MVC、SPA

デザイン重視のコンテンツ部分はASP.NET Core MVC、Reactなど。

性能・操作性重視

性能・操作性を重視する場合、ポストバックではなく、WebAPIにより処理する、Single-page application開発用の(MV*) UIフレームワークがある。

スマホ / タブレット

スマホネイティブを覚えるのが大変なので、HTML/CSS/JavaScriptのレスポンシブデザインで開発したいケースも多い。

  • HTML/CSS/JavaScriptの操作性やグラフィックを上回る
  • フロントエンド多様化の中、サービスのデリバリーのために無視できなくなってきている
  • マルチプラットフォームをターゲットとしたアプリケーション
  • HTML/CSS/JavaScriptとスマホネイティブを組み合せて開発する
  • 皮(側?)ネイティブと呼ばれるスマホネイティブの中に、WebViewを使用してHTML/CSS/JavaScriptをロードして機能する
  • 自作の皮(側?)ネイティブだけではなく、Cordova (PhoneGap)、Monacaなどのプロダクトも使用できる
  • ハイブリッドアプリ以外のクロスプラットフォーム開発ツールも複数登場してきている
  • ハイブリッドアプリと比べ、ネイティブ・アクセス性と性能が良い

プラットフォーム

機能

開発

タブレット

画面サイズ

専用端末化

マルチテナント対応

データ

分割キー

  • 店舗やユーザなどのIDでデータを水平分割する
  • フレームワークがそれ様にできてないとキツイ@ASP.NET Identity

テーブル分割

SQLも変更になるし、あまりやらなそう。

スキーマ分割

  • DBスキーマを増やしていくパターン
  • Oracleでは、CDB/PDBがサポートされた
    • 土台となっている1個のコンテナ・データベース(CDB)に、
    • 複数(最大252個)の仮想的なプラガブル・データベース (PDB)

コンテナ化

コンテナ化したいが運用できる?(DBなどの永続化モノはコンテナ化しないのがベターユースっぽい)

カスタマイズ

定義

  • システム共通

    • 定義ファイル
      • *.config
      • XML
      • ,etc.
  • ユーザ個別

    • 属性テーブルに持たせる
    • スキーマ・レスの非構造化データを使用

属性テーブル

プログラム

  • 動作のカスタマイズは定義で行うようにする
  • マルチテナント時のプログラム追加をどうするか?

参考

外部サービス

要素技術

その他の技術

活用

OSS

SaaS Boost

他のも出てきそうやね。

その他

参考


Tags: 移行, SaaS, 設計, クラウドアーキテクチャ

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally