天天看點

為什麼蘑菇街會選擇上雲?是被動選擇還是主動出擊?

2018年1月22日淩晨,我們美麗聯合集團旗下的蘑菇街和美麗說的業務,整體搬遷到騰訊雲,完成了從托管IDC模式,到騰訊雲上混合雲模式的轉變。 雲計算發展到今天,無論是在技術、服務層面,還是在商業層面都已經相對比較成熟。目前絕大多數初創公司在基礎設施上的政策一定是公有雲,已經極少再有自建或托管IDC的情 況,是以不會存在是否上雲這樣的糾結。

但是對于蘑菇街這樣體量的公司,搬遷上雲,就必須要考慮得更全面:考慮基礎設施的變化,業務的平穩過度,運維模式的轉變,成本管控的調整,以及衆多的細節問題。

最近,有很多同行對我們為什麼做這個選擇比較感興趣。因為盡管混合雲模式是當下的大趨勢,但真正面臨抉擇時,又總會被各種具體的細節問題所困擾,猶豫不決。

今天,我從蘑菇街的視角,結合真實情況,聊一聊我們為什麼會做出上雲這個選擇。

我們所面臨的問題

1.成本閑置問題

對于電商,大促已經常态化,除了“雙11”“雙12”以及“6·18”這樣的例行大促,每個電商還會有自己的營銷活動,比如我們就會有“3·21”春季促銷,以及每個月不同的主題促銷。這 一點對于其它電商也是如此。

大促,從技術層面就意味着要在短時間内應對遠遠超過日常的峰值流量,可能是平時的十幾倍,甚至是上百倍。為了支撐這麼大的流量,就需要業務系統有足夠的容量支援。 雖然我們會從技術和架構層面來提升容量,但是,無論如何優化,充足的硬體資源擴容是前提條件。 之前,我們在應對“雙11”這樣的大促時,隻能采購更多的裝置。與此同時,我們還要在機櫃成本以及資源上下架等純人工方面進行投入,這往往要花費幾千萬元的成本。 但是,每次大促峰值一過,這些裝置基本就處于極低的負載狀态。這批資源要經過将近一年時間,随着業務量快速增長才能逐漸消化掉,然後再進入到下一輪大促的采購周期中。 是以,這部分成本投入的收益是非常低的,基本處于閑置狀态。

2.基礎設施維護問題

選擇租用或托管IDC模式,随着業務量增長也會遇到一系列的問題。在我以往的實踐操作中,我也遇到了以下幾個問題,相信你也有過相似的困擾。

IDC機房的選址。在中國網際網路八大節點所在城市的IDC資源無疑是最優的,但是這些地方的優質資源卻也是最緊張的。通常會被國内各大網際網路公司或雲計算公司提前占據,是以很 難找到相對獨立且成規模的機櫃區域,而零散的機櫃分布對管理和維護工作來說十分不便。

退而求其次,就隻能選擇二級或三級節點,但是這樣一來在網絡品質上就降了一個或多個等級。同時,因為沒有BGP線路,或者線路品質不高,就需要多線接入,這對業務體驗以及 管理維護都會帶來很大影響。

IDC機房的擴充問題。一個機房内的機櫃消耗完,想擴充就隻能另找機房,但是屬于同一營運商,或同一ISP服務商的同城機房資源是否充足,又是一個未知數。 不同機房間是否互聯互通,以及是否增加跨地域的時延,對業務通路體驗的影響很大。是以擴充性不足,會大大影響業務體驗,甚至影響業務發展。

如果是通過第三方ISP接入的,特别是存在多個ISP服務商的時候,在互聯互通時,服務商之間的溝通協調非常耗費精力,且不同機房以及多ISP之間的專線成本也會增加。當基礎設 施達到一定體量,這個問題會非常突出。

如果你也有過這方面的經曆,相信你一定深有體會。

資源使用率問題。即使我們做了虛拟化,按照業界實際情況,CPU資源使用率一般也就在10%-15%左右。是以要想大幅提升使用率,就是要在離線的混部,也就是類似大資料消耗 資源特别高的計算類業務上進行資源調配:比如,在淩晨排程到相對空閑的應用伺服器上;而在白天,則将資源釋放出來給業務應用。

但是,想要在離線混部技術上做文章,說起來容易做起來難,因為這在實際工作中是需要非常深厚的技術積累和非常高的技術門檻的。

業務層面的排程是一方面,另一方面,底層硬體、網絡以及作業系統這些也需要相應的技術支援。這其中具體的複雜情況,你可以通過阿裡最近在這方面的一些分享體會一下。

單考慮作業系統之上的應用和業務技術是無法滿足要求的,是以,這就需要我們在進行技術規劃時,在開始底層建設之前就要考慮全面。

我們知道,國内外超大型的網際網路公司,以及各大雲計算公司,在硬體選型上都有自己的定制化要求。其中一個重要原因,就是為了盡量保持幾萬甚至十幾萬硬體裝置的系統架構一緻,從底層硬體開始就為後續的超大規模運維做技術準備。

當然,這樣的定制化需求,隻有在需求量足夠大的情況下才會被硬體廠商接受,一般如果隻有百台或千台的規模,硬體廠商基本是不會考慮的。

