企業(yè)級架構(gòu)設計原則

當我們在為新的產(chǎn)品或者項目進行系統(tǒng)架構(gòu)設計、制定演進路線、技術(shù)選型的時候,我們需要一些架構(gòu)原則,來指導我們的架構(gòu)設計和選型。

架構(gòu)解決的問題

架構(gòu)作為構(gòu)架在業(yè)務與技術(shù)之間鴻溝的橋梁,e.g:業(yè)務需求 --> 架構(gòu) --> 技術(shù)實現(xiàn)
其主要目的:

為了解決當下或未來軟件系統(tǒng)復雜度帶來的問題,而架構(gòu)其實并非設計出來,而是隨著業(yè)務的發(fā)展逐步演變出來的結(jié)果

架構(gòu)的一些原則

1.Security - Built security in, “安全”帶來的品牌名聲損失、用戶流失、金錢的直接損失,都是企業(yè)級應用不能容忍的事故。

可參考的實踐:

  • 端到端的加密,傳輸?shù)臄?shù)據(jù)通過SSL加密,e.g: Request -> ELB(https) -> EC2(https)

  • 根據(jù)系統(tǒng)不同的用途,將各個系統(tǒng)進行網(wǎng)絡分區(qū),設置不同的防火墻

2.Scalability - 動態(tài)伸縮, 至少支持兩個維度的伸縮,比如水平伸縮和垂直伸縮。

可參考的實踐:

  • 根據(jù)用戶訪問量或系統(tǒng)負載,進行水平的增加或者減少服務器實例

  • 可根據(jù)Segment分流,比如產(chǎn)品線類型,多品牌劃分。

3.Resilient to Failures - 健壯性,容錯

可參考的實踐:

  • 為API設置timeouts,重試機制

  • 異步優(yōu)于同步集成

  • 設置自動熔斷,做到服務降級的同時,為終端用戶提供有意義的信息

  • 防御性代碼和測試

  • 通過ELB或者F5,隔離內(nèi)部服務與用戶的交互的直接交互,屏蔽內(nèi)部服務狀態(tài)變化對用戶操作的影響。

4.Logs,Instrumented and Monitored - 日志與監(jiān)控

可參考的實踐:

  • 分布式追蹤, e.g: dynatrace,zipkin等

  • 中心化日志管理, e.g: splunk

  • 服務監(jiān)控與告警, 定義監(jiān)控指標,設置告警觸發(fā)條件

5.Configurable - 可配置,將系統(tǒng)容易變化的部分,通過配置進行管理

可參考的實踐:

  • 前端樣式styleguide的可配置,可以輕易更換網(wǎng)站風格(換皮膚)

  • 功能的可配置,比如feature toggle

  • 熔斷器的可配置

  • 配置服務器,比如Spring cloud config server,實現(xiàn)配置的動態(tài)管理

6.Automated - 自動化一切可以自動化的任務

可參考的實踐:

  • CI & CD

7.Modular - 模塊化

可參考的實踐:

  • 劃分清楚的職責 - Single responsibility of a component (done well)

  • 關注點分離

  • 高內(nèi)聚,低耦合

  • Just good enough - not over engineered

8.Reuse - 重用已用API資產(chǎn),避免不必要的重復構(gòu)建

可參考的實踐:

  • API文檔,e.g: SwaggerUI

  • API資產(chǎn)管理,比如有些商用的API Gateway, Axway能夠集中管理所有注冊的API生命周期

9.Predictable - Release - 可控發(fā)布,而不是祈禱式發(fā)布

可參考的實踐:

  • 增量發(fā)布

  • 回滾計劃

  • 藍綠部署

  • 灰度發(fā)布

  • 隔離持續(xù)集成和持續(xù)部署

10.Consume over Rent over Buy over Build,除非需要構(gòu)建Core能力,優(yōu)先選擇Build,否則依次考慮Consume > Rent > Buy > Build

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容