雲端計算的彈性和自動化運維淺析

a83475發表於2015-05-12
這些年,雲端計算從概念逐步發展到大勢,又從大勢逐步落地。這個“落地”的過程,又被公有云、私有云、混合雲等等概念演繹得五花八門。
  
  不過歸根結底,雲端計算的理念還是“讓使用者像用水用電那樣使用計算資源,按需獲取,按量計費”——以服務的方式提供計算資源——因為使用者的計算需求是彈性的,因此真正彈性的雲端計算,才會幫助使用者最大限度地降低計算資源的總體擁有和使用成本。
  
  彈性究竟意味著什麼?
  
  什麼是彈性?首先,整合計算資源,將計算資源池化,通過虛擬機器按需使用計算資源;其次,按量計費,讓使用者能夠根據使用量按月按時甚至按秒來進行付費。
  
  不過,光有了這兩條還不夠。為什麼?我舉個例子:
  
  很多做運維的朋友都深有體會,比如因為一個系統的警告,你就得立即去排程更多的資源,哪怕是深更半夜也得爬起來。
  
  應對的解決方案有很多種,比如加大冗餘,讓計算資源不至於因為突發性的訪問量激增或計算負載的激增而當機。但是,這樣做就和傳統的物理機區別不大了。因為雲端計算的核心優勢之一就是客戶彈性適應計算需求的變化。
  
  為什麼雲端計算最早是亞馬遜做出來的,而不是IBM、惠普、Oracle、SAP這些IT巨頭?就是因為亞馬遜為了應對聖誕節網上購物需求的激增,不得不一再擴容其資料中心,而除了聖誕節、感恩節這些購物高峰季節,平時的購物請求僅僅是峰值的1/5,大量閒置的計算資源不得不讓亞馬遜思考是否能夠將其出租給其他零散計算中心級需求的中小企業。
  
  如果僅僅是滿足零散需求的使用者,其實前兩個彈性也就足夠了。但關鍵是,亞馬遜需要對自己的彈性計算需求進行近乎實時的載入和釋放,這樣才能完全清楚能夠有多少計算資源進行出租。於是,亞馬遜開發了自動伸縮(AutoScaling)功能,不過這一功能主要是針對主機,畢竟,滿足亞馬遜自身的需求是第一位的。
  
  或許亞馬遜當初開發這一功能的架構師是因為離職還是什麼別的原因,沒有將自動伸縮功能延伸到更多領域,我們不得而知。但公有云提供商如果不是對這一功能有著深刻理解,真正為彈性的使用者需求,減輕使用者的運維負擔,或許連主機的AutoScaling也不會做。即便做了,如果只是照搬,創新也就無從談起,譬如阿里。
  
  不止是AutoScaling?
  
  筆者認同“一個做了15年的運維老兵對公有云的深度剖析”那篇文章裡所闡述的觀點:“青雲之後,再難有大的創新,IaaS的創業門檻一下就提高了很多,甚至可以說大門都快關上了。”
  
  很顯然,在公有云基礎架構層面最具創新精神的創業公司當屬青雲。這次也不例外——事實上,與其他雲服務商推出的有限的自動伸縮功能不同,青雲QingCloud的AutoScaling能夠自動調整所有基於QingCloud之上的雲資源,包括IP頻寬、資料庫儲存空間、負載均衡器的後端數量等一切可以監控到的資料。
  
  應該說,青雲的做法大大擴充了我們作為普通使用者的視野。為此,筆者專門採訪了青雲AutoScaling的開發者羅夕(Simon Luo)。他解釋說,使用者在公有云上建個賬戶,然後把物理資源搬到雲上,需要部署資源,或者新添一些業務,也要對主機、儲存和網路資源進行部署。除了部署之外,對於網際網路企業來說,更重要的是接下來的監控,讓系統資源能夠滿足訪問量的變化。
  
  其實,網際網路企業不止是亞馬遜這樣的電商,在各種大促,特別是聖誕、感恩節、雙十一這些時期,可以預見訪問量激增的情況,提前做出充足冗餘。舉個例子,就在三個月前,App“足記”突然席捲朋友圈,有點像去年的瘋狂猜圖、魔漫相機、臉萌這類的App,訪問量突然呈爆發式增長——最高峰每天PV過億,每天新增使用者上百萬!結果呢,足記當機了——一週7天有4天當機,除了一再跟使用者道歉,只能向雲端計算服務商發出求救訊號。
  
  這種情況下,一個好的足夠彈性的架構當然非常關鍵,比如業務層面的擴充套件、網路層面的擴充套件、資料層面的擴充套件等等,其中也包括比如自動伸縮(AutoScaling)和定時器(Scheduler)這類自動化運維工具的合理使用,至少可以在一定程度上,為工程師人工介入進行緊急處理提供相對充足的修復時間。
  
  比如有了自動伸縮功能,並且有監控告警服務做支撐,可以給負載均衡器後面擴充更多的主機、調高頻寬;當然也可以做下調,就是在訪問量長期處於低谷的時候,可以自動減少資源,調低頻寬,這帶來得好處就是成本降低。而且不管上調、下調都不需要人為的參與,所以在人力成本上也會有一定的節省。
  
  據羅夕介紹,AutoScaling可以動態地調節使用者的訪問壓力,調節有兩個方向,一是擴大或者上調,給負載均衡器後面擴充更多的主機、調高頻寬;二是也可以下調,在訪問量長期處於低谷的時候,可以自動減少資源,調低頻寬——這樣帶來的好處一是佔有資源更合理,資源佔用成本降低;二是不需要人為過多參與,節省人力成本,讓企業將運維人員的大部分精力放到業務發展上面。
  
  值得一提的是,青雲AutoScaling是免費的工具,而且執行是基於指令碼的,目前QingCloud會自動幫助使用者生成指令碼,並且可以在控制檯瀏覽。未來QingCloud還會開放指令碼的編輯功能,讓使用者可以通過編寫指令碼的形式自定義操作行為,滿足更復雜、更個性化的需求。
  
  青雲的“彈性”RoadMap
  
  當然,青雲能夠開發超越亞馬遜跟阿里的AutoScaling,除了執著於雲端計算的“彈性”理念之外,還在於其紮實的基礎。
  
  據羅夕介紹,青雲最底層的Collection是監控資料採集服務,它會採集主機的監控,也會採集流量的監控,每層都是上一層的基礎,採集完之後會把它收集起來。而AutoScaling是基於Alarm監控告警做的觸發,Alarm則是從Collection裡面讀取資料。這樣一個基礎,使得AutoScaling在執行的時候利用青雲開放的API和已開發的很多項功能,最終實現對青雲所有資源的AutoScaling。
  
  在青雲的RoadMap裡,目前伺服器、儲存、網路、安全這四大IaaS層的拼圖已經基本完整,包括主機的映像、硬碟、內網DNS等,後續還會持續進行優化,以及針對私有云一些特殊的要求,進行功能的補充。實際上,今年青雲的重點是放在了所謂的Technical PaaS層面——比如AutoScaling和Scheduler。
  
  這兩個功能當然很重要,因為他們可以大大減輕傳統IT運維日常重複的工作。但更為重要的是,像AutoScaling會進一步助力青雲後續推出的Technical PaaS,比如物件儲存,和之後的大資料分析服務。
  
  “像物件儲存和大資料分析,它們本身都是一些叢集服務,這些服務本身就有彈性伸縮的需求,我們研發的同事就可以直接在AutoScaling的基礎上滿足他們服務的彈性。”羅夕解釋說。
  
  很明顯,青雲的產品路線從一開始就在刻意減少資源浪費,並且規避彎路,這無疑是聰明人的做法,前提是,你要對雲端計算構建有著極為深刻的洞察和理解。在筆者看來,這也是為什麼青雲能夠以最為精煉的人力資源,打造國內最為創新的雲端計算平臺的重要原因之一。

相關文章