在我工作的公司,我們爲數據庫隔離的多個組織開發和託管CRM系統 - 即我們的客戶不共享1個類似於Facebook的大型數據庫,每個客戶端都有獨立的數據庫,但是同樣的CRM軟件。所有其他系統方面(如緩存)都是特定於組織的。多個組織的系統設計
我們正在將服務器遷移到AWS上,這給了我們一個思考基礎架構的機會。
我們的基礎系統是使用CodeIgniter框架編寫的,所以我們在考慮不使用同一個CRM的多個實例,而是根據主機名/用戶帳戶創建單個實例並附加相關的數據庫憑據(此方法CRM將通過專用的URL訪問)。例如。如果用戶A爲公司B工作,我們將連接到公司B的數據庫而不是公司C.這個例子也有助於我們的版本控制。
我只是想知道其他人是否有過類似的經歷,以及總體感覺是保持實例完全隔離還是遷移到真正的「軟件即服務」單實例方法?
數據庫大小相對較小,每個組織5 GB。我很可能會查看額外的用戶身份驗證層,該層映射到組織,然後加載相關的數據庫憑據。然後讓所有人通過https:// crm。[x] .com訪問。 - 我看過負載均衡器,擁有單個域名要直截了當。 – aldocx
如果您擁有專用的URL,則負載平衡可能會變得複雜,但如果您需要它,仍然可能。至於解決方案本身,這與我們爲多客戶端項目所做的相同:一個應用程序和專用數據庫,如果所有客戶端的核心邏輯相同,則只需按用戶組處理數據庫連接。 – Auris