1. 程式人生 > >從網際網路+角度看雲端計算的現狀與未來(1)

從網際網路+角度看雲端計算的現狀與未來(1)

此文已由作者劉超授權網易雲社群釋出。

歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。

網際網路這個詞目前已經普遍化,這大概也歸功於羅振宇的羅輯思維對於網際網路概念的極力宣揚,似乎不加上網際網路三個字,企業宣傳都張不開嘴。於是網際網路+這個名詞就隨處可見了。

支撐網際網路化的一個重要的力量就是雲端計算。但現在的雲已經外延被擴大的不知道到哪裡去了,什麼財務雲,發票雲等等,讓我們這些做計算、網路、儲存、中介軟體、大資料的,都沒辦法和這些外延清晰的區分出來。

現在人工智慧火了,也加入到了雲端計算的範疇中來,因而各種智慧雲都出來了,智慧教育、智慧醫療、智慧交通等。

傳統行業中幹辛苦活的,眼睜睜的看著網際網路公司雙十一一天賺了一年的錢,於是紅著眼睛也想紛紛上船,踏上網際網路化、雲化、智慧化的浪潮。

我們來盤點一下當前的現狀,展望一下未來。

一、回望那些火過的網際網路應用,發現歷史竟如此相似

網際網路都火過啥,從最早興起的三大入口網站,Google退出後大家爭相追逐的搜尋引擎、社交網站、電商、微博、團購、互金、視訊網站、O2O、直播、單車等等,一波接著一波,長江後浪推前浪,前浪死在沙灘上。

他們都經歷著下面的這個迴圈。


首先要有個人有個創意,做一個沒有的產品或發明一種沒有的商業模式,當創意得到市場認可的時候,就迎來了市場的爆發,大家紛紛湧入,做同質化的產品,將一個新興的市場變成一個紅海,在紅海中進行生死較量,有的退出了,有的倒閉了,有的被兼併,最終只能剩下兩三家,或者成為巨頭,或者被巨頭收購。

前面所說的這樣浪潮,都沒有逃脫這個迴圈,唯一不同的是,這個迴圈越來越快,入口網站的角逐持續了好多年,而最近的這些浪潮一般十八個月就會見分曉。創業公司越來越發現,融的資看起來一輪比一輪大,但是都花不了太久時間。

市場沒有耐心,你不採取激進的市場策略,競爭對手會的,你便宜,對手更便宜,你免費,就有人敢補貼。

投資人沒有耐心,不在短期內拿出傲人的成績,你就不會有下一輪,所以不花錢,被對手的聲勢碾壓了,沒有下一輪,是個死,使勁花錢,把對手碾壓了,在勝出之前,沒有下一輪,還是個死。

核心員工沒有耐心,如果想公司有較快的發展,必須要找到牛的人,牛的人往往很貴,會讓你融的錢花的很快,當然有一部分創業者可以通過願景和期權留住牛人,但是這是有實效的,牛人往往社交面廣,有獨立的思維,不是那麼容易被忽悠住的,牛人往往身懷絕技,容易被挖,所以除了畫餅,你還需要不斷的兌現一些餅,例如你的生意要在較短的期限內有一個起色,或者到另外一個高度。

所以隨著這個迴圈越來越快,留給網際網路公司的時間越來越少,能勝出的網際網路公司往往具備快速的迭代速度,對傳統行業進行衝擊。而傳統行業的老闆們也想通過加上網際網路能力,獲取相同的競爭優勢。那到底什麼才叫網際網路化呢?

二、什麼才是網際網路公司,什麼才是AI公司

吳恩達在AI Conference的講座中,提到了他對什麼是網際網路公司,什麼是AI公司的理解,我覺得非常的深刻。

(1) 商場 + 網站 ≠ 網際網路公司

如果你是一個傳統的商場,僅僅是做了一個網站,那不叫網際網路化。


真正標識一個網際網路公司的,有以下幾點:

  • A/B測試,讓資料說話:當你有一個頁面需要改進,你的網站設計成什麼樣,你的APP設計成什麼樣,是你們一層層的回報,然後讓老大決策的麼?大老闆往往很危險,因為他不一定了解客戶的偏好,而主觀認為的偏好,在實際測試的時候,往往結果大相徑庭,所以不要讓老闆拍板,而是讓資料說話,通過線上測試兩種方案的結果,得出最後的結論,雖然做不到迅猛提升,但是可以保證每一次的修改,都是正向的。

  • 更短的週期:你的應用的迭代速度必須足夠的快,而且迭代是基於資料的,根據資料的反饋,不斷的小步快跑,這需要組織和流程有很強的適應能力。和傳統公司幾個月升一次級不同,網際網路公司幾乎每天都升級,當你開啟各種APP的時候,你會發現介面動不動就改了。

  • 工程師和PM做決策:如何才能快速上線呢?如果每次上線都要一百多人開大會,讓老大做決定,那肯定快不了,應該讓工程師和PM做決策,他們才是真正聽得到炮火的人,你需要讓他們獨立負責一塊內容,獨立決策,獨立上線,獨立負責,所有的PM並行工作,才使得更新速度飛快。

