サースデザインのアイデアマルチテナントシステムアーキテクチャ

オリジナルリンク: https://blog.csdn.net/cnpinpai/article/details/91967335

TOBサース防火システムは非常に近年です。多くのスタートアップ企業は、エンタープライズレベルのアプリケーションCRM、HR、販売、デスクサースシステムを作成しようとしています。多くのスタートアップ企業も大サースベンチャーを取りました。すべてのサースの利点は、従来のソフトウェアと比較した後に非常に明白です。  

最新年、満足よりもあらゆる面でヶ月間のライン上のCRMのSaaSの名誉システムアーキテクチャ、。ピットの多くのシステム全体の作成プロセス、ステップ、収穫はよりになります。サースシステムアーキテクチャの特徴を要約すると:

サースグレーディングシステム

SaaSの成熟度モデルのアーキテクチャの5つの段階 - 「カオス」から「ユートピア」。

最初のレベル(混乱)0:たびに新しいクライアント、ソフトウェアの意志の新しいインスタンス。レベル1(制御混沌):すべてのクライアントが同じバージョンのソフトウェアで実行されている、とカスタマイズのいずれかの設定を変更することによって達成されます。レベル2(マルチテナント[マルチテナント]、高層ビル[ハイライズ]) すべての顧客が同じバージョンのソフトウェア上で実行する準備ができている、と彼らはすべて同じで実行する「インスタンス。」レベル3(マルチテナント、拡張[ビルドアウト]) この時点ですでにソフトウェアモデルのマルチテナント、単一のバージョンを持っています。しかし、あなたはまだハードウェア拡張(スケールアウト)のようにして拡張することができます。レベル4(ユートピア):同様にレベル3、あなたがソフトウェアの異なる「インスタンス」の異なるバージョンを実行するための効果的な方法を見つけることができない限り。

アプリケーションは、マルチテナントをサポートする必要があります。

    :(。例えば、図に示されているリストの下)マルチテナントは、いくつかの異なるカテゴリーに分けることができる    、請求だけ共有ハードウェア、1.1、単純なクラウドの仮想。    1.2、共有アプリケーション、各テナントに異なるデータベースを使用します。    1.3、共有アプリケーションおよびデータベース(最高の効率、真のマルチテナント)。

1.階層設計

サース階層システムは、およそ次のとおりです。

640?wx_fmt = PNG

サースシステム階層

サースシステム階層:テナント識別>アプリケーション層>データアクセス層>バッファ層>データベース

ビジネスコードは、アプリケーション層で書かれています。

テナントの識別は、その後、後方に伝達バネインターセプタを実装することができるのThreadLocal

アプリケーション層へのデータベースとキャッシュ層は透明でなければなりません。プログラマはコードを書く、そして唯一のビジネスロジックを気にすると、我々は、マルチテナントを心配してはいけません。

2.データは透明で隔離されるように

シンプルであるSaaSのシステムは、任意のシステムはtenant_id(テナントID)を追加し、システムをSaaS型になっているようです。たとえば、元のユーザーのログインは次のとおりです。

640?wx_fmt = PNG

変更

640?wx_fmt = PNG

繧、複雑な業務システムについて、その実践は非常に危険と非常に低い開発効率です。あなたはプログラマがSQLは「とtenant_id = 1」を追加するのを忘れて書く時間を考える場合、結果は悲惨である可能性があります。

より良いアプローチは、SQLデータベースアクセス層を書き換えることです。

640?wx_fmt = PNG

SQLは、接続プールTenatnContextに応じて書き換え。

だから、良いプログラムがダウンして取得するには、システムをアップAPEし、そしてあなたがお互いからの情報漏洩の文字列ではないだろう、ということです。そして第二に、将来は変更せずに、ポイントテーブルや倉庫にも非常に便利である上位アプリケーションを作ります。

3.テナントの識別方式

より良いアプローチは、urlでテナントを識別することです。システムは、このようなabc.crm.baidu.comなどサードレベルドメインのランダムなテナントを生成することである。顧客が独自のドメイン名を使用したい場合は、我々は結合しないCNAMEで生成された第3レベルドメイン、および管理システムに行くことができます。

そのようなテナントは、2人のドメイン名、アクセスSaaSの、ランダムに生成された第3レベルドメイン、他のテナント自身のドメイン名を持つことができる。テナントは次いでTenantContextに初期化されていることを決定するために、コード名の内部に来るかもしれません。

あなたは、ドメイン名を通じて行うにはしたくない場合は、ログイン名によって判断することができます。この方法では問題を切り替えるテナントが関与します。

4.インテリジェントDNS

5. 租户管理系统(计费,订购,定制,充值,催缴)

Saas系统是必须考虑计费系统和租户控制系统。这个系统需要都是独立设计。比如那个租户购买了那些模块,一个月多少钱。租户可以创建最多的用户数。计费到期邮件提醒等功能。

