弊社 LIGHTz 初のアドベントカレンダー1発目でございます
弊社、絶賛 SaaS システムの開発中で、度々設計が議論になります。
そこで、備忘録も兼ねて参考になった資料を一言添えて挙げていきます。
....... 一発目なのに備忘録の投稿をお許しください
これから SaaS を作る皆様、↓もおすすめです。
リソースと分離編
-
マルチテナントSaaSのテナント分離をRow-Level Securityに移行した - Sansan Builders Blog
- 分離に関して各社の奮闘と生きた事例を見ることができます
-
https://mitomasan.hatenablog.com/entry/2016/05/25/210151
- あまり他の記事ではあまり言及されていない観点について述べられています
- url(ドメイン)設計
- DBの接続先の切り替えはユーザーのリクエストを処理する最初の段階でフレームワークレベルで行う
- クォータ・スロットリング
- ロギング
- SSOの仕組みをなるべく備える理由
- あまり他の記事ではあまり言及されていない観点について述べられています
-
マルチテナント SaaS パターン - Azure SQL Database | Microsoft Docs
- プールとテナント単位データベースの組み合わせの例が載っている
-
RDBを使わない究極のマルチテナント. 先日、SmartHRさんのDB移行の話が話題になりました。 | by takezaki | vtecx
- スクラッチする部分が多そうですが、スケールに悩まなくて良さそうです
-
AWS サーバーレスサービスによるマルチテナント SaaS ソリューションの構築 | Amazon Web Services ブログ
- server less で作る場合にテナントデプロイパイプラインが参考になりそうです
-
RLSを用いたマルチテナント実装 for Django
- RLS の対応方法が具体的に書かれている貴重な資料
-
マルチテナント設計色々考えて、結局何もしなかった話 - Speaker Deck
- 業務の特性とフェーズを考慮してガチガチに固めない話
-
マルチテナントのアプリケーション実装〜実践編〜
- DB レベルでは論理的な分離を採用し、DB、ORM以外にもさまざまな工夫で守る
- シャーディングを見据えたスキーマ設計がとても参考になる
- ORM にテナントキーを自動挿入
- クエリモニタリングを実施
-
テナント分離⽅式の使い分けとバランス
- サイロモデル、ブリッジモデル、プールモデルの選択要件の図が分かりやすいです
アクセス制御編
-
業務システムにおけるロールベースアクセス制御 - Qiita
- RBAC の基礎とアンチパターンが参考になりました
-
システムのアクセス制御 (操作権限管理) 設計 | knooto
- 規模別の権限設計に関して記載があります
-
アプリケーションにおける権限設計の課題 - kenfdev’s blog
- 権限設計の多岐にわたる考察が記載されています
以上です。
LIGHTz アドベントカレンダー2021 頑張っていきましょう!