FaaS 基於多租戶技術 SaaS平臺設計

多租戶技術(英語:multi-tenancy technology)或稱多重租賃技術,是一種軟件架構技術,它是在探討與實現如何於用戶的環境下共用相同的系統或程序組件,並且仍可確保各用戶間數據的隔離性。 多租戶簡單來說是指一個單獨的實例可以爲個組織服務。

技術離不開生活,技術源於生活

房東有一套兩室一廳的房子,房東和兩個租戶分別簽有合同,合同內容包含租戶擁有哪個房間、期限與其房東的授權證明。

A租戶是一對小夫妻,B租戶是一個剛畢業的單身大學生,A租戶在自己的房間有自己的角色(妻子與丈夫),B租戶同樣在自己的房間擁有自己的角色(單身狗),兩個租戶都與房東有關係,但倆個租戶之間卻沒有任何關係。

多租戶技術特點

1.多個租戶共享平臺。

2.租戶之間數據隔離。

3.租戶之間發佈更新互不影響。

4.簽訂合約租戶無線擴展

FaaS介紹

微服務(MicroService)是以專注於單一服務/功能的小型單元塊爲基礎,利用模塊化的方式組合成複雜的大型應用服務。

FaaS是Function as a Service的縮寫,可以簡單理解爲功能服務化。FaaS提供了一種比微服務更加服務碎片化的軟件架構範式。FaaS可以讓研發只需要關注業務代碼邏輯,不再關注技術架構。

例如:FaaS提供“選擇工作流模板”、“啓動工作流”、“完成流程”、“查看工作流狀態“功能,當觸發“啓動工作流”事件後,再研發所需的業務代碼。業務與架構分離,讓專業更加專業。

FaaS特點

無狀態     目的:業務隔離

1、組件業務配置抽離,腳手架工程使用則配置。

2、項目適合即使用

腳手架工程pom.xml引入便使用

腳手架     目的:自定義模版,快速集成

版本化     目的:多元化的需求變更互不影響

通過FaaS將架構分層

前端:

組件研發完成上傳npm倉庫,並提供組件使用說明。注意:同一類業務封裝成一個插件,高內聚低耦合原則。

腳手架研發引用組件,並根據組件使用說明向組件傳遞參數。

並不是所有功能頁面全部使用遠程組件開發,只有可重複利用的頁面使用該模式。

後端:

FaaS組件

提供功能即服務的組件,實現插入即可使用。

MS服務

微服務層,通過腳手架使用FaaS組件,對外提供單一服務。

WS組件

消費者層,用於消費MS服務,對外提供具體的業務實現。注意:該WS不直接對外提供服務,需打成jar包發佈到maven私服上。

WS服務

腳手架工程,直接裝配WS組件。同時也可以實現特性業務研發。

基礎功能介紹

應用註冊

就像是將每個房間安裝完鎖後,把鑰匙交給房東。

申請應用

租戶選擇房間,並向房東申請簽訂合同。

授權應用

租戶和房東簽訂合同,確定那個房間(鑰匙),什麼期限。

數據授權

只有簽訂合同租戶才享有房間內物品使用權。

應用隔離

每個房間互不干涉

權限管理

用戶有用戶的權限、房東有房東權限、房間有房間的權限,三者不不干涉。

 

房間(平臺)

 

一個房間對應一個平臺(醫生端、患者端、SaaS端),同樣也可以是一個應用(預約掛號、隨訪問卷),房間只需要關聯一個應用而已。同一個房間卻可以被多個客廳關聯,通過關聯關係區分房間屬性(所屬)。且房間擁有獨立入口。

 

 

應用(菜單首頁)

 

所有應用菜單統一掛載在應用商城,應用商城是個房間。創建房間時可選擇應用,不選則默認應用。有了應用後,通過權限功能給組織角色授權。

 

 

客廳(項目)

 

一個客廳代表一個項目,客廳是一個項目的門戶,通過客廳可以展示與客廳關聯的每一個房間。客廳默認關聯應用商城(房間),其他房間、應用可等創建客廳後登錄客廳在應用商城裏下載。創建客廳將自動創建管理員帳號密碼及初始化角色。

拓展內容:客廳不作爲根節點,客廳之上也許還有房東,一個房東可以關聯多個客廳。

 

 

鑰匙(鑑權與重定向)

 

每個房間都會是一個獨立的個體,插拔即可用。不會限制團隊、語言,只需要提供鑑權機制與鑑權後的重定向路徑即可。用戶想進入房間,首先需要鑑權,通過後通過鑰匙打開房門地址。

 

 

合同(用戶APP記錄)

 

用戶從應用商城下載應用的記錄。

 

後續設計 待續 關注 !

推薦閱讀 :

聊平臺,先談主數據
聊平臺,再談元數據
聊平臺,需談數據元
醫院信息集成平臺(ESB)數據集成建設方案【遠程醫療】互聯網醫院 衛健委數據上報平臺技術方案
【技術選型】你的公司,你的項目真的適合微服務嗎?
【劃劃重點】論大數據中主數據的重要性
【視頻問診】ffmpeg+HLS直播與回放技術
【遠程醫療】智能導診技術方案

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章