本身我們是一個比較純粹的saas公司,整個技術架構都是基于云端構建,沒有太多私有化部署的經驗。
奈何客戶給得多呢,也得試著搞一搞。
不過還沒確定方案,簡單理一理思路吧。
圖片
這是我們一個比較直觀的架構圖。
以公有云資源為底座,包括云主機和云數據庫。
在這之上構建我們的微服務體系,包括k8s、中間件、微服務、監控系統、CI/CD系統。
這么一套東西,該怎么做私有化部署呢?
私有化的需求分為兩類,「功能性需求」和「非功能性需求」。
「功能性需求」比較好理解,就是需要哪些產品能力。包括前端哪些功能,以及后端哪些API。
「非功能性需求」是私有化部署的核心,如何將服務部署到用戶的私有化環境中。
這種私有化環境還能分為兩種模式。
一種是「專有云模式」,客戶自己基于公有云的獨立賬號購買資源,然后我們把代碼部署過去。
另一種是「私有云模式」,客戶自己的IDC提供服務器,然后我們在服務器上部署數據庫和各類服務。
兩種模式能不同程度保護客戶數據安全性。
首先根據客戶需求,確定產品功能所需的后端服務以及相關API。
這個說起來容易,做起來難。
為什么呢?
因為微服務架構看似松耦合,但是疏于治理,沒有真正按照領域能力做模塊化隔離,各種服務間無序調用。
基本上只能認為是一個分布式大單體。
所以很難理想化地根據產品功能,來劃分出獨立的后端服務集合。
往往是像一棵大樹,拔起一點點,就能帶出一整個盤根錯節的樹根。
如果不管三七二十一,直接整套部署,那幾百個微服務所需要的服務器資源成本將會極高,根本沒法用。
幾十個接口的功能,總不能打包一個k8s集群、若干中間件、幾百個微服務和數據庫的大禮包吧。
怎么辦?
短期看,可能只能按梳理的功能,臨時把所需要的API抽取,集合到一個新的單體服務中,做一些簡單的改造適配,成本相對可控。
長期來看,如果要在微服務架構下靈活交付不同私有化版本,需要做好微服務治理,把分布式大單體按照業務領域、功能模塊進行合理劃分,做好隔離,這樣才有可能按需組合使用。
本文鏈接:http://www.tebozhan.com/showinfo-26-15587-0.html微服務Saas如何做私有化部署
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 如何向面試官證明你做的系統是高可用的?
下一篇: 提高系統性能的必備技能:異步任務完全指南