請教各位saas系統(tǒng)如何實(shí)現(xiàn)租戶私有化部署,有什么辦法?
我們系統(tǒng)目前分為公共數(shù)據(jù)、管理后端、租戶端三個獨(dú)立的部分,基本租戶端需要調(diào)用公共數(shù)據(jù)、管理后端獲取相應(yīng)的基礎(chǔ)數(shù)據(jù)和租戶數(shù)據(jù)等。目前考慮的是只將租戶端提供私有化部署,并且使用項(xiàng)目打包的方式給客戶部署、不直接提供源碼。有沒有相關(guān)經(jīng)驗(yàn)的大佬提供點(diǎn)思路和方法
云招OurATS招聘管理系統(tǒng),可SaaS,可本地.
我們的私有化部署,是全量,非部分,真本地部署到客戶的服務(wù)器上.
我認(rèn)為以下兩點(diǎn)是前提:
然后就是私有化部署雙方要考量的問題了.
客戶方可能已經(jīng)充分試用了你們的產(chǎn)品,對產(chǎn)品功能本身沒有意見.
但本地部署時,客戶的IT和安全部門可能會提這要求那要求,要看能不能滿足或協(xié)商解決了.
對于自己來說,SaaS時控制權(quán)全在自己手里,本地部署最終控制權(quán)在客戶那邊,當(dāng)然是想做好自我保護(hù).
具體到我們的云招OurATS招聘管理系統(tǒng)上,我們產(chǎn)品的所有模塊都是自己開發(fā)的,做到了技術(shù)閉環(huán).
在SaaS時,我們是PHP源碼部署到自己的服務(wù)器上,借助Ansible Playbook一鍵部署升級.
在本地部署時,我們使用BPC編譯器將PHP源碼編譯成幾個可執(zhí)行文件,同樣使用Ansible Playbook一鍵部署升級.
和SaaS相比,由于文件數(shù)量驟減,加上服務(wù)器上不再需要PHP運(yùn)行環(huán)境,心理上感覺輕了好多.
當(dāng)然這里如果不用BPC編譯器,也可以使用PHP源碼加密方案然后再打包成phar,再加上 static-php-cli 也能達(dá)到類似效果.
我們最終做到的效果是: 給我們一臺安裝好基本操作系統(tǒng)的機(jī)器,ssh能連上,ansible playbook一執(zhí)行,20分鐘后,本地部署就完成了.
謝謝回復(fù),我們沒有過私有化的經(jīng)驗(yàn),目前是按saas版方案開發(fā)的,請問私有版與saas版在代碼管理上是兩套獨(dú)立還是一整套里面兼容兩種模式,包括個別功能私有版可能有略微區(qū)別
我們是一套.
我們說是樂高式的招聘管理系統(tǒng),其實(shí)就是充分利用了PHP的動態(tài)特性.系統(tǒng)有多個功能開關(guān)和各種Adapter/Factory,按客戶需求進(jìn)行配置.
如果完全是客戶獨(dú)有的定制,沒辦法做成Adapter的,那就直接代碼里判斷 if (A) { A邏輯 } else { 正常邏輯 }
不過我們有PHPUnit測試用例保障代碼不會亂.如果沒有測試保障那可能要多費(fèi)心了.
PHP進(jìn)行一下混淆。將你的幾個重要的類進(jìn)行混淆,也可以使用加密(不打廣告,上網(wǎng)搜有很多)。
我記得有一家加密是目前最穩(wěn)妥的(需要花錢),是在運(yùn)行時解密,需要加裝解密插件,那個是最穩(wěn)的。
至于前端,打包以后本身就是混淆后的代碼。(而且用戶要用肯定就能看見),那玩意找個儲存桶+cdn就完事兒了,成本很低(但是要注意別被打了,量跑起來也是嗖嗖的)。