天天看點

阿裡網際網路架構的6大最佳實踐

2016雲栖大會上海峰會于2016.1.20日在上海科技館順利舉辦。本文根據阿裡中間件首席架構鐘華(花名:古謙)在“雲栖大會上海峰會”專場《“網際網路+”架構及實踐專場-企業級資訊系統雲化演進之路》中的演講整理。鐘華在演講中主要為大家介紹了阿裡技術架構發展概況,以及在阿裡在建構網際網路級系統架構的6大最佳實踐。

古謙首先帶領大家回顧了阿裡技術架構前期發展狀況。在2016年,淘寶的技術架構現狀是一個擁有300多個功能的系統,由500多人的技術團隊負責維護,該系統基于傳應用開發架構,但當時淘寶業務每年翻倍增長。在這樣的大背景下,前期的技術架構出現了嚴重問題:牽一發而動全身,業務支援緩慢。上百人維護一個核心工程,項目釋出周期太長,應用處理能力擴充成本高,錯誤難于隔離,同時也使得資料庫能力達到上限。

經過多年實戰和不斷創新,阿裡巴巴逐漸形成了今天自己的核心系統架構(如下圖)。古謙介紹說,這不是單一的産品,是很多包括中間件等在内的産品沉澱和體系化的結果。做架構不能考慮目前的一件事情,要從業務持續發展來思考。他特别強調,共享服務體系的建立打破了應用“煙囪式”的垂直建設方式,使得可以支撐業務快速創新,避免it建設的資源浪費。聚劃算就是依靠這樣的系統架構與理念,依靠幾個人在短時間内完成系統快速上線。

阿裡網際網路架構的6大最佳實踐

那阿裡巴巴在形成今天的網際網路級系統架構過程中,遵循着什麼樣的思路、原則,或者在整個建構過程中,有着什麼樣的經驗值得業界參考呢?古謙在演講中總結了6個原則:

盡可能拆分

服務架構“去中心化”

異步化

資料化營運

盡可能使用成熟元件

盡可能自動化

具體來說,“盡可能拆分”的意思是要以服務化的方式拆分架構,要做到更好地獨立擴充與伸縮,更靈活的部署和隔離錯誤。“去中心化”的服務架構,與中心化架構訴求是不一樣的,“去中心化”的服務架構可以實作服務能力的線性擴充;做到無業務單點,減少故障影響面。

異步化,則是利用異步機制拆分事務,系統解耦合,提升開發效率,不過需要值得注意的一點是要確定系統最終一緻。資料化營運,則要真正發揮資料價值,而不是簡單提供資料平台;同時盡量注意定位跟蹤業務鍊問題,使得更好的管控“去中心化”服務。越是底層系統,越需要穩定,是以盡可能使用成熟元件,這可以保證在項目出現問題以後有充分的掌控力。

提到“盡可能自動化”時,古謙談到說,今天很多網際網路公司的運維跟不上,導緻拖累業務的發展。運維這件事情雖然需要技術人員做,但是百分之八九十工作是可重複的。在運維領域裡,人能做的事情機器也一定要做。一旦機器趨于穩定,一定比人可靠。人在做事過程中有情緒,容易出現人工誤差。一旦機器規模增大之後,自動化是非常重要的。

“自動化”包括運維标準規範和平台化、彈性伸縮自動化、部署自動化、故障處理自動化。在2015年雙11備戰中,由于對自動化環境的充分準備,壓力測試投入由2000人參與測試降低到了之前人數的1/16,這也大大減少了工程師熬夜次數,使得問題一旦出現就能得到快速響應。

最後,古謙表示說,不管是面對政府客戶還是企業客戶,我們的産品和服務需要有自己的核心價值。貢獻服務理念,可以把核心價值和資料變得足夠的穩固,可以面對任何的沖擊,需要把我們的能力釋放出去。通過能力開放平台,企業自身的資料和核心能力,或者外部第三方平台能夠基于自身核心業務能力打造真正的生态。能力開放是新的開放方式,開放出去,對今天“網際網路+”轉型是真正切實有效的業務上的支撐。