服務設計思考:平台化

平台是一套完整的服務。也是一套內部自洽的系統。核心在於分離,業務與通用服務隔離,業務與通用功能隔離。



目標:



  • 對需求方: 快速響應。可以敏捷地進行需求迭代。


  • 對第三方業務方: 以產品的方式提供服務。所見即所得。所有功能對業務方透明。


  • 對測試方: 簡易明了的測試方式。利於自動化測試,灰度測試。


  • 對運維方: 持續集成,自動化編排,自動化部署。


  • 數據方: 提供多維度,詳盡的服務數據。可以給數據方提供簡便的數據分析。


  • 內部開發: 敏捷開發。迅速集成。




實現:



  • 如何實現需求的快速響應?
    明確的方向,清晰的邊界。確認通用語言,核心領域。敏捷開發,快速迭代。AB 測試。


  • 如何為第三方提供產品式的服務?

    所見即所得。詳盡的文檔。第三方調試平台,第三方管理平台。


  • mock 服務,自動化測試,swagger 文檔。


  • Devops,CI,DI 等持續集成,服務監控。


  • 業務數據與分析數據異構存儲。提供易於分析的數據服務。


  • 組內服務負責制度,人類最佳的合作人數是 2-3 人。所以兩人維護一個項目,一人主導,一人輔助,兩人交叉合作是一個很好的團隊合作模式。如圖形成一個網狀模式(紅色線代表主導,黑色線輔助)。這樣每一個項目都將有兩個熟悉的人。




原則



  1. 單一職責。

  2. 業務關注業務,功能關注功能。

  3. 確認邊界,確認核心領域。

  4. 所見即所得。


實施


如何推進業務開發快速響應?



  1. 抽離變化與不變。形成基礎服務

    如下面一套用戶體系,將服務抽離,將變與不變隔離。

    用戶 api: 主要提供用戶相關的接口,變化大,更偏向於業務;

    用戶中心: 主要管理用戶核心領域,變動不大,需穩定高可用的服務;

    鑒權授權中心: 變動不大,主要管理用戶憑證核心領域;





  1. 抽離通用功能。

    那些非業務的通用功能應隔離於業務之外:組件化工具化服務化

    來源監控接口限流日誌分析應用監控服務依賴配置管理系統部署等(業務人員不必關心這些功能相關的事情,只需要關注於具體的業務領域)。關注點分離。

    如上面所涉及的,從Spring Cloud的各大組件可以看出,最終的方案都將走上相近的道路。




  1. 領域上下文劃分。劃分微服務項目。業務隔離,數據去中心化。服務組件化。

    Spring cloud 技術棧:



    • 服務治理: 註冊中心,服務調用,衍生的容錯(熔斷器)

    • api 網關: 來源監控,接口限流(Spring Cloud gateway、zuul)

    • **配置中心: ** 配置管理(Apollo)

    • 自動化部署: Jenkins、docker、k8s

    • 日誌與監控: prometheus、influxdb、skywalking、elk

    • 數據可視化: druid、kylin、superset




  1. 細節管控

    接口版本管理, gitflow 管理,項目迭代 release 版本管理,標準化,敏捷開發。




歡迎關注我的公眾號。



本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】



網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!



網頁設計公司推薦不同的風格,搶佔消費者視覺第一線



※Google地圖已可更新顯示潭子電動車充電站設置地點!!



※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益



※別再煩惱如何寫文案,掌握八大原則!



網頁設計最專業,超強功能平台可客製化



聚甘新



Orignal From: 服務設計思考:平台化

留言