是以這就會牽扯出下面這個問題。

3.底層技術投入和人才的問題

通常在網際網路領域,越是底層的技術,技術門檻就越高、越複雜,也越離不開高端人才的投入。比如硬體資源虛拟化,就需要有懂核心、懂網絡、懂OpenStack、懂分布式存儲 如Ceph等等的專業人才。

但是真正精通的人卻不多,加上要搞定整套解決方案,還需要一個完整的團隊,這就難上加難,在團隊組建上面臨更大的困難。

人才緊缺,就意味着人力成本會很高,這個就是技術投入的隐性成本。而且因為技術門檻高,一旦發生人員流動,那麼,對于原有技術平台來說,無人能把控的風險就會更高。這一點往往會是最大的隐性管理成本所在。

當然,在人才招攬上,我們可以加大人力成本投入,招聘最優秀的人才。但是作為像蘑菇街和美麗說這樣以更加聚焦于業務,以業務發展為生命線的公司,我們更期望能夠在業務上取得 創新和發展,而不是在技術上取得多麼非凡的成就(這一點與公司的發展訴求是不一緻的)。是以這就從根本上決定了,我們不會無限度地投入,或投入非常大的成本在這些基礎技術的研究 上。

對于以技術創業為主的公司,其考量的出發點就完全不同了,這裡我們不展開讨論。

進一步講,論體量和規模,我們自有的底層技術無論如何是無法與專業的雲計算公司相比的,這就帶來另一個問題:如何為這些優秀人才提供成長和發展?因為既然在體量和規模上比不過,那我們能夠提供的個人成長空間和機會,一定也比不過專業雲計算公司。這種情況下,大部分人才的去向選擇就顯而易見了。

對于大資料,分布式中間件等崗位,也會存在類似的情況,因為它們大多需要體量和規模才能展現技術挑戰性和成長空間。

4.小結

到這裡我們做個小結,随着基礎設施體量越來越大,我們在基礎設施和平台服務層面,将會投入越來越大的财力、人力和最寶貴的精力。

但是這項投入的收益和成效卻不明顯,且在這個層面的專業性上,我們與雲計算平台之間的差距越來越大,脫節也越來越嚴重。

我們的決策過程就是,以未來3-5年,甚至更長遠的視角考量,我們認為上述這些問題一定會成為我們将來業務發展的障礙,是以上雲就成了我們的不二選擇,并成為公司的戰略決 策之一。

縱觀技術發展趨勢

1.從軟體架構發展的趨勢上看,從最早期的實體機,到目前主流的虛拟機,再到目前非常火熱的Docker,以及可能在未來會成為又一主流的Serverless,我們對于資源層面的依賴越 來越少,而這個趨勢恰恰是雲計算不斷發展帶來的改變。

為什麼蘑菇街會選擇上雲?是被動選擇還是主動出擊?

同時,像Serverless這樣的技術理念,就是在公有雲平台上,為了提升資源使用率,而衍生出來的。而且從目前看,Serverless也隻有在公有雲平台上才有意義。在私有雲,或者是 自建或托管IDC中,因為資源規模問題,沒有看到太多的實踐價值。

2017年AWS re:Invent 2017峰會上,AWS共釋出了在資料庫、容器、人工智能、物聯網以及網絡等等方面的幾十項新的産品技術服務。可以說,如果想要技術為業務帶來更多的可 能性,擁抱雲計算是最好的選擇。

2.人工智能對雲計算能力的釋放。我們目前的人工智能主要是對機器學習算法的廣泛應用,這裡的兩個前提條件,一個是要有足夠大的資料量,另一個就是要有足夠充足的計算資源。 我們先看一個2017年的新聞:

2017年5月份,谷歌宣布麻省理工學院的數學教授安德魯·V·薩瑟蘭使用搶占式虛拟機執行個體,在220000個GCE核心上運作了龐大的數學工作負載。據稱這是迄今為止在 公共雲上運作的最龐大的高性能計算叢集。

計算任務階段性的運作對資源需求是非常龐大的,一般企業很難提前預留足夠的資源來做這個事情,這時雲的資源優勢和彈性能力就凸顯出來了。 可以說,未來人工智能的發展和應用,必然會依托于雲計算。

沒有銀彈

軟體工程中,我們一直在講,沒有銀彈。前面我們介紹了我們遇到的一些具體問題,以及雲計算的優勢所在,但是沒有銀彈這條規律,仍然也适用于雲計算行業。

那麼,是不是有了雲計算,有了公有雲,上述我們所說的問題就都不存在了呢?

以公有雲為例,它也一樣會遇到IDC建設、擴充性以及基礎技術投入等等問題,可能也會給我們帶來一定的影響。但是對于公有雲來說,因為自身财力和人力的優勢,面對這樣的問 題會更容易解決一些,但對于我們可能就是難以逾越的難題了。

同時,公有雲雖然解決了很多問題,但是,就目前這個階段來講,如果想要獲得較高的客戶滿意度,仍然有很長的路要走,比如不同形态業務的差異化支援和服務問題。

繼續閱讀