1號店如何玩轉混合雲

黃哲鏗:很高興有這個機會能夠跟大家一起來分享1號店是怎麼在混合雲去做實踐的。這是我個人的一個介紹,我是基礎平臺部的總監,主要是負責安全,還有云平臺,以及我們的運維的工作。這是大致的介紹路徑,首先我們會講一下1號店業務特點,以及我們混合雲應用的背景,以及整體的技術架構,和我們從去年開始在做混合雲的過程中我們遇到什麼樣的問題以及我們怎麼解決的,最後我們會展望一下1號店在混合雲這塊,我們後面有什麼樣的規劃。首先我們講一些業務,因爲其實技術解決的是業務上的問題。對於電商來說,我們一個行業裏面的業務特點是什麼呢?首先從全行業來看是價格戰橫行,比較知名的一些電商網站相信都打過價格戰了。價格戰其實從根本上來說,說實話這是一個更引爆關注的一個行爲,而不是真的降價,這個說實話。因爲我們1號店有一個PRS系統,我們能夠監控全網所有電商網站價格變動情況,在國內打價格戰非常有名的某兩名電商公司,他們最兇的一場價格戰是在去年我記得。我們監控下來的結果其實沒有人在真的降價,反而是1號店在這些單品裏面有差不多20%是我們的價格最低,而那兩家是在吆喝,是耍流氓。然後就是野蠻式的促銷和拉動,你便宜我比你更便宜,你比我更便宜我就免費,你免費我就白送,這是非常野蠻式的一個促銷。馬太效應,就是說這個行業現狀做得越大越好的你得到的顧客資源越多,反之就會被淘汰。

像1號店從2008年開始做快消的電商,我們口號叫做網上沃爾瑪,誰知道2010年我們真的變成沃爾瑪,跟我們同期在做的電商網站沒剩幾家了,就商超類的電商網站。其實去年整體電商消費增長是大概50%左右,相對前幾年來說是平穩的增長,在移動端其實是去年是爆發的年份。很多的一些電商網站他在移動端的銷售站點都能夠達到50%、60%,一般來說應該是30%、40%,現在普遍應該達到這個量。剛剛介紹這個行業是這個現狀,那1號店在這個行業裏面你也不能清高。所以我們也做了一些相對比較有代表性的我們的促銷。剛結束的311的進口牛奶節,它當天的定單量每分鐘的定單峯值是平時的十幾倍,所以你們可以想像十幾倍的量,平時你有沒有這麼多的服務器的儲備,所以當這個量級非常大。右邊那個圖是去年雙11的時候,這個是在紐約時代廣場就放了一天,什麼都沒有,就是這張畫面放了一天。因爲去年很有意思,阿里說雙十一是他們的,是他們註冊的,OK,這可能更是一個事件性的營銷了。但是在這兩場促銷裏面,當天的交易量都是增長到了平時的十幾倍和數十倍,所以這樣爆發式的增長特別適合混合雲的場景。下面我們會介紹。怎麼樣才能支撐像我們電商行業爆發式的增長呢?第一個方案就是私有云,就是我們自己買很多的服務器。方案B就是使用混合雲,就是我們日常的一些業務,核心的一些業務,像購買流程,用戶數據,下單流程,這些比較核心的我們會用私有云來做。像類似於搖一搖,像春節時候大家搖一搖搶紅包,這種場景可能更適合公有云來做。因爲它可能不是核心的業務,但是它的量非常大。像這樣的一個業務。這是1號店雲平臺規劃的一個路徑。其實開始我們應該是在比較早的時候,1號店應該是在做了三年四年左右我們就開始做一些自動化管理的一些工具,這些工具包括我們自動發佈的程序,我們管理我們虛擬機的系統,我們配置化管理的系統。有了這些自動化系統管理之後我們下一步就是做私有云,私有云就是把我們剛剛說的這些系統把它們都整合起來,整合起來之後我們就能夠有一套我們私有云的一個管理平臺,包括我們現在1號店內部的測試服務器,我們有大量的測試服務器,我們也會用這個私有云平臺管理起來,包括線上服務器我們也是用這套系統一起來做管理。

有了私有云平臺之後再往下就用到混合雲了。我們通過把私有云的一些接口,包括安全性等等把這些完善之後,我們就能夠協同外部的一些雲服務的提供商,像首都在線,這一類的雲服務提供商,跟我們一起來做一個整合。這是1號店的雲平臺介紹,這也是一個比較general的架構,最底層應該是info structure,再上一層,中間這層就是PAAS,Plateform as a service,再上面就是應用層,包括定單服務,包括支付服務等等,以及我們的開放平臺。這是1號店混合雲的一個總體的架構。顧客訪問進來的話,首先會訪問到我們的GLSB,Global Server load balance,這是1號店自主研發的流量調度一層,通過這個我們後面調度我們自己的私有云和外部公有云,整個就構成了我們1號店的混合架構雲。

再往下看細的怎麼樣啓動一個混合雲呢?首先剛剛我們介紹過,因爲1號店去年前年實現了私有云,在私有云基礎上我們首先對公有云做一個連接,因爲我們有一個私有云的管理平臺,也可以叫做混合雲的管理平臺,這裏連接之後我們獲得公有云的這些資源,比如說服務器,然後我們的私有云的管理平臺會對公有云服務商提供過來的服務器列表,包括配置,包括IP等等進行校驗。校驗之後我們會把我們的一些配置信息,以及我們一些鏡像,一些模板傳給我們公有云服務商,他們會在他們的服務器做配置做部署。後面我們私有云平臺會給公有云一個授權,這個是解決安全問題。然後我們看防火牆下面打開了一個口,我們就能夠把我們需要的一些應用的環境,我們主要是JAVA,我們就會安裝JDK等等放到公有云的服務器上,這樣就整個的環路就建立起來了,所以它是有一個校驗、授權、初始化等等這樣一系列的過程。通過這個過程我們可以看到私有云和公有云通過了混合雲的管理平臺,這個平臺有效地去管理我們外部的可能是一個或者是兩個公有云的提供商。這就構成了我們混合雲的主要架構。

