請給云計算一點寬容
在宣傳云計算的時候,我們往往會強調:永遠在線,永不丟失,永遠可用。但所有做云計算的都心理明白,現(xiàn)實離這個差了遠了。例如上周國內某大型云服務廠商的香港機房中斷服務 12 小時,算是大災難了。云服務中斷的原因很多,包括:線路不通,底層云硬件設施故障,合作伙伴服務故障,新功能更新失敗,磁盤滿了,CPU 100%,DDoS 攻擊等等。其中有些是可以通過努力解決的,有些是通過努力都很難解決的(例如國內復雜的網(wǎng)絡環(huán)境)。既然這么多問題,還要用云服務嗎?答案是:Yes!
使用云服務的優(yōu)勢大家都知道,比如成本低,迅速獲得能力等等。但是很多人會質疑云服務的穩(wěn)定性,安全性,隱私性。這些問題回答了一百遍,我來總結一下。
穩(wěn)定性
不論你是自己購買硬件,還是基于 IaaS 部署自己的服務器。普通公司維護這樣的系統(tǒng)所獲得穩(wěn)定性一定遠低于使用云服務。因為云服務所面臨的不確定性你一個都跑不掉,例如磁盤壞了,網(wǎng)絡斷了,DDoS 攻擊了。但是由于云服務廠商的體量大,投入的專業(yè)運維團隊,硬件資源的冗余等等基本都會遠遠超過普通公司所能投入的資源,所以穩(wěn)定性自然更高。云服務廠商的服務基本上 24 小時有人用,所以任何中斷都會被爆出來。經(jīng)過一定時間積累的廠商的穩(wěn)定性還是值得信賴的。重要的是,我們要從一個客觀的角度去看待穩(wěn)定性這件事。曾經(jīng)有用戶對我說,Coding 的服務真好,真穩(wěn)定,從來沒出過問題。呵呵呵呵,我心里默念那是因為掛的時候你沒碰到。有另外一個用戶在我們的反饋區(qū)說我們的服務很爛,快要倒閉了。那是因為他連續(xù)兩次踩到了我們有問題的時候。穩(wěn)定性是一個長期指標,在絕大多數(shù)情況下,使用云服務的穩(wěn)定性是高于自己搭建服務的。
安全性
首先要說明的是,沒有 100% 的安全。如果你認為東西放在云上就 100% 安全了,我勸你還是在本地搞個備份。不論是黑客攻擊,還是公司員工誤操作(這種事情真的有的,近期國內某旅游網(wǎng)站的服務中斷充分說明了這一點)都有可能導致數(shù)據(jù)丟失?,F(xiàn)在大家都知道重要的話要說三遍,那么請記住了,重要的數(shù)據(jù)請放在三個不同的地方,最好是異地的。因為機房或者你家里著火全燒沒了也是有可能的。由于 Coding 上托管的是代碼,也是很多程序員最寶貴的資產(chǎn)。所以我經(jīng)常被問到的就是安全性問題。我一直舉的例子是,假如你有 1000 萬合法的現(xiàn)金,請問你是存銀行還是放家里?云計算廠商雇了一大幫人每天都在琢磨安全性這個事兒,投入了很多硬件資源,包括實時備份,異地備份等等,所以不論是誤操作(當年在美國搬磚,我有一次在喝多了以后操作服務器,“rm -rf .” 手一抖,輸成了 “rm -rf /”,這兩個字符在鍵盤上離的那么近不科學……),還是硬件故障,不可抗力等等因素,你自己部署服務器所獲得安全性都不太可能比云服務廠商的高,起碼云服務廠商不會讓一個喝多了的員工去操作服務器 :)
隱私性
講到這一點,我突然想起了曾經(jīng)轟動一時的陳老師的照片門,不過那跟云無關,跟修電腦有關。
最開始云主機還不流行的時候,很多人都覺得云主機不靠譜,東西放在上面沒有安全感,萬一被人拿去了怎么辦?通過幾年的培育,現(xiàn)在基本都認可了云主機的模式,很少有人拿云主機的隱私性說事兒了。但是 SaaS 服務就不一樣了,很多用戶還是會擔心 SaaS 廠商的員工會不會偷看他的東西,甚至泄露,特別是代碼。確實,不論是 IaaS 廠商,還是 SaaS 廠商,如果有意想看你的東西,都是可以看的。但是,基本上沒有廠商會有動機去看用戶的數(shù)據(jù)。我們看的是統(tǒng)計數(shù)據(jù)。例如,我們會看到每個用戶創(chuàng)建了多少個代碼倉庫,這個倉庫每天有多少推送。但是我們沒有任何理由和動機去看每次推送的內容。這跟我們的業(yè)務無關啊~ 而且我們真的做了會承擔巨大的信用風險,非常不劃算。而且有權限看到這些數(shù)據(jù)的員工都是簽訂了保密協(xié)議的,對于個人來講,這么做的風險也很大。云服務的隱私問題就如去酒店開房,雖然酒店有你的房卡,甚至可以安裝攝像頭,但除非有特殊利益關系,沒有酒店會這么做。所以對于絕大部分用戶來講,這是一個真實存在,但卻不需要擔心的問題。
#p#
Cloudize Your Team
現(xiàn)在我們講云端化,Cloudize 是我自己發(fā)明的詞語,用英文讓人感覺是一個動態(tài)的轉化過程。事實也是這樣,云端化已經(jīng)不是前幾年大家吹牛逼的狀態(tài),而是非常接地氣了。你仔細看看周圍,已經(jīng)發(fā)生了很大的變化,請問現(xiàn)在還有人去買硬件服務器嘛?云服務給大家?guī)淼暮锰幨欠浅C黠@的。我們在上線之初就確定了全盤云化的戰(zhàn)略,我們沒有自己的服務器,沒有自己的存儲,沒有自己的分發(fā)網(wǎng)絡(CDN),能用第三方的就不自建。雖然有些領域可選的合作伙伴真的很少,而且都是剛剛開始做,但我們也去嘗試了,當然我們也是做了 Plan B 的。這讓我們極大的縮短了研發(fā)的時間,減少了資源投入的成本。同時,我認為這是一種態(tài)度,雖然整個行業(yè)的服務穩(wěn)定性都偏低,但是如果我們自己都不用的話,其他行業(yè)的人怎么會用呢?
我們上線一年時間,大大小小踩了幾個合作伙伴的坑,但是大家的服務態(tài)度都很好,很快就修復了。我覺得這就夠了,如果現(xiàn)在對服務過于苛刻會讓一切停止不前。最近一次 Coding 掛的時候,我看到一個用戶發(fā)反饋說他一早被公司電話叫醒說系統(tǒng)出問題了,他上來一看發(fā)現(xiàn)是我們的服務掛了牽連到了他們公司的業(yè)務。有時候,用戶對于云計算的期待是很高的,很多用戶的觀念就是我用云服務了,安全了。我們不太可能去改變這樣的觀念(希望本文能有所幫助),我們只有努力把服務做到最好。我們在選擇云服務的時候也要盡量選擇有 SLA (服務可用協(xié)議)保障的服務,給廠商一點壓力:)
大部分云服務廠商都是初創(chuàng)公司,雖然大家都拿了錢,但是資源還是極其有限的。時間短,很多東西是需要時間打磨的,不是堆人就能堆出來的。我們最近踩了一個 JDK 8 的坑,某兩個啟動參數(shù)在同時啟用的時候,會有可能導致 JVM 卡死。在找到這個坑的時候,我心里想,如果我們也像大公司那樣有專門的團隊測試操作系統(tǒng),測試 JDK 就好了,但這在短期內是不可能的。這就是陪伴行業(yè)一起成長的代價。
最后想說一點可能被大家忽略的云服務的優(yōu)勢。使用云服務會對應用的開發(fā)和運行方式產(chǎn)生潛移默化的影響。你會不自覺的使用更多開源的技術(大部分的云都是基于開源技術搭建,最近大熱的容器技術也是開源的),應用的開發(fā)會更加的標準化(例如應用模塊的拆分,存儲的獨立化等等),有利于數(shù)據(jù)的流動和應用遷移,不會在某個平臺上鎖死。
想寫這篇文章很久了,一直找各種借口拖著。前一陣子我們集體去泰國團建,在旅游期間 Coding 的服務各種不穩(wěn)定,導致我們必須背著本本去泳池,去沙灘……讓我深刻的意識到我們真的有必要重新認識一下云計算。我寫這篇文章不是給 Coding 開脫,也不是給這個行業(yè)找遮羞布,而是希望這個行業(yè)能在一個更健康的環(huán)境中發(fā)展成熟。
行業(yè)是廠商的,但效益是社會的。請給云計算一點寬容。