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






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