其實在混合雲實踐過程中,當然不可能避免遇到這些像帶寬的問題,延遲的問題,以及單機性能IO,還有包括API,還有云服務的穩定性以及我們都很關注的安全性等等,我們一起來看一下這些問題我們是怎麼解決的。首先帶寬,在我們做混合雲的過程中,我們其實也是逐步地去把我們應用進行一些修改,使得我們的應用更適合去做混合雲,當然還是做比較輕量級的修改,不會碰到底層。首先比如我們舉一個例子,我們的某個業務,這個業務它在每臺的VM上會佔用40兆帶寬,如果是加了一些cache等等,它也至少要用4兆的帶寬,公有云一般提供100兆到200兆的VPN帶寬,所以你想雲端部署的量有10-25臺VM,那其實這個意義不大。我們要做什麼呢?我們要把應用帶寬盡一步地壓縮,這個是更適合混合雲的場景去做優化,所有首先是適合做這樣的一個事情。

然後延遲的問題。在我們代碼裏面有大量的循環調用的業務場景,你不能說它不合理。很多開發人員他就很喜歡寫一個for循環就搞定了,那這樣混合雲在這個場景裏開銷就大了,所以我們迫使開發把這樣一個循環調動應用解決掉,它要把它改成批處理方式去提交你的作業。所以這個是我們在做的過程中碰到的問題。

還有就是計算能力的問題。其實很多的雲服務商,他們所能夠提供的CPU的處理能力其實還是比較強的,是比我們自己購買的這些服務器,不管他是用什麼技術虛擬化還是什麼,但是他提供的CPU Chess確實是比較強。但是在一些場景裏面,CPU比較強的虛擬機器比較佔優,所以像這類業務你可以把它放過去,對雲來說,它對時效性要求不高,但是對計算量要求高,比如說實時推薦或者檢測。

IO性能的問題,每秒的讀寫是我們非常關注的問題,尤其是在數據庫的這種主從應用場景,備庫如果延遲太多,我們主要的應用都會去連備庫,其實是不適合我們使用。所以解決辦法就是說SSD當然是更好的解決方案了。另外對於混合雲的平臺來說,我們私有云我們一定要提供一套比較完整的API,使得我們對公有云提供廠商他們資源進行更有效地管理。我們可以做到理論上來說是能夠做到實時的,我用了多少,我自己我知道這個量,這個對我們的結算來說是比較好的。

另外就是穩定性的問題。其實只要用到公有云還是私有云,其實都會遇到穩定性的問題。我們的解決辦法是什麼呢?只能說是在對我們的公有云的服務提供商對它要有一些要求,除此之外我們自己的故障恢復能力,就是切換的能力同時要具備。根據不同業務場景你要使得你的業務能夠在分鐘級別或者在秒級別能夠從公有云切回到私有云。另外你公有云要做比較完備的監控,心跳檢測等等,如果一有問題,我們一旦發現它不穩定了,我們就通過剛剛介紹的GLSB global load balance,我們立刻對這個公有云去做一些切換。或者說如果我們私有云有問題了,我們同樣把它切換到公有云上也可以,這是混合雲本身要具備的能力。

安全的問題,事實上安全問題我個人認爲可能是兩個挑戰。一個是在技術層面,技術層面我認爲可能再過那麼一段時間都會能夠得到比較有效地解決,但更重要的一個問題,其實是在我們企業裏面,老闆們對雲的安全性的一個顧慮。對吧。如果你今天你跟你的老闆說我的用戶我的數據都在公有云上,老闆一下子就給你拍死了,你不用再說我的技術是多麼的安全。所以在國內這種應用我認爲更多的還是在管理層對雲安全性的認識上。

這是一個我們雲平臺一個管理界面的截圖,可以看到我們混合雲的機器,下面都是機器列表,可以很快地去建立一個申請。一旦建立這個申請,跟我們合作的公有云的服務提供商,他就能夠在他系統裏面看到這個申請,比如說我們一下子申請像4月19號我們馬上要做的規模很大的大促銷,在移動端的,這個大促銷會給申請請求像首都在線這樣的,它可能看到請求是幾百臺公有云的請求,他們很快的上架,很快測試部署,可能一兩週內就部署工作,上線當天我們就能夠有數百臺的服務器能夠使用。活動之後我們再做統一的下架,這個時候結算週期就結束了,可能我們傳遞給公有云的服務提供商的這些數據就能夠很清楚地看到說我用了你多少臺服務器,用了幾天,這個都是通過系統來去做的。這個是我們1號店對於混合雲應用的一些情況。

下面是我們想要在混合雲這塊後面更多的探索。一個是雲提供商的規模。我們目前是在使用其中一家,後面我們可能會提升這個量,在使用的規模上可能會再增加。當然也要根據我們的應用改的情況去使我們更多的應用,非核心的應用,這種創新型的應用能夠更多地部署到雲服務的平臺上。另外考慮到成本,以及效率,服務器穩定這些方面希望都能夠去得到提升。應用的去雛形化,接口的標準化,這個都是我們接下來混合雲平臺需要繼續去完善和提升的。這就是大致我們想要在未來一兩年內讓我們的混合雲應用的更成熟的一個方向。上面就是我今天跟大家分享的內容,也非常歡迎大家來跟我們交流聯繫方式。好,謝謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章