給架構師的推薦——《企業IT架構轉型之道》

給架構師的推薦——《企業IT架構轉型之道》


評:推薦做系統架構師的同學可以看一下。的確講了一些乾貨,但很多內容留於表面。對於中臺的定義和思考,建設中臺的方法以及阿里中間件有比較完整的描述。

阿里巴巴電商系統的架構經歷了煙囪式架構到分佈式架構再到共享式架構的轉變。#序言

阿里巴巴集團中臺戰略研發的思考

2015年底,啟動阿里集團2018年中臺戰略,構建符合DT時代的更具創新性、靈活性的“大中臺、小前臺”組織機制和業務機制,即作為前臺的一線業務會更敏捷、更快速適應瞬息萬變的市場,而中臺將集合整個集團的運營數據能力、產品技術能力,對各前臺業務形成強力支撐。#3

構建業務中臺的基礎 —— 共享服務體系

“煙囪式”系統建設模式:普遍的企業IT建設模式,基於業務需求建設系統。導致煙囪林立。#9

SOA理念最核心的價值:松耦合的服務帶來業務的複用,通過服務的編排助理業務的快速響應和創新。SOA架構的核心價值 —— 服務複用。#15

不管前端業務形態如何多樣,提供的服務都能很好地包含了核心服務,讓前端業務的交易信息和數據迴流到對應的服務中心。#16

服務最不需要“業務穩定”。一個服務如果一味追求功能的不變,一定程度上就是固步自封,逼其他業務系統重複造輪子。#18

科學證明,人數是7個人的團隊協同效率是最高的。#23

分佈式服務框架的選擇

微服務是SOA的一種演變後的形態,與SOA的方法和原理則沒有本質上的差別。#54

共享服務中心建設原則

在阿里巴巴集團的中臺戰略中,共享服務中心是中臺架構的基石。#57

共享服務中心的架構目的是通過業務拆分來降低系統的複雜度;通過服務共享來提供可重用性;通過服務化來達到業務支持的敏捷性;通過統一的數據架構來消除數據交互的屏障。所以,所有的原則和方法都是為了這些目標服務的 —— 以終為始。 #64

服務中心建設要考量的三個重要方面:設計(面向對象的分析和設計方法)、運營(完整的業務模型,要有數據運營和業務整合的價值)、工程(分佈式架構的優點和引入的分佈式事務、問題排查等難題)。#64

1 高內聚,低耦合原則 #65

高內聚是從服務中心的業務界域來說的,在一個服務中心內的業務應該是相關性很高、依賴性很高的;而服務中心之間應該是業務隔離性比較大的,即追求儘可能的低耦合。

2 數據完整性原則 #65

服務化架構一個很重要的業務價值就是數據模型統一。

3 業務可運營性原則 #65

服務中心首先是從業務出發,單純的技術層面抽象出來的服務框架一般不作為一個可運營的服務中心。服務中心是承載業務邏輯、沉澱業務數據、產生業務價值的業務單元。

4 漸進性的建設原則 #66

服務化架構本來就是一種敏捷的事件,推薦小步快跑的方式逐步推進,不是轟轟烈烈的推翻重來。

數據拆分實現數據庫能力線性擴展

數據庫是最容易產生性能瓶頸的服務組件。#67

採用讀寫分離的方式,拓展了數據庫對數據讀的處理能力,並且單表的數據量是有限的,達到一定數量後數據庫性能會下滑。#68

當單表數據量過大時,採用水平分區的方式對數據進行拆分。確保單個數據庫中保存的數據量在單機數據庫能提供良好的讀寫性能範圍之內。但對於跨庫的表join、事務操作、數據統計、排序等的支持變困難了。#68

數據儘可能平均拆分

儘量減少事務邊界

異構索引表儘量降低全表掃描頻率(binlog)

將多條件頻繁查詢引入搜索引擎平臺

異步化與緩存原則

業務流程異步化

阿里巴巴內部試用消息中間件的方式是實現了業務異步化。#90

數據庫事務異步化

通俗來講,就是將大事務拆分成小事務,降低數據庫的資源被長時間事務鎖佔用而造成的數據庫瓶頸。#92

事務與柔性事務

一個專業的互聯網平臺一定首先考慮的是系統服務能力的高可用,因為服務不可用意味著就是商業損失。#99

柔性事務如何解決分佈式事務問題: #103

引入日誌和補償機制

可靠消息傳遞

實現無鎖

在淘寶平臺中,被廣泛用來解決分佈式事務場景的方案就是基於消息分佈式事務,通過MQ事務消息功能特性達到分佈式事務的最終一致。#107

絕大多數場景下,我們都不需要用兩階段提交這樣低效的方式來解決分佈式事務問題。為了充分發揮柔性事務框架性能的優勢並實現業務的最終一致,需要採納以下配合方案:#123

  • 應用程序一定要做到冪等實現,特別是對數據庫進行數據修改操作時;

  • 遠程模塊之間用乙部消息來驅動,異步消息還可以起到檢查點的作用;

打造數字化運營能力

實現分佈式服務追蹤系統的主要思路是通過服務調用鏈各服務處理節點生成響應的日誌信息,通過統一請求中生成的日誌具有同一ID將不同系統或服務“孤立的”日誌串在一起,重組還原出更多有價值的信息。#138

TraceID,一般包含:IP地址,創建時間,順序數。#138

RCPID,用於標識日誌埋點順序和服務調用間的嵌套關係。#139

給架構師的推薦——《企業IT架構轉型之道》

埋點日誌中會包含:

TraceID、RCPID、開始時間、調用類型,對端IP

處理耗時

處理結果

數據傳輸量:請求大小 / 響應大小

打造平臺穩定性能力

限流和降級這兩個能力是平臺在服務化體系下還能保持穩定運行所必須具備的。#158

共享服務中心對內和對外的協作共享

共享服務平臺的建設思路借鑑了SOA和API管理的思想。#188

業務中臺與前端應用協作

業務中臺是前端應用所需服務的提供者,前端應用是業務中臺服務的消費者,同時前端應用對於業務中臺也是需求的提供者。#196

業務中臺的工作職能之一是保障中臺業務核心穩固以及保持業務能力的通用性,前端應用則往往從項目實施成本和週期最快的角度來說,對業務中臺提供的能力自然是越多越好,又或者對於某一業務的理解,業務中臺方和前端應用放也存在差異。#197

出現中臺與前端應用的爭執時,一般按照業務負責的層級關係一次升級,每一層都有對該部分業務負責的業務架構師作為團隊或部門的負責人。#197

如果發現有些前端應用中對於業務中臺的需求確實是不同於前端應用共性的需求時,這樣的需求就很適合沉澱到共享服務體系中,稱為某服務中心新增的功能。#198

在進行業務沉澱到中臺的工程中,採用共建的模式,業務中臺和前端應用方各派出人員共同建設一個團隊,一起負責該業務功能的實現以及到中臺能力的沉澱。#198

業務中臺績效考核 #198

1 服務穩定是重中之重

2 業務創新推動業務發展

3 服務接入量是衡量服務價值的重要考核

4 客戶滿意度促動服務的提升


分享到:


相關文章: