數據中心就像人一樣:沒有兩個是完全一樣的,尤其是現在。十年前的分離計算、存儲,的硬件,甚至網絡服務運行的硬件給人們留下了堆疊在旁邊的x86的比薩餅盒子,或連接已有30年歷史的計算機主機。為什么不呢?大部分的工作是由軟件工具來定義的,并精確地定義了硬件是如何使用并何時完成的。
從虛擬機到軟件定義存儲,以及網絡功能的虛擬化,這些抽象層將硬件組件抽象成一些更大、更容易控制的東西。
對于早期的數據中心設計來說,這是一個驚人的變化,當行業的主要參與廠商向數據中心投入數十億美元時,當時新興的數字經濟的工廠蓬勃發展。他們的崛起催生了定義如何使用空間和電源的標準委員會,以確保主要供應商不會意外地建立一個太高或太寬的服務器,不適于用行業用戶。
如今在廉價設備上運行的分類服務,通常比以往強大的設備完成得更多。而且也占用更少的空間,并在云中形成到外部資源的自然連接。
人們對基礎設施的做法已經有所響應,但數據庫基本上保持不變,特別是在處理相同的數據庫的工作時,因為他們總是在這個過程中浪費了計算和存儲資源。數據中心運營商正在處理太多的信息,這將繼續下去。
數據中心信息遷移
奇怪的是,大部分行業人士都清楚地知道,過度供應是一個問題。去年的一項研究估計,北美地區的閑置的服務器浪費的資源達300億美元。在去年九月的一項類似的研究中,華爾街日報發現了一個數據中心設施中,有1000多個服務器準備工作,卻一直沒有工作負載。人們才得知數據中心服務器有著這樣一個驚人的資金浪費,而需要提高數據中心的效率從來沒有這么迫切。
信息通過具有無可比擬的數量和種類的數據中心移動,其速度前所未見。思科公司追蹤其視覺網絡指數(VNI)的變化。最新數據表明,基于互聯網的流量2015年每天為2艾字節,相當于自從人類出現以前40%的所說過的話。思科公司認為,到了2019的年,這個數字將超過一倍,達到每天5.5艾字節。
沒有工具的軟件定義和部署數據中心資源,有效地,我們將沒有選擇,只能依靠人工過度配置來處理所有的信息,沒有痛苦的停機時間。對于大多數數據庫服務,我們仍然需要完全的設備配置,這使得這些關鍵系統成為一個瓶頸。而分解是解決問題的關鍵。
擴展到工作負載,而不是基礎設施
數據庫處理是主要的三種功能之一。數據服務是系統的核心,并定義用于存儲信息的模式。快速檢索的索引服務分類,根據定義的參數查詢服務。大多數系統將一次性處理許多不同類型的請求。
其困難來自于如何利用數據庫硬件。這是所有的生硬的力量與請求分布在一個基礎設施。沒有一種系統更適合于處理一個輸入/輸出密集型數據服務。在一個單獨的系統中,也沒有一個機制來處理內存密集型索引服務,或者在一個不同的、優化的機群系統中管理計算密集型查詢的規定。數據庫平臺不喜歡把效率提高到現代數據中心的計算、存儲和網絡服務的分離。人們需要改變,需要系統的發展,以不同的子系統獨立和按需縮放到規模數據庫服務。
有趣的是,這對大多數NoSQL數據庫來說都面臨一樣的問題,因為它是所有的關系系統,一種低效的NoSQL數據庫,甚至有可能情況更糟,因為他們是如何經常搭配一個大型分布式基礎設施。沒有辦法查詢分配到不同的節點,消耗大量的內存和一個裸關節計算爭取資源。解決這一問題的方法是災難性的計劃,這就是為什么我們在數據中心實施過度的配置,還會有那么多的問題的原因。
然而,它不需要是這樣的。多維數據庫縮放是從給我們帶來了虛擬化,軟件定義網絡,并已轉化為更好的數據中心等分解技術。在其最簡單的形式中,多維縮放是軟件定義的工作負載優化,其中管理員組裝的計算,內存和存儲所需的工作量特性。系統是當時的最佳配置避免空轉而維持需要處理高峰時的彈性。
把它看成是根據工作量的需求縮放,在這個過程中需要將每一個可用的硬件進行優化。而不是設計到最低限度的基礎設施。在這世界上充斥著數據,這是一個改變,但速度不可能太快。