云時代架構首先要理解什么是云計算,根據 NIST(美國國家標準與技術研究院)以及微軟、IBM、阿里云等對云計算定義為三種服務模式,LaaS(Infrastructure as a Service 基礎設施即服務)、PaaS(Platform as a Service 平臺即服務)、SaaS(Software as a Service 軟件即服務)。
客戶端是 vue、react 為主 pc/h5 頁面和小程序客戶端、安卓、ios 客戶端,以及開放給第三方 open API SDK。
網關是所有服務的統一和唯一 API 請求入口,擁有負載均衡、驗證權限、分流請求、熔斷請求、監控請求、公共服務統一邏輯處理等,網關組件往往會搭配 oauth2 作為登錄授權驗證,用戶權限驗證,搭配 erueka 作為 API 接口服務注冊和發現,搭配 apollo 作為配置中心??梢园l現下圖中藍色部分都是 PaaS 層定義平臺組件部分,這些組件承擔系統中公用和部分非業務邏輯事情。
中臺 API 可以理解為宏流程模型具體實現代碼,關注的整個宏流程模型的具體實現,例如中臺 API 中有一個【外賣平臺商品管理 API】接口,這個 API 做了外賣平臺接口封裝,調用這個接口就可以完成三個平臺的商品管理。因為這個接口實現宏流程模型,除了基本的商品管理新增、修改、刪除外不包含其他的業務邏輯。
這個時候有一個需求需要在客戶添加商品成功后推薦類似商品給客戶繼續添加,這個具體的業務邏輯應該寫在【前臺業務】中,而不是中臺 API 中。因為這個業務邏輯不是宏流程模型中的邏輯,不符合通用業務標準,同時也無法直接復用,因為推薦選項可能是商品類目推薦、也可能是商品名稱相似推薦。
如果這個推薦業務上線后受到客戶歡迎,是可以考慮納入中臺 API 中的。但是不應該修改宏流程模型,因為推薦不屬于外賣平臺管理的行業標準,準確來說這個屬于數據中臺的推薦能力,應該納入數據中臺中實現推薦 API。如果沒有建設數據中臺,那可以考慮新增一個中臺推薦 API 模塊,再修改【前臺業務】把原有邏輯改為調用中臺推薦 API 邏輯即可完成,這樣中臺推薦 API 成為可復用的能力。
通過前臺業務和中臺 API,即業務和領域模型邏輯分離,做到中臺 API 的穩定性、復用性大大提高,前臺業務具備快速響應市場變化和低成本試錯能力。
市場變化會直接影響系統的穩定性/可用性,首先是流量變化,當某一模塊面對高漲流量時通過容器技術很容易建立多節點應對,例如美團外賣訂單量這天指數級增加帶來超出現有訂單系統能承受最大峰值,我們可以通過 kubernets kubectl 快速新增一個訂單中臺模塊 pod 節點,通過網關動態調整應對峰值流量,當流量下降后我們可以刪除掉新增這個 pod 節點,做到需要時實例化,不需要就刪除,不會浪費資源和成本。
其次是創新業務低成本試錯,很多時候我們會嘗試進入其他行業或熱門市場中,需要產品研發團隊能快速響應需求開發和上線,項目需要控制整個投入成本,例如是對業務基礎上進行微創新,只需要多啟動一個 pod 節點做前臺業務實現,剩下復用中臺接口 API。如果是全新項目沒有可復用的,我們同樣是啟動 pod 節點,部署需要的平臺組件和前臺業務實現,成為一個獨立的系統環境,后期就算失敗也可以快速注銷掉,不會影響其他系統。
作者勘誤,laas應該是iaas。