鈦媒體旗下的鈦坦白微信課第26期,請(qǐng)來了8位對(duì)“企業(yè)上云”有深刻理解的鈦客進(jìn)行分享。本文根據(jù)七牛云高級(jí)副總裁兼首席架構(gòu)師李道兵的演講整理。
李道兵是前維基百科中文管理員,前Debian Developer。曾加入金山實(shí)驗(yàn)室,主要研究分布式文件系統(tǒng)glusterfs。在盛大創(chuàng)新院,李道兵先后參與盛大網(wǎng)盤和盛大云項(xiàng)目,擔(dān)任盛大云技術(shù)委員會(huì)聯(lián)席主席、資深研究員,主要負(fù)責(zé)存儲(chǔ)相關(guān)的研發(fā)和質(zhì)量保障工作?,F(xiàn)在七牛云任高級(jí)副總裁兼首席架構(gòu)師。
以下是李道兵的分享,由鈦媒體整理:
大家好,我先做一下自我介紹。我是七牛云的高級(jí)副總裁兼首席架構(gòu)師,之前是在盛大云工作,再之前就是在金山工作過,現(xiàn)在在七牛這邊主要負(fù)責(zé)存儲(chǔ)和企業(yè)服務(wù)相關(guān)的一些業(yè)務(wù)。
我分享的題目是《上云能為企業(yè)解決哪些問題?》。我們都知道,引入一個(gè)新概念,通常是為了解決一個(gè)問題。比如說分布式是為了解決單機(jī)性能瓶頸的問題,SOA是為了解決單一服務(wù)過大的問題,還有其他的林林種種的新概念也是為了解決一些問題提出的,那么云究竟能幫你解決哪些問題?這些問題在你的企業(yè)是否存在?這個(gè)才是你上云決策的第一步。
上云的理由1:降低采購周期,提高資源利用率
我們首先來思考一個(gè)比較常見的場景,比如說你的一個(gè)業(yè)務(wù)團(tuán)隊(duì)已經(jīng)做了一個(gè)新業(yè)務(wù),他需要上線,考慮到容量和性能的原因不能跟其他組共享機(jī)器,就帶來了第一個(gè)問題就是采購周期的問題,而通常來講這個(gè)采購周期快一點(diǎn)也需要一個(gè)月,包括大概兩三個(gè)星期的供應(yīng)商發(fā)貨或者安裝上架這些流程,這個(gè)是帶來的第一個(gè)問題。
第二個(gè)問題是利用率的問題,就是說如果你的業(yè)務(wù)上線了,業(yè)務(wù)上線的時(shí)候考慮到讓用戶的體驗(yàn)更好,你通常機(jī)器會(huì)多一點(diǎn),隨著你的業(yè)務(wù)擴(kuò)張,你需要繼續(xù)地購買機(jī)器,增加機(jī)器,當(dāng)你的業(yè)務(wù)量下降的時(shí)候,其實(shí)這些機(jī)器就很難回收,因?yàn)樗纳厦嬉呀?jīng)部署了各種各樣的服務(wù),而相應(yīng)的收縮也沒有太好的辦法,即使收縮了之后,這些機(jī)器也很難轉(zhuǎn)讓給其他組,因?yàn)楦鱾€(gè)組需要的配置是不一樣的,這就帶來第二個(gè)問題也就是機(jī)器的利用率其實(shí)很低。
在第一個(gè)層面來講,云至少能解決你前面這兩個(gè)問題,比如說當(dāng)你完成上云了之后,盡管你的第一次初始投入的成本比較高,同時(shí)你還會(huì)為供應(yīng)商付出一些費(fèi)用,但是你得到的好處是什么呢?第一個(gè)你的利用率可以大幅度提高,之前一些公司統(tǒng)計(jì)下來,以CPU和內(nèi)存為基準(zhǔn)的話利用率可能在10%左右,甚至更低,上云用虛擬機(jī)之后這個(gè)利用率可以達(dá)到30%左右,這個(gè)層面直接把你的成本降低了2/3。另外的好處就是采購周期大幅降低,之前的采購周期可能是一個(gè)月左右,而利用了云這方面的話,你可以很輕松地把這個(gè)周期降低到幾分鐘。
除此之外,還解決了你很多其他的一些問題,比如說常見的硬盤故障這些問題都天然的解決了,當(dāng)然也帶來新問題,比如說虛擬機(jī)本身的復(fù)雜性,你虛擬機(jī)常用的塊存儲(chǔ)軟件Ceph的復(fù)雜性,這也是為什么上云來講通常需要供應(yīng)商來解決,而不是自己來做這個(gè)事情。
上云的理由2:降低研發(fā)、運(yùn)維難度
但是從另外一個(gè)角度來看,只是這個(gè)層面的上云,沒有解決你的企業(yè)里邊最關(guān)鍵兩組人員的效率問題:一個(gè)是開發(fā)者,對(duì)開發(fā)者來講,上云和不上云其實(shí)是沒有太大的差異;第二是運(yùn)維,對(duì)于運(yùn)維人員來講,在物理機(jī)時(shí)代他可能只用管理一百臺(tái)物理機(jī),但是在上云的時(shí)代,他可能要管理三百臺(tái)虛擬機(jī),也就是說對(duì)運(yùn)維來講他的任務(wù)反而可能是加重了。
接下來我想講講第二個(gè)層面上云的理由。首先絕大部分企業(yè)特別是偏傳統(tǒng)的企業(yè)都招不到足夠好的研發(fā)人員和運(yùn)維人員,比如說傳統(tǒng)企業(yè)經(jīng)常招到研發(fā)人員更多是偏向業(yè)務(wù)研發(fā),而不是底層研發(fā),運(yùn)維人員能夠做一些很基礎(chǔ)的運(yùn)維,但是比較高難度的問題其實(shí)是很難處理的,這就帶來了很多偏底層的東西特別是存儲(chǔ)、數(shù)據(jù)庫這類的東西很多企業(yè)能用,但是沒有能力把它管理好。比如說存儲(chǔ)比較常見的存儲(chǔ)可能是用一些mogilefs、fastdfs之類的軟件,或者說離線存儲(chǔ)系統(tǒng)用Hadoop,但是這些東西怎么把它效率提高,怎么把它整個(gè)調(diào)優(yōu)的話,實(shí)際上很多人經(jīng)驗(yàn)是不足的。
這就帶來了云時(shí)代第二個(gè)層面的需求,也就是說一些比較偏PaaS的東西,比如說絕大部分公有云都提供一些RDS的東西,來替代一些傳統(tǒng)的數(shù)據(jù)庫,私有云現(xiàn)在這個(gè)東西還不夠標(biāo)準(zhǔn)化,但是慢慢的也會(huì)有一些供應(yīng)商能夠提供這種服務(wù)了,像比如說存儲(chǔ),大家知道市面上云存儲(chǔ)公司也都比較多,能幫你解決掉這個(gè)問題。
七牛云跟其他云的一個(gè)很本質(zhì)的不同也就在于這一點(diǎn),七牛云其實(shí)它更多不是做IaaS層,也就是基礎(chǔ)服務(wù)虛擬機(jī)那一層,而更多是做PaaS層,七牛云也不是什么PaaS都做,像短信、消息這類的我們也不做的,七牛云更多做PaaS層以數(shù)據(jù)為核心的這一塊的服務(wù),比如說剛才提到存儲(chǔ)、富媒體,分發(fā)、直播、大數(shù)據(jù)還有包括一些人工智能都是我們比較有經(jīng)驗(yàn)的一些方向吧。
在這個(gè)層面其實(shí)有很多服務(wù),像前面提到的一些存儲(chǔ)服務(wù),還有一些數(shù)據(jù)處理服務(wù),數(shù)據(jù)庫,還有一些各種的多媒體的一些處理,甚至說現(xiàn)在流行的一些直播的業(yè)務(wù)都有合適的一些PaaS供應(yīng)商,這些供應(yīng)商能幫你解決到這些問題,這時(shí)候上云最大的目的,就是購買技術(shù)和對(duì)應(yīng)的一些服務(wù)來降低開發(fā)難度,提高開發(fā)效率,讓你的產(chǎn)品能夠更快的出來,能讓你在互聯(lián)網(wǎng)時(shí)代更敏捷一些。
特別是考慮到現(xiàn)在這個(gè)時(shí)代帶來一些新的挑戰(zhàn),比如說IoT這越來越流行,IoT帶來的挑戰(zhàn)就比以前大很多,以前覺得很多的數(shù)據(jù),數(shù)據(jù)庫就放得下了,因?yàn)榇蟛涣藥装偃f,幾千萬條數(shù)據(jù),但是現(xiàn)在一個(gè)簡單物聯(lián)網(wǎng)的sensor,比如說一個(gè)sensor一秒鐘一條數(shù)據(jù),簡簡單單來講一萬個(gè)sensor一天就會(huì)產(chǎn)生六億條數(shù)據(jù),這對(duì)普通數(shù)據(jù)庫來講,一天的數(shù)據(jù)量其實(shí)都已經(jīng)裝不下了,更別說我要長期收集這些數(shù)據(jù),這也是為什么越來越多基于PaaS層面的服務(wù)慢慢變成大家一個(gè)必需品。
引入這個(gè)層面的服務(wù),最大的好處是什么呢?是能夠把你的最好的研發(fā)人員從底層系統(tǒng)挪到你的業(yè)務(wù)層系統(tǒng),讓你最有價(jià)值的業(yè)務(wù)層能夠比較快速的發(fā)展。
這里順便插一個(gè)觀點(diǎn),我們非常認(rèn)同把控制流和數(shù)據(jù)流分開。為什么呢?因?yàn)榭刂屏鳎ū热绲卿?、交互以及?dòng)態(tài)生成的網(wǎng)頁 )一般比較在意響應(yīng)性,所以說非常推薦你租一些8線BGP機(jī)房去解決。 而數(shù)據(jù)流(比如圖片、音視頻、css、js等)比較占用帶寬,這時(shí)候非常建議你使用一些便宜的機(jī)房或者直接使用公有云來解決這個(gè)問題,通過CDN降低你數(shù)據(jù)分發(fā)成本還能保證質(zhì)量,這樣的話就比較方便一點(diǎn)。
上云的理由3:改善服務(wù)治理
大家都知道,最近流行一些新概念,比如說微服務(wù)、無服務(wù)器的架構(gòu),等等,這類概念其實(shí)應(yīng)該算是以前SOA機(jī)制的一個(gè)延伸,在這個(gè)延伸上面,其實(shí)SOA解決了我們之前單一服務(wù)過于復(fù)雜的問題,而提供了我們?nèi)绾伟逊?wù)拆開的一個(gè)機(jī)制,但是SOA治理就慢慢變成越來越頭疼的一個(gè)問題,我們后面就做了很多一些服務(wù)注冊(cè)來解決。但是隨著docker等容器化技術(shù)的引入,我們慢慢看到新的一些曙光,這些東西能夠解決掉我們以前不好解決的一些問題。
先講一個(gè)簡單例子,比如說A服務(wù)調(diào)用B服務(wù),A服務(wù)和B服務(wù)都是分布式部署的,也就是說他部署了很多個(gè)節(jié)點(diǎn),這就帶來了一些問題。比如說B服務(wù)容量不夠了,這時(shí)候我們肯定要擴(kuò)容對(duì)不對(duì)?擴(kuò)容的時(shí)候來講,就帶來第一個(gè)問題就是A服務(wù)如何感知,A服務(wù)如何知道這個(gè)B服務(wù)已經(jīng)擴(kuò)容了,它怎么知道這些新的節(jié)點(diǎn)在哪兒?這時(shí)候可能一些服務(wù)注冊(cè)可以解決掉這個(gè)問題。
再講另外一種情形,比如說我們知道,由于種種原因,不是每個(gè)服務(wù)節(jié)點(diǎn)都能保證100%的可用性。但是如果我們把每個(gè)服務(wù)節(jié)點(diǎn)的不可用都暴露層用戶能夠感知到錯(cuò)誤的話,用戶感知的錯(cuò)誤率將大幅度提升,特別是經(jīng)常你SOA架構(gòu)里邊,服務(wù)套服務(wù),很多服務(wù)的時(shí)候,我們就需要在內(nèi)部引入一些重試機(jī)制。重試機(jī)制就帶來幾個(gè)問題:B服務(wù)這個(gè)請(qǐng)求是不是能重試的,A怎么知道;第二,重試其實(shí)有好幾種手法,第一種手法,我先把之前的請(qǐng)求切斷再發(fā)一個(gè)新的請(qǐng)求到其他服務(wù)器,第二種手法,就是說我不切斷當(dāng)前的請(qǐng)求,只是說向一個(gè)新的服務(wù)器發(fā)起一個(gè)新的請(qǐng)求,看兩者誰先返回我就要誰的數(shù)據(jù),再把另外一個(gè)給取消掉,但是這就帶來一個(gè)問題,A服務(wù)如何知道這些,如果每個(gè)調(diào)用B服務(wù)的客戶端都需要去實(shí)現(xiàn)這一整套機(jī)制,會(huì)不會(huì)增大調(diào)用端的一些復(fù)雜度,而讓大家不愿意去做這些重試優(yōu)化。
其他還有一些問題,比如說灰度部署,我們經(jīng)常需要對(duì)某個(gè)服務(wù)進(jìn)行一些升級(jí),甚至說升級(jí)的版本還不止一個(gè),比如說我想引入一個(gè)特性版本,但是不想正式起用,我希望有少量的請(qǐng)求打過來,我想看一下效果,這種情況也是比較常見。之前我們有很多機(jī)制來做這個(gè)事情,但是對(duì)人力的消耗很大。
通過容器化和基于容器化的服務(wù)治理技術(shù)可以解決上面的問題,他會(huì)在服務(wù)中間加上一些中間層,這些中間層來解決掉服務(wù)間相互調(diào)用的問題,你的開發(fā)者只需做簡單的調(diào)用,這個(gè)中間層會(huì)自己去解決依賴服務(wù)的擴(kuò)容、重試等問題。依賴于容器化的相關(guān)能力,治理技術(shù)也能提供快速的擴(kuò)容能力、灰度部署等能力。
這種機(jī)制再搭配上容器化技術(shù)可以達(dá)到一個(gè)比較偏理想的境界。這個(gè)偏理想的境界來講,就是說以前我們是建一朵云,這個(gè)云本質(zhì)是一大堆虛擬機(jī)。而通過容器化的治理機(jī)制,你只需要知道你在某個(gè)機(jī)房有一朵云,這里面虛擬機(jī)什么你完全不用了解,你只需知道你這朵云總共有多少內(nèi)存和多少CPU,你的服務(wù)單個(gè)實(shí)例需要多少內(nèi)存和多少CPU,同時(shí)這個(gè)服務(wù)需要多少個(gè)實(shí)例,服務(wù)之間的調(diào)用是什么,就可以了,你部署的時(shí)候不用指定機(jī)器IP這類的東西。也就是說我們最后想達(dá)到的境界,就是說我們只知道機(jī)房的概念不再知道機(jī)器的概念。
當(dāng)然這個(gè)事情說起來比較輕松,可能實(shí)現(xiàn)起來就比較復(fù)雜了。因?yàn)樘貏e是這里邊還涉及到一些安全機(jī)制的問題,比如說現(xiàn)在最常用的容器化機(jī)智是docker,但是docker的安全性一直是比較堪憂的,所以這還是未來,現(xiàn)在還不太現(xiàn)實(shí),只是大家對(duì)這種未來都是比較樂觀的。
現(xiàn)在還有一些比較偷懶一些機(jī)制,即所謂的serverless機(jī)制,就是無服務(wù)器的機(jī)制。比如說amazon的 lambda還有我們七牛提供的UFOP其實(shí)也是這種機(jī)制的體現(xiàn),這種機(jī)制的好處實(shí)際上是把你的代碼掛在某些流程的鉤子里邊,然后通過你的代碼只需處理一些簡簡單單的輸入輸出邏輯,你根本不需要管太多的一些調(diào)用相關(guān)的邏輯,而相當(dāng)于是其他一個(gè)框架來負(fù)責(zé)調(diào)你,整個(gè)服務(wù)的一些伸縮這類的你也不用管,你只需把代碼邏輯實(shí)現(xiàn)好就可以了。當(dāng)然不僅僅是運(yùn)維的負(fù)擔(dān),開發(fā)的負(fù)擔(dān)也降低了,因?yàn)楝F(xiàn)在A服務(wù)調(diào)用B服務(wù)只要簡單走一個(gè)調(diào)用就可以了,你不用去考慮很多重試機(jī)制,很多高可用機(jī)制,這些機(jī)制都在你這個(gè)中間層里邊去解決掉了。
如果你的服務(wù)體系比較復(fù)雜,非常推薦你去了解一下最近容器化方面的一些技術(shù)進(jìn)展,比如說像kubernetes、mesos等。 比如說剛才提供的一些所謂的服務(wù)注冊(cè)這類東西,也整合了很多調(diào)用機(jī)制,偶爾還提供一些功能,比如說包括一些監(jiān)控也整合在里邊,當(dāng)然七牛也提供這方面的服務(wù),如果你在服務(wù)復(fù)雜到一定程度的時(shí)候,引入一些好的治理手法來講的話,能夠極大程度的降低你的運(yùn)維的一些負(fù)擔(dān)。
鈦坦白群友Q&A:
佳音:您介紹了七牛云更多是在PaaS層,PaaS更多是在售賣技術(shù),不知道我這樣理解對(duì)不對(duì)?您能簡單跟我們講講paas的發(fā)展趨勢嗎?中國的paas市場目前處于什么樣的階段?
李道兵:其實(shí)PaaS層也是賣服務(wù),只不過IaaS層主要面向的對(duì)象不是開發(fā)者,而更多是說采購或者說是運(yùn)維這個(gè)角色,而PaaS更多面向的客戶,直接面對(duì)的就是開發(fā)者,因?yàn)樗菐烷_發(fā)者減輕很多工作量的。
其實(shí)PaaS也分很多種,像七牛集中在與數(shù)據(jù)相關(guān)的這一塊,我們知道也有一些郵件的PaaS,短信的PaaS等等,各個(gè)PaaS的發(fā)展階段,其實(shí)你得分開來看。整體來看,PaaS其實(shí)是在一個(gè)相對(duì)早期的階段,存儲(chǔ)還算不錯(cuò)的,算是比較成熟的,而其他很多可以用PaaS的其實(shí)還沒有完全用起來,當(dāng)然也跟網(wǎng)絡(luò)現(xiàn)狀其實(shí),比如說網(wǎng)絡(luò)質(zhì)量其實(shí)有一定的關(guān)系。
另外來講,中國整個(gè)的企業(yè)服務(wù)都在一個(gè)比較早期的階段,甚至我們看到,SaaS的利用率都不是很高,也就是說我們慢慢會(huì)看到可能是SaaS和IaaS先發(fā)展,PaaS可能會(huì)延后一些,因?yàn)镮aaS偏基礎(chǔ),SaaS直接針對(duì)企業(yè)的每一個(gè)員工,而PaaS是針對(duì)開發(fā)者,所以這個(gè)會(huì)慢熱一點(diǎn)。
佳音:paas是在走向垂直化嗎?目前有哪些領(lǐng)域還很難切入?
李道兵:PaaS肯定是要走向垂直化的,因?yàn)镻aaS整個(gè)領(lǐng)域太大,這個(gè)才是走向垂直化非常重要的一個(gè)原因。很多領(lǐng)域難切入其實(shí)并不是在于沒有這種PaaS服務(wù),而是怎么把PaaS服務(wù)和現(xiàn)有的服務(wù)整合起來的問題,因?yàn)楦嗟脑蚴蔷W(wǎng)絡(luò)延遲不可控方面的吧。
佳音:未來PaaS的增長重點(diǎn)是什么?。?/strong>
李道兵:我覺得接下來像存儲(chǔ)、像富媒體、人工智能、大數(shù)據(jù)這幾塊,PaaS增長都會(huì)比較快一點(diǎn)。因?yàn)榇蠹乙部吹?,最近幾年?shù)據(jù)越來越多,數(shù)據(jù)的價(jià)值越來越大。
為什么數(shù)據(jù)相關(guān)的PaaS增長快呢?還有一個(gè)原因是,數(shù)據(jù)的PaaS可以自己形成一個(gè)閉環(huán),而不是非常依賴于IaaS層的東西,所以說他可以比較獨(dú)立的去進(jìn)行一些發(fā)展。
(本文首發(fā)鈦媒體,根據(jù)七牛云高級(jí)副總裁兼首席架構(gòu)師李道兵在鈦坦白上的分享整理)
………………………………………………
鈦坦白第26期八個(gè)小時(shí)的分享已經(jīng)全部結(jié)束,干貨會(huì)陸續(xù)發(fā)布在鈦媒體上:http://www.chcmb.cn/tag/1508094
報(bào)名入群聽課:在微信公號(hào)“鈦媒體”(taimeiti),發(fā)送“鈦坦白”
與鈦坦白合作,推薦鈦客:請(qǐng)與鈦坦白負(fù)責(zé)人佳音聯(lián)系,郵箱jiayinge@tmtpost.com






快報(bào)
根據(jù)《網(wǎng)絡(luò)安全法》實(shí)名制要求,請(qǐng)綁定手機(jī)號(hào)后發(fā)表評(píng)論
可以看出李總對(duì)云的理解很透,講得很清楚。