1. 程式人生 > 實用技巧 >為什麼蘑菇街會選擇上雲?是被動選擇還是主動出擊?

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

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

2018年1月22日凌晨,我們美麗聯合集團旗下的蘑菇街和美麗說的業務,整體搬遷到騰訊雲,完成了從託管IDC模式,到騰訊雲上混合雲模式的轉變。

雲計算髮展到今天,無論是在技術、服務層面,還是在商業層面都已經相對比較成熟。當前絕大多數初創公司在基礎設施上的策略一定是公有云,已經極少再有自建或託管IDC的情況,所以不會存在是否上雲這樣的糾結。

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

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

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

我們所面臨的問題

成本閒置問題

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

大促,從技術層面就意味著要在短時間內應對遠遠超過日常的峰值流量,可能是平時的十幾倍,甚至是上百倍。為了支撐這麼大的流量,就需要業務系統有足夠的容量支援。

雖然我們會從技術和架構層面來提升容量,但是,無論如何優化,充足的硬體資源擴容是前提條件。

之前,我們在應對“雙11”這樣的大促時,只能採購更多的裝置。與此同時,我們還要在機櫃成本以及資源上下架等純人工方面進行投入,這往往要花費幾千萬元的成本。

但是,每次大促峰值一過,這些裝置基本就處於極低的負載狀態。這批資源要經過將近一年時間,隨著業務量快速增長才能逐步消化掉,然後再進入到下一輪大促的採購週期中。

所以,這部分成本投入的收益是非常低的,基本處於閒置狀態。

基礎設施維護問題

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

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

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

IDC機房的擴充套件問題。一個機房內的機櫃消耗完,想擴充套件就只能另找機房,但是屬於同一運營商,或同一ISP服務商的同城機房資源是否充足,又是一個未知數。

不同機房間是否互聯互通,以及是否增加跨地域的時延,對業務訪問體驗的影響很大。所以擴充套件性不足,會大大影響業務體驗,甚至影響業務發展

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

小結

到這裡我們做個小結,隨著基礎設施體量越來越大,我們在基礎設施和平臺服務層面,將會投入越來越大的財力、人力和最寶貴的精力

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

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

縱觀技術發展趨勢

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

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

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

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

    我們先看一個2017年的新聞:

    計算任務階段性的執行對資源需求是非常龐大的,一般企業很難提前預留足夠的資源來做這個事情,這時雲的資源優勢和彈效能力就凸顯出來了。

    可以說,未來人工智慧的發展和應用,必然會依託於雲端計算。

    沒有銀彈

    銀彈指的是一種萬能的藥物或者物品,可以解決一切。但是這世界沒有銀彈,不存在所謂一鍵解決所有問題的東西,軟體行業更是如此,運維也是一樣。

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

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

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

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

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

我想,這一點並不是雲端計算廠商不想做好,因為無論在技術、產品以及服務上,它們並不是一蹴而就的,而是各方面都需要一個逐步積累、磨合和摸索的過程,這就需要雲端計算廠商與業務客戶共同努力,朝著同一個目標前進,需要彼此多一些耐心。

我們也期望在國內見到AWS和Netflix這樣的最佳組合,相互成就,共同成功。

精選提問

  1. 那選擇騰訊雲的考量又是什麼呢?是否對比過其他雲服務商的優劣?

    上雲這種戰略層面的決策,其決定因素不是技術,而是商業因素。細節比較敏感,我無法說的太詳細,不過你可以體會下。
    
  2. 美麗聯合是如何混合部署的?日常用IDC,突發用雲?