(2) 傳統科技公司 + 機器學習/神經網路 ≠ AI公司

如果你是一家傳統公司,只是其中的一個部門用上了機器學習和神經網路技術,那你不是一家AI公司。


一家真正的AI公司,應該有如下的特點:

  • AI公司傾向於戰略性地獲取資料:資料是一家AI公司的基石,所以如果想讓您的公司智慧化,獲取資料要放到戰略高度。其實很多公司已經這樣做了,那些所謂的一切都要電子化,一切都要APP化,不接受現金和線下購買和支付,通過各種終端滲透到你的生活中,你覺得很方便,一會兒開啟一個APP幹這個,一會兒開啟另一個APP幹別的,你的整個畫像就被勾勒的一清二楚了。所以你會經常受到各種廣告,這說明他們已經大資料化了,但是還沒智慧化,做到了精準的畫像,但是沒有做到智慧的推送,還是演算法有點愣,但是戰略,你是能夠感受到的。

  • AI公司通常有統一的資料倉庫:資料是應該打通的,如果在你的公司裡面獲取全量的資料,需要和50個部門溝通,那說明還沒有大資料化,更別提智慧化。你們公司應該有統一的使用者中心,統一的商品中心,統一的大資料平臺,你的使用者無論是用你的哪一款產品,應該感覺到產品之間是互通的,而非孤立的,這對組織的架構,系統的架構,資料的架構都有要求。

在AI公司裡,產品經理在和工程師溝通的時候,需要學會運用資料,要求精確的反饋。產品經理除了有客戶思維,應該有資料思維,就像吳恩達說的一樣,做一個人工對話機器人,產品經理畫一個框,裡面一個小人,是沒有意義的,要知道資料從哪裡來,如何獲取這些資料,如何利用這些資料,如何定量的評估人工對話機器人的效果是否有提升,這不能感性的來,也是要有資料。

三、傳統公司網際網路化所應該考慮的三大架構

 

要想讓你的公司儘快的實現網際網路化,需要從三大架構考慮。

  • 第一個是IT架構,如何降低CAPEX和OPEX,如何減輕運維的負擔。IT架構越來越複雜,能夠把一個IT架構玩的很好,團隊需要越來越大,招聘的人會越來越貴,如果你不是一個搞IT行業的,而是一個做金融的,製造的,醫療的,你會發現這一塊成本越來越大。雲化就是一個必然的趨勢,所謂讓專業的人幹專業的事情。

  • 第二個是應用架構,如何實現快速迭代,如何抗住網際網路化後的高併發的流量。服務化是必須的趨勢。每個小團隊負責一個獨立的服務,迭代速度就快了。每個模組一個獨立的服務,可以獨立擴充套件,就能夠抗住來自網際網路上的高併發。例如傳統的金融支付遇到網際網路支付,頻率突然高了N倍,不服務化就搞不定。

  • 第三個是資料架構,如何形成統一的資料平臺,並給予資料進行數字化運營。服務化另一個有利的方面是可以將類似的資料集中,而有了資料後,如何進行運營,向客戶提供精準的推薦,實現大資料化,進一步實現智慧化,是必須要考慮的。

四、IT架構趨勢一:從資源彈性向架構彈性轉變,網際網路公司和傳統公司差距越來越大

當前雲化已經成為業內的共識,但是雲端計算的目前的狀態還處於雲端計算1.0時期,也即僅僅實現了資源層面的彈性。


什麼叫彈性呢?

說的通俗一點就是靈活性,主要包含兩個方面的靈活性,一個是時間靈活性,也即想什麼時候要就什麼時候要,一個是空間靈活性,也即想要多少,就要多少。

人們之所以雲化,是因為物理機是無法實現這種靈活性的。物理機有四個方面的不靈活,一是採購不靈活,採購期短則一兩週,長則一兩個月,二是粒度不靈活,無法採購一個1核1G1M頻寬的機器,三是複用不靈活,同樣一臺物理機,一個人用過了,很難復原成原樣,讓另外一個人使用,除非重灌系統,四是運維不靈活,很多事情要去機房才能搞定,而機房往往在最偏的地方。

