一、該不該使用微服務架構
根據業務發展的時間來區分
1. 業務發展早期
建議使用單體架構,開發方便,速度快,迭代更新及時。
優點如下:
部署簡單: 由於是完整的結構體,可以直接部署在一個服務器上即可。
技術單一: 項目不需要復雜的技術棧,往往一套熟悉的技術棧就可以完成開發。
用人成本低: 單個程序員可以完成業務接口到數據庫的整個流程。
2. 什么時間微服務化
需要看業務發展速度,性能是否達到瓶頸。
所以選擇架構時,建議先單體后微服務,不要上來就搞微服務架構。
二、微服務架構設計思想
分而治之
單一職責
關注分離
三、SAAS多租戶
1. 多租戶SaaS架構
小A、小B、小C大學畢業后,一起同租了一套三室兩廳的房子。三個人都擁有自己獨立的房間,且每個房間都有配有一把鑰匙,保證三個人獨立的空間私密性。如果其他人要進入別人的房間,就需要擁有配套房間的鑰匙進行開鎖。而客廳、餐廳、廚房等屬於公共區域,三人共同享有這些資源。
這里小A、小B、小C就屬於應用SaaS多租戶解決方案的企業實體。應用運行在同一個或同一組服務商(即三個人同租一套房子,廚房、餐廳、客廳是多租戶環境下的系統和應用程序、組件),每個數據庫都存儲來自多個獨立租戶的數據(即房子擁有三間不同的房間),然后通過使用保護數據隱私的機制來邏輯隔離不通租戶之間的數據(即每個房間都有配套的鑰匙來保證安全隔離)。因此多租戶架構也被稱為單實例架構(Single Instance)。
在多租戶環境中,由於應用都運行在相同的服務器上,所有的數據都保存在同一個多租戶隔離的數據庫中,因此多租戶模式通常會比較節省硬件資源。但是由於多租戶SaaS架構需要具備相同的硬件、網絡和操作系統配置能力,所以很難實現根據單一用戶的需求去做功能上的定制化,也很難根據某個用戶的請求進行常規的系統升級、重啟之類的操作。
2. 單租戶SaaS架構
如果多租戶是多個人租一套房子,每個人擁有一個房間,那么單租戶就是一個人租一套房子,無須與其他人共享客廳、餐廳、廚房等資源。單租戶SaaS架構中,每個客戶都會有獨立的軟件和硬件環境支撐系統運行,每個數據庫僅存儲來自一個租戶的數據,因此單租戶模式通常也被稱為多實例架構(Multiple Instance)。
單租戶模式下,不同客戶之間的應用軟件和數據一般通過硬件來進行隔離,因此單租戶模式被廣泛應用在客戶需要支持定制化的應用場景。每個租戶可以購買特定的軟件實例,通過定制化滿足他們的特定需求。除了雲服務提供商提供的基礎功能,用戶也擁有很多的可配置能力:比如,用戶可以調整不同的配置需求,向內部數據庫或者外部合作伙伴的數據庫添加不同的模塊。
四、賬戶接口功能示例
下面是賬戶接口功能示例:
五、dubbo, spring cloud, k8s該選誰
如果公司已經開始在構建微服務的路上了,那么如何選型就很關鍵了。
微服務的共同關注點
六、橫向對比
七、優劣對比

八、技術中台
1. 阿里巴巴中台體系
傳統企業平台都是煙囪式的系統架構,企業內部為了迎合業務發展不停的打造各種系統,導致各系統間的重復功能建設和維護帶來的重復投資。重復投資不僅消耗的是人力,財力還有時間。但打通煙囪式系統間交互的集成和協作成本高昂,各大企業不得不借助ESB產品,構建企業服務總線,打通各系統間的交互問題。
但這種借助ESB“中心化”的服務架構缺點也有不少,“中心化”架構的所有服務調用者和服務提供者之間的交互都必須通過這個中心點,而這個中心點的能力是很難進行擴展的,導致這中心會成為一個瓶頸。
2015年阿里巴巴集團啟動了中台戰略,目標是要構建符合互聯網大數據時代的,具有創新性、靈活性的“大中台、小前台”的機制,即作為前台的一線業務會更敏捷、更快速的適用瞬息萬變的市場,而中台將集合整個集團的運營數據能力,產品技術能力,對各前台業務形成強有力的支撐。整體內容如下:
阿里的“大中台、小前台”架構
起初,阿里只有一個淘寶事業部,后來成立了天貓事業部,此時淘寶的技術團隊同時支撐着這兩個事業部。當時的淘寶和天貓的電商系統像我們很多大型企業的一樣是分為兩套獨立的煙囪式體系,兩套體系中都包含的有商品、交易、支付、評價、物流等功能。因為上述原因,阿里集團又成立了共享業務事業部,其成員主要來自之前的淘寶技術團隊,同時將兩套電商業務做了梳理和沉淀,將兩個平台中公共的、通用的業務功能沉淀到共享事業部,避免重復建設和維護。后來上線的聚划算、1688、菜鳥物流等業務,均是基於這個“大中台,小前台”思路建設的。如下圖所示:
“大中台、小前台”架構主要集中在業務共享服務層,業務共享服務團隊,有獨立的團隊來做,也更利於業務的沉淀,降低研發成本,提高研發效率。打破了產品壁壘,之前是系統之間要數據,現在是都去找共享服務中心要數據,共享服務中心提供統一的,標准的數據。減少了系統間交互、團隊間協作的成本。站在巨人的肩膀上。新產品研發不用考慮之前已有的東西,可以快速孵化新的產品,試錯成本低,產品敢於創新,敢於擁抱變化,原來追競爭對手都很困難,現在相當於競爭對手的產品經理不停的給我們提供新點子。可持續發展,技術和業務能力能夠沉淀積累。
“大中台、小前台”與微服務的關系
微服務體現去中心化、天然分布式,與阿里的中台戰略思想類似,是戰略的具體實現方式的一種。現有架構師可以學習這種模式來解決企業本身的應用高並發、高可用、運維等難題,也是現有互聯網經典架構,畢竟是經過阿里實踐過的,除了BAT,Uber、網易、美團、京東等互聯網公司都在很早前就實現了平台微服務化。
2. ebay中台體系