计费方式一般有两种,周期性计费,类似月租方案,和使用量计费,用多少付多少。周期性计费比较简单。也可以两者结合起来。

6. 定制化开发

SAAS的优势在于一套系统多人使用,似乎和定制化开发有冲突。比如A客户想要A功能,B客户不想要。但定制化开发是无法避免的,比如CRM系统这样复杂的系统,不可能一套系统满足所有公司的要求。定制化开发尽可能分系统,分模块去做。然后通过控制台中配置不同租户订购不同模块,那些模块可以在前端页面上显示。不同的子系统需要分开部署。前端可通过nginx根据url分发,比如 abc.crm.baidu.com/bi/xxx/xx这个地址,就分发到BI子系统。不要尝试OSGI去搞模块化,这个是个大坑。

还有开发和产品,现有需求一定要分析清楚,不要一上线发现后患无穷。新功能尽量做的独立可以配置。

7. 灰度升级

SAAS付费企业客户对系统问题都特别敏感。为了减少升级可能出现问题的影响范围,一般都采用灰度升级策略。如果使用了url来区分不同租户,灰度升级配置就会很方便。可以配置nginx 来根据域名做分发,比如租户A(aaa.com)到实例1(版本1.0),租户B(bbb.com)到实例2(版本). 当需要域名配置非常多的时候,nginx配置文档会乱。这块时候可以考虑使用nignx_lua来写一些扩展模块。

8. 容量估计

9. Saas平台架构分层分析

Saas平台架构需要完成从用户申请链接saas到用户对自己购买的功能模块的应用整个过程,用户用起saas看似简单快捷,但这个过程却需要saas平台架构默默完成的非常复杂的处理过程。通过对saas平台架构的了解,可以清晰的分化数据的处理过程,让用户也可以明白saas平台架构处理数据的优势。下面介绍:saas平台架构分为哪几部分。

SaaSプラットフォーム・アーキテクチャプレゼンテーション層:

SaaSのプラットフォームアーキテクチャは、ブラウザまたはローカルクライアントを有することができるプレゼンテーション層のクライアントで使用することができます。あなたがソフトウェアクライアントのリモートデスクトップ技術、ソフトウェア、インタラクティブな技術やその他の技術的なサポートが必要な場合は、サポート:あなたが必要な場合は、Webブラウザインタフェース技術、インタラクティブ技術、(HTML5技術、CSS3の技術、Ajax技術、などのような)他の技術です。

スケジューリング層のSaaSのプラットフォームアーキテクチャ:

SaaSのプラットフォームアーキテクチャスケジューリング層は、分散システムの特徴の一つを反映しています。次に、負荷合理的なスケジューリング、トラフィックプロセッサのトラフィック特性を識別し、スケジューリング層は、各ユーザによって最初AAA認証要求であるの原因です。あなたは、このようなアーキテクチャのSaaSプラットフォームのアプリケーションを介して拡張することができます。また、規模のニーズを満たすためにストレージ、キャッシングなどでは、スケジューリングレベルのプラットフォームはまた、良好なスケーラビリティを持っている必要があります。

ビジネス層のSaaSのプラットフォームアーキテクチャ:

SaaSのプラットフォーム・アーキテクチャビジネス層は、層によって転送スケジューリング要求を受信するだけでなく、受信した要求の実際のビジネス・ロジックを実行するための責任があります。一般に、単一のサーバを使用してビジネス・ロジックの実装は十分にあります。従って、実際のビジネス層をサーバーピアからなる行で構成され、各サーバは、同一のビジネスロジックを実行します。

データ層のSaaSのプラットフォームアーキテクチャ:

処理とトランザクションのビジネスデータを要求のための強力な関係を格納するためのSaaSプラットフォームのデータベースクラスタアーキテクチャ、このようなデータは、現在まだ解決するために、従来のデータベース・クラスタリング技術を使用している、データベースクラスタのSaaSプラットフォーム・アーキテクチャは、主にビジネスに基づいています前記プログラムデータを展開分割。(ユーザ操作ログ)質量が、関係データを記憶するための強力な分散データベースされません。

これらは「サースシステムアーキテクチャを考えて、マルチテナントアーキテクチャサース分析」しているのSaaSプラットフォーム・アーキテクチャの導入は、データ処理アプリケーションのSaaSプラットフォームから見ることができる限り、ブラウザなどに非常に便利で簡単なユーザーのSaaSとして、強力な利点を持っていますか、ネイティブ安全で信頼性の高い製品のSaaSを認定層を通過するためのクライアント・インターフェース、SaaSのプラットフォームプロセスデータ、SaaS型のSaaSプラットフォームのパフォーマンスを向上させるために最適化されたデータ。

サースマルチテナントシステムのアーキテクチャは、次の要件を満たしている必要があります。

640?wx_fmt = PNG

SaaSは、最近の売上高は簡単にテンセント重く、SaaS型システムの将来について楽観的祝福、活況を呈しています!

おすすめ

転載: blog.csdn.net/xmt1139057136/article/details/100588987