虛擬化技術解決了這個問題,點即可得解決採購靈活性問題,可大可小解決粒度靈活性問題,即創即銷解決複用靈活性問題,介面運維解決運維靈活性問題。唯一沒有解決的問題是排程靈活性,需要手動運維,因而規模有限。

雲端計算的排程技術使得叢集規模非常的大,並且可以自動排程,從而從客戶的角度,真正實現資源彈性。


但如果雲端計算不管應用,則會是什麼樣呢?例如平時我們只需要十臺虛擬機器,但是雙11的秒殺場景,我們需要一百臺虛擬機器,有了雲端計算資源層面的彈性,我們只要在雲平臺上一點,很快90臺虛擬機器就創建出來了,但是裡面的應用呢?

還是需要我們的運維人員一臺一臺去安裝,實在是太複雜了,無法實現真正的彈性。


於是我們開始想雲端計算如何來管理應用。

我們把應用分成兩種,一種叫做通用的應用,例如這裡面寫的Spark,Mysql,Hadoop,這些應用的特點是通用,誰安裝都一樣,但是運維起來又相對比較複雜,應該交給雲平臺去運維和擴容。另一種叫自己的應用,這些應用的安裝雲平臺無法幫到你,因為你自己的應用只有你自己知道怎麼安裝,所以雲平臺往往提供了一些基於指令碼的工具來做這些事情,例如Chef、Puppet、Ansible等。但是指令碼有一個最大的弱點,一旦環境有差異,指令碼就很難順利執行成功,所以導致基於指令碼的安裝工具,實現跨雲遷移非常困難。

於是容器應運而生。


容器的英文是Container,Container另一個意思是集裝箱,其實容器的思想就是要變成軟體交付的集裝箱。集裝箱的特點,一是打包,二是標準。

在沒有集裝箱的時代,假設將貨物從A運到B,中間要經過三個碼頭、換三次船。每次都要將貨物卸下船來,擺的七零八落,然後搬上船重新整齊擺好。因此在沒有集裝箱的時候,每次換船,船員們都要在岸上待幾天才能走。

有了集裝箱以後,所有的貨物都打包在一起了,並且集裝箱的尺寸全部一致,所以每次換船的時候,一個箱子整體搬過去就行了,小時級別就能完成,船員再也不能上岸長時間耽擱了。

這是集裝箱“打包”、“標準”兩大特點在生活中的應用。

部署任何一個應用,也包含很多零零散散的東西,許可權,使用者,路徑,配置,應用環境等!這就像很多零碎地貨物,如果不打包,就需要在開發、測試、生產的每個環境上重新檢視以保證環境的一致,有時甚至要將這些環境重新搭建一遍,就像每次將貨物解除安裝、重灌一樣麻煩。中間稍有差池,都可能導致程式的執行失敗。

那麼容器如何對應用打包呢?還是要學習集裝箱,首先要有個封閉的環境,將貨物封裝起來,讓貨物之間互不干擾,互相隔離,這樣裝貨卸貨才方便。

另外就是如何將這個集裝箱標準化,從而在哪艘船上都能運輸。這裡的標準一個是映象,一個是容器的執行環境。

所謂的映象,就是將你焊好集裝箱的那個時刻,將集裝箱的狀態儲存下來,就像孫悟空說定,集裝箱裡面就定在了那一刻,然後將這一刻的狀態儲存成一系列檔案。這些檔案的格式是標準的,誰看到這些檔案,都能還原當時定住的那個時刻。將映象還原成執行時的過程(就是讀取映象檔案,還原那個時刻的過程)就是容器的執行的過程。

有了容器,雲端計算才真正實現了應用層和資源層的完全彈性。



在這裡暫時總結一下,雖然從技術角度來講,容器已經成為一個趨勢,然而在真正的實施過程中,雲端計算1.0時代,將應用雲化的過程,很多傳統公司尚未完成。然而,在大型的網際網路公司,基於容器的雲端計算2.0技術實現架構的全彈性伸縮,已經在大規模使用。容器的三大平臺戰役已經落下帷幕,Kubernetes已經全面勝出,現在在網際網路公司的論壇中,再講容器技術,已經感覺是很老套的技術了,然而在很多傳統企業,雲化卻尚未完成,這中間鴻溝巨大,利用容器技術的快速迭代,將是對還未進行雲化的公司的降維打擊。

五、IT架構趨勢二:雲化容器化不可逆轉,IT人員越來越貴,只有規模大才能降低成本,通過自動化和智慧化,讓少數的高薪IT人員管理大規模叢集

