在常人眼中,數據中心不過是一座擺放了成千上萬臺設備的普通建筑,只要有資金,有人力,誰都可以建造上幾座。而實際上,一個數據中心的復雜度遠超人們想象,是“貧窮限制了想象力”。數據中心幾乎將世界上最先進的信息技術都集成了起來,在這里涉及到動力、制冷、通風、建筑、網絡、計算、存儲、布線、消防、監控等等十幾個技術門類,覆蓋到數十項學科的先進技術。現在很多的云計算、大數據、人工智能、軟件定義也都是在數據中心里大放異彩,數據中心是這些先進技術的實踐土壤,都要到數據中心來走一遭,只有經過數據中心考驗的技術才是真正的技術,能夠得到業界認可的技術。
關于數據中心,維基百科給出的定義是“數據中心是一整套復雜的設施。它不僅僅包括計算機系統和其它與之配套的設備,還包含冗余的數據通信連接、環境控制設備、監控設備以及各種安全裝置”。這個定義還不夠全面,幾乎沒有哪個定義能夠將數據中心概括清楚,因為數據中心實在是太復雜了,并非用幾個詞語或者幾句話就能概括清楚。當然,并不是一開始數據中心就很復雜,在最開始我們甚至可以將擁有幾臺PC的機房也可以叫做數據中心,但數據中心規模和技術都發展太快,復雜性呈幾何性增長,我們討論數據中心的復雜性都是基于當前現狀來討論的。首先,數據中心規模增長迅速,原來占地幾千平米的大型數據中心,放到現在也就屬于中小型數據中心,現在的數據中心動輒10萬服務器,要將這些服務器都放滿就得多大的建筑空間,這還不包括網絡、通風和制冷等其它不可缺少的系統。一旦規模上來,所有的系統都需要適配,這個復雜不是簡單地累加,而是幾何倍數的增長。比如建造大樓,建設一座50層的大樓和120層的大樓成本可不是增長兩倍的關系,假如建設50層大樓,平均下來3000元一平,10萬平米就是3億。120層的話,造價應該是50層樓的10倍,3萬元一平,如果是30萬平方米,那就是90億,整整差了87億。其次,數據中心是一個多功能的建筑物,并不僅僅是一些服務器的集合,要將這些服務器互聯互通起來,并且讓運行的應用軟件平穩運行,需要做大量系統設計工作,每個設備里跑的每一條指令都有其特定的意義。我們知道僅僅以太網的RFC就有八千多篇了,沒有人能將所有網絡協議都搞懂,但卻要在數據中心里部署很多網絡協議,復雜度可想而知。登錄到任意一臺網絡設備,都能看出至少上百行的網絡配置,多的有上萬行,這里的每一條配置指令都是為整個數據中心運行服務的,不可缺少,任何一個局部微小的操作都可能導致全局業務受損,為何要建設自動化運行的數據中心,其實有一個重要的原因就是靠人的經驗去管理數據中心已經不可能了,只能靠機器自動管理。第三,新技術演進太快,云計算也不過才十年之久,就已經遍地開花了,大數據、人工智能甚至區塊鏈都來了,這些技術的寄托都是在海量數據上,哪里有海量數據,就是數據中心。還有5G、移動互聯網、物聯網等等,哪個能離開數據中心?數據中心真是一專多能,海納百川,無所不能,這些應用都給數據中心提出了新的挑戰,數據中心的基礎設施要能滿足這些應用,只能不斷變化調整,系統愈發復雜。第四,人們對數據中心要求越來越高,現在的數據中心全年都不能中斷,每中斷一分鐘都會影響業務,因為很多互聯網業務是24小時的都有人訪問,前幾天阿里云中斷一個小時,全網一片嘩然,阿里云也及時坦誠不公地進行了道歉。這種事情再一再二可以,不能再三再四了,反復多次的故障很容易導致大量用戶流失,最終只能關門大吉,所以數據中心提供持續無中斷的能力看得比命都重要,如此必然要在數據中心的各個系統中做冗余備份設計。冗余備份設計給數據中心帶來的就是增加復雜性,冗余做的越多,復雜性越高,看似安全,實則危險重重。過于復雜的系統運行起來不僅效率低,甚至在故障出現時,根本無法快速準確定位,所以要在冗余和復雜性之間做取舍,選擇上做好平衡。
所以,數據中心不僅包含很多系統,每個系統還都很復雜,越來越復雜,真是“貧窮限制了想象力”。現在哪個大型數據中心不是要靠幾十人的運維團隊才能支撐,這是一項龐大的費用支出,而且還并不能保證支持好,數據中心涉及那么多學科技術,一個人完全掌握一項都不得了,怎么可能都掌握到。數據中心每天要疲于處理各種各樣的問題:應用需求、擴容、變更、升級等等,復雜性增加了這里的每一項工作,要想一點錯不出很困難,這也就不難想象一個數據中心百分之八十的故障都來自人為。這么復雜的系統,沒有誰能夠有百分之百的把握操作能達到預期效果,不出意外。如果我們再一味這樣,將數據中心按如此的方式,不斷建造下去,數據中心復雜性遲早會達到人們無法想象,無法管控的階段,讓數據中心陷入無序,這樣再好的技術也是白搭。數據中心復雜性已經引起了更多人的關注,很多專家和學者也在出謀劃策,給出了一些超融合解決方案,試圖減輕數據中心負擔。現在的數據中心必須做減法,要化繁而簡,不能再去一味追求規模,新技術的引入也不能增加系統復雜性,控制好數據中心復雜度,以免失控。