這些年,云計算從概念逐步發展到大勢,又從大勢逐步落地。這個“落地”的過程,又被公有云、私有云、混合云等等概念演繹得五花八門。
不過歸根結底,云計算的理念還是“讓用戶像用水用電那樣使用計算資源,按需獲取,按量計費”——以服務的方式提供計算資源——因為用戶的計算需求是彈性的,因此真正彈性的云計算,才會幫助用戶最大限度地降低計算資源的總體擁有和使用成本。
彈性究竟意味著什么?
什么是彈性?首先,整合計算資源,將計算資源池化,通過虛擬機按需使用計算資源;其次,按量計費,讓用戶能夠根據使用量按月按時甚至按秒來進行付費。
不過,光有了這兩條還不夠。為什么?我舉個例子:
很多做運維的朋友都深有體會,比如因為一個系統的警告,你就得立即去調度更多的資源,哪怕是深更半夜也得爬起來。
應對的解決方案有很多種,比如加大冗余,讓計算資源不至于因為突發性的訪問量激增或計算負載的激增而宕機。但是,這樣做就和傳統的物理機區別不大了。因為云計算的核心優勢之一就是客戶彈性適應計算需求的變化。
為什么云計算最早是亞馬遜做出來的,而不是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的基礎上滿足他們服務的彈性。”羅夕解釋說。
很明顯,青云的產品路線從一開始就在刻意減少資源浪費,并且規避彎路,這無疑是聰明人的做法,前提是,你要對云計算構建有著極為深刻的洞察和理解。在筆者看來,這也是為什么青云能夠以最為精煉的人力資源,打造國內最為創新的云計算平臺的重要原因之一。