也有人會說,你老說雲化,雲化怎麼好,能夠降低成本,可真正實踐下來,雲的技術雖然在不斷的進行迭代,然而我的運維成本,還越來越高。


原來用物理機的時候,其實我只需要懂基本的Linux知識就可以運維了,後來你們忽悠我上虛擬化軟體,虛擬化軟體非常非常的貴,能夠會使用虛擬化軟體證書的人更貴。後來虛擬化軟體存在繫結的問題,於是你們忽悠我用開源的虛擬化軟體OpenStack,誰知道開源並沒有免費,如果不進行適配和定製,基本上沒辦法在生產環境中使用,但如果一旦定製,又變成了一個私有化的軟體,這時候我的運維人員,不但要會用虛擬化軟體,還需要去開發虛擬化軟體,能開發虛擬化軟體的實在是非常貴,而且如果自己運維OpenStack沒有五十甚至一百人的團隊,根本搞不定,後來你們說應該用容器,可是用了容器以後,計算網路儲存的技術一樣不能少,而且還要懂應用,全棧工程師就更加貴了。

雲端計算真的能夠降低成本嗎?難道我用了假的雲端計算?

接下來我們詳細分析一下雲端計算的使用方式。


最簡單的使用方式,當然是使用公有云,公有云就相當於你買了一個公寓房,成本非常的低廉,同時隔離也是邏輯的,在高峰期的時候,不免有爭搶資源的現象。


如果你想不被爭搶資源,可以使用專屬主機,就相當於買了一整棟單元樓,這臺物理機上的所有的虛擬機器都是你的,然而很多PaaS服務如資料庫還是在公用叢集上的。


於是有很多公司就想建設自己的私有云,把這比喻成為住別墅,其實這頂多是農村自建房,因為你可能需要去別人的資料中心裡面租一塊地,然後或者自建雲平臺,或者招標雲平臺。沒有人會去想住別墅的時候,自己拿地自己去蓋,自己出了問題自己去修,這樣部署運維更新,成本非常的高,你需要自己養一個專業的運維團隊來做這件事情。

這種方式往往只能解決心理上的安全問題,真的安全嗎?不一定。就像農村自建房,沒有完善的物業,也沒有完善的保安一樣,託管在別人資料中心中的雲平臺,很難保證不被鄰居機架上不專業的運維行為威脅你的安全。你搭建了雲平臺,你的鄰居機架上直接用物理機,我們經常見到有的小公司在公司裡面一個VPN,將辦公網路和機房的物理機連通起來,辦公網的wifi非常不安全,如果有黑客能夠到達鄰居的物理機,很可能就能黑到你的物理機上面來。


除非你是大土豪,例如電信銀行電力,自己拿地,自己建資料中心,自己,有成百上千人的運維團隊,有非常完善的機房運維流程,就相當於特朗普自己拿塊地自己蓋別墅,自己招聘物業,自己僱保安,當然是最最安全的。可能大部分的傳統企業,都不能享受這樣的待遇。


網易雲專屬雲服務,商業別墅型雲服務。地網易來拿,房子網易來蓋,物業網易來管,保安網易來招。相當於在網易的機房裡面,劃出一塊地方來,這個地方上面部署的雲平臺資源全是你自己的,但是硬體、網路、安全、安裝、升級、修復,你都不用來管,有非常專業的運維團隊來做這件事情,這些運維操作保證安全合規,你只需要關注自己的應用就可以了。


網易為什麼要推出專屬雲呢?因為我們認為雲化容器化的趨勢是一定的,前面所敘述的道路本身沒有錯誤,能懂OpenStack和Docker的技術牛人越來越貴是必然的,只有規模越來越大,才能體現雲的成本優勢。例如谷歌,谷歌裡面的運維工程師相當相當貴,有幾十萬,甚至上百萬美金的年薪,他們掌握這些最先進的技術是沒有任何問題的,但是他們會通過各種自動化,甚至智慧化的技術,管理全球的幾百萬臺機器,這樣成本攤下來就不是很高了,所以谷歌完全養得起。如果你只是運維一個幾十個節點,最多幾百個節點的雲平臺,同樣需要招一些這麼貴的人,一般的企業肯定受不了,所以對於大部分企業來說,應該將IT架構交給最專業的牛人。

我個人甚至認為,將來只有兩種雲平臺,一個是大規模公有云平臺,一個是土豪的自建雲平臺,其他的形式都會隨著技術的越來越先進,運維人員的要求越來越高,運維人員的年薪越來越貴,而消失。

更多網易技術、產品、運營經驗分享請點選