編者按:

在剛剛結(jié)束的由InfoQ舉辦的ArchSummit全球架構(gòu)師峰會(北京站)上,七牛云存儲CTO韓拓帶來了《七牛云存儲產(chǎn)品的三年演進(jìn)之路》。結(jié)合七牛的實(shí)戰(zhàn)經(jīng)驗(yàn),分析七牛的客戶使用云計(jì)算的架構(gòu)方式,以及為了適應(yīng)不同的客戶類型和使用場景,七牛的產(chǎn)品變化過程,并在此基礎(chǔ)上與大家共同探討云計(jì)算的產(chǎn)業(yè)構(gòu)成,給出企業(yè)如何更好使用云計(jì)算基礎(chǔ)設(shè)施的建議。

以下為演講實(shí)錄:

實(shí)錄內(nèi)容:

韓拓:今天分享的話題是七牛的產(chǎn)品演進(jìn)之路,看這個(gè)題目像是來做廣告的,來了這么多人我挺高興的,并不是在做廣告。

七牛是2011年成立的,我們作為在國內(nèi)云計(jì)算產(chǎn)業(yè)的一個(gè)參與者,見證了云計(jì)算這個(gè)產(chǎn)業(yè)從剛開始的一個(gè)起步到今天大家看到這么蓬勃的發(fā)展,這三年是經(jīng)歷了這樣一個(gè)過程。

咱們今天會場大的話題是真實(shí)的云計(jì)算,我這個(gè)題目的本意是想看看七牛這個(gè)公司和產(chǎn)品變化的經(jīng)歷引發(fā)大家對國內(nèi)云計(jì)算的環(huán)境都有誰?怎么樣做云計(jì)算?誰在用云計(jì)算。

先講一下七牛以及產(chǎn)品關(guān)鍵的節(jié)點(diǎn),主持人說誰在用七牛,我不相信人這么少,應(yīng)該是有的人沒有舉手。2011年下半年成立的,10月份寫了第一行代碼,當(dāng)時(shí)的辦公室也沒有,我們幾個(gè)人是在上海的浦東圖書館辦公的。那個(gè)地方有免費(fèi)的空間、網(wǎng)絡(luò)和水。大家在上海創(chuàng)業(yè)也可以考慮這么做,那個(gè)地方是很好的。

2011接近年底的時(shí)候,第一版系統(tǒng)上線,有了第一個(gè)機(jī)會和第一個(gè)使用云存儲的客戶。

2012年初我們有了第二個(gè)機(jī)房,后續(xù)的有很多的機(jī)房,去構(gòu)建我們上傳和下載加速的能力。

2012年這一年我們是打造存儲1.0和數(shù)據(jù)處理的1.0版本。

2013年開始我們做存儲的2.0,進(jìn)一步降低存儲的成本冗余度和提高數(shù)據(jù)的可靠性。

數(shù)據(jù)處理的2.0,異步的上傳回調(diào)處理,包括用戶可以定義自己處理的模塊等等功能。

現(xiàn)在做的是我們前兩天上線的分區(qū)域處理的中心,整個(gè)的配置和原數(shù)據(jù)、里面存儲的文件和另外一個(gè)區(qū)域是獨(dú)立的。我們在北京做了一個(gè)很大的數(shù)據(jù)中心,作為我們第二個(gè)存儲的區(qū)域。

這三年七牛在怎么樣的環(huán)境產(chǎn)業(yè)中生存呢?正好契合了我們今天的話題,真實(shí)的云計(jì)算。

我在七牛做這份工作,我們現(xiàn)在很冷靜、客觀的看我們國內(nèi)云計(jì)算到底是什么情況。我觀察到在IaaS層面就是兩個(gè):云主機(jī)和云存儲。國內(nèi)還有一個(gè)很有意思的現(xiàn)象,沒有一家能夠把這兩個(gè)都做的很好。至少到今天,七牛還是專注在云存儲上面。云主機(jī)有三四家是做的比較好的,好像還沒有形成AWS那樣一整套很好用的方案。

在PaaS一層在我看來是有很多垂直化的云,涉及了很多方面,我這里羅列了。就是一個(gè)圖片的云,或者是一個(gè)視頻的云。還有更垂直的,比如說我是給電商的客戶做云,或者是給游戲的客戶做云,這是PaaS在國內(nèi)非常生機(jī)勃勃的現(xiàn)象,非常好。

甚至這里面有很多的產(chǎn)品自己都沒有叫云,本身它已經(jīng)是云了。

從托管的形態(tài)上看,現(xiàn)在在國內(nèi)有公有云,這個(gè)是最多的。跟國外不太一樣的地方是我們見到了很多私有云和混合云這樣的方案。私有云是在你的數(shù)據(jù)中心內(nèi)把我的軟件賣給你,混合云是某種程度上的代運(yùn)維,邊界是每個(gè)廠商找的都會略有區(qū)別。但是核心的思路是硬件的設(shè)備是在你的數(shù)據(jù)中心內(nèi)的,但是運(yùn)維的事情是提供這個(gè)服務(wù)的廠商去管的。尤其是一些傳統(tǒng)的行業(yè),一下子還接觸不了把我的數(shù)據(jù)放在公有云上,他們更傾向私有云和混合云方面。

產(chǎn)業(yè)形勢是三個(gè):布局基本完成。任何一個(gè)業(yè)務(wù)你設(shè)想自己在做的事情,如果你想用云計(jì)算構(gòu)建自己的業(yè)務(wù)的時(shí)候,想不到還缺什么,基本是全的。應(yīng)用也開始落地,2014年非常多的企業(yè)開始選擇云計(jì)算,從七牛業(yè)務(wù)的曲線也能看出來,2014年初開始有一個(gè)很大的爆發(fā)。包括大量的傳統(tǒng)行業(yè)也開始進(jìn)入云計(jì)算的這個(gè)行業(yè)。生態(tài)還未形成,有這么多做云計(jì)算的,大家之間的關(guān)聯(lián)還沒有建立起來,還是在各自為政,自己玩自己的。這個(gè)其實(shí)是和國外的云計(jì)算相比是差的比較遠(yuǎn)的一塊,比如說在國外我做一個(gè)處理圖片的PaaS,我必然是基于AWS做,我從S3讀取完以后再存儲到里面。其實(shí)不同的云計(jì)算供應(yīng)商之間,有千絲萬縷的關(guān)系。但是這個(gè)現(xiàn)象在國內(nèi)到今天我們暫時(shí)還沒有看到。

咱們看一看在國內(nèi)有什么人使用云計(jì)算呢?從七牛角度來說,當(dāng)然是不全面的,我們沒有做統(tǒng)計(jì)或者國內(nèi)云存儲的使用情況。有一類是初創(chuàng)型做APP的非常多,這也是國內(nèi)使用云計(jì)算最先的一波人。他們關(guān)注的是什么呢?他們關(guān)注的是方便,你的API是不是夠簡單,你的SDK是不是拿過來就能用。初創(chuàng)型的APP唯一的訴求是快,假如說我拷貝一個(gè)國外的模式,我肯定希望一個(gè)月或者三個(gè)月內(nèi)就能夠上線,他們關(guān)注的是產(chǎn)品的應(yīng)用性是怎么樣的。

還有一類很奇怪,他們也是使用云計(jì)算最早的一波人。是什么樣的人呢?是傳統(tǒng)媒體屬性的互聯(lián)網(wǎng)服務(wù),比如說做新聞、論壇的。為什么他們這么早使用云計(jì)算呢?他們的業(yè)務(wù)是以靜態(tài)的數(shù)據(jù)為主,他們對云的需求并不強(qiáng),說白了他們是把云存儲當(dāng)成一個(gè)旁柜加CDN做的,算起來比較便宜,就遷過來了。這類客戶關(guān)注的是成本,一定要比其他方案更便宜。

下面一類是UGC或者是web2.0類的業(yè)務(wù),做社交的,比如說搖的?,F(xiàn)在做圖片分享的,短視頻分享的這樣一類人。他們?yōu)槭裁从迷朴?jì)算呢?因?yàn)樗麄儗τ脩趔w驗(yàn)的要求是最高的,我不能搖一搖什么都出不來。也不能說拍一個(gè)短視頻,傳半天也傳不出去。他們在世界上對用戶體驗(yàn)最苛刻的一群人,使用云計(jì)算可以幫助他們用比較低的代價(jià)去獲得一個(gè)更好的用戶體驗(yàn),這是一類用云計(jì)算的人。

還有一類是做PaaS的供應(yīng)商也會用七牛的產(chǎn)品,比如說我是一個(gè)做視頻的解決方案,幫你把客戶端的播放器做好,內(nèi)容的管理、后臺怎么審核我都幫你做好了,他們還缺少存儲和網(wǎng)絡(luò)加速的方案。這個(gè)時(shí)候,基于一個(gè)云去構(gòu)建PaaS的業(yè)務(wù),使他們更專注于他們想做的點(diǎn),而不用去操心我要去買一個(gè)數(shù)據(jù)中心等等的問題。

這一類客戶其實(shí)更關(guān)注的是你的這個(gè)產(chǎn)品平臺是不是夠開放,你分享的精神是不是夠強(qiáng),在這個(gè)行業(yè)里的職業(yè)道德是不是夠好,他們可能是關(guān)注的這個(gè)。

還有一類是已經(jīng)比較成熟的業(yè)務(wù),帶寬幾十個(gè)G,存儲是幾百T,或者是幾個(gè)PB這樣的規(guī)模了。往往是從一個(gè)小的規(guī)模發(fā)展起來的,這個(gè)過程中可能是忙于和業(yè)務(wù)相關(guān)的那一塊,忽略了基礎(chǔ)設(shè)施上的積累。這時(shí)候他們就發(fā)現(xiàn)我的規(guī)模突然變大了之后,我在技術(shù)上有瓶頸了。我以前用的到了量大的時(shí)候就出現(xiàn)問題了,或者說帶寬有上百個(gè)G,我不知道怎么管理CDN的供應(yīng)商了。這樣一波人會很迫切的使用云計(jì)算,幫助他們解決技術(shù)上尤其是基礎(chǔ)設(shè)施這一層遇到的瓶頸。

最后一個(gè)是傳統(tǒng)的行業(yè),已經(jīng)開始互聯(lián)網(wǎng)化的傳統(tǒng)行業(yè)。我關(guān)注到2014年開始,大規(guī)模的有傳統(tǒng)行業(yè)進(jìn)入到互聯(lián)網(wǎng)這一塊。比如說做家電、安防視頻、教育等等。他們的特點(diǎn)是什么呢?第一個(gè)是他們的量很大,因?yàn)樗皇前资制鸺业囊粋€(gè)業(yè)務(wù)。比如說做安防的,我以前是賣政府、學(xué)校、超市等等2B的,但是這個(gè)量一旦乘以一百、一千的量,比如說我賣給家庭,你上班的時(shí)候我?guī)湍憧粗依镉袥]有進(jìn)小偷,家里的狗是否去咬沙發(fā)了。

還有一點(diǎn)是互聯(lián)網(wǎng)說白了是很屌絲的,真正見到錢,掙過錢的并不多,但是傳統(tǒng)行業(yè)是見到錢的,并不會很吝嗇的花錢。上面的業(yè)務(wù)都對錢很關(guān)心,但是傳統(tǒng)行業(yè)對效果是最關(guān)心的,你一定要夠好用,夠快速,夠穩(wěn)定。錢都好談,這是對傳統(tǒng)行業(yè)來說。

這個(gè)可能是把一個(gè)東西賣給互聯(lián)網(wǎng)用戶和賣給傳統(tǒng)行業(yè)的用戶是有區(qū)別的。

下面講一講七牛該怎么樣做產(chǎn)品呢?有一個(gè)大的前提是我們叫七牛云存儲,至少到今天還是叫七牛云存儲,肯定是圍繞存儲這個(gè)話題來討論我們該怎么做產(chǎn)品。下面幾個(gè)問題都要回答了,存儲是什么?存儲的客戶是誰?他們的需求是什么?最后一個(gè)是七牛應(yīng)該怎么滿足這些客戶存儲上的需求?

2011年我們剛成立的時(shí)候一群人聚在一起想大干一場,那個(gè)時(shí)候想做云存儲,面對的第一個(gè)問題是存儲是什么?取決于你該怎么做事情,要做什么產(chǎn)品的第一個(gè)問題。我們在當(dāng)時(shí)其實(shí)是很茫然的,討論出來的一個(gè)結(jié)果也是很沮喪。這個(gè)是存儲,很簡單,就是一個(gè)存儲的池子,有兩個(gè)API,一個(gè)是往上傳的,一個(gè)是下的。這是一個(gè)很沮喪的結(jié)果,這么一群人聚在一起雄心壯志,想干一番事業(yè)。就發(fā)現(xiàn)你的事業(yè)就是這樣的,怎么辦呢?因?yàn)楫?dāng)時(shí)我們是菜鳥,我們并不能回答這個(gè)問題,云存儲這個(gè)平臺應(yīng)該是什么樣的?今天你看七牛的文檔,它的功能很復(fù)雜。到底是怎么去變化的呢?我們七牛這幫人是怎么從這樣一個(gè)菜鳥能夠去深刻的理解怎么做云存儲的呢?

最核心的思路就是說我們對產(chǎn)品的設(shè)計(jì)是很克制的,從來不會去想象什么東西,完全是以客戶的需求為導(dǎo)向的,客戶需要什么我們就加什么?可能就隨著你客戶的種類越來越豐富,你的產(chǎn)品適用性越來越強(qiáng)。這個(gè)是我們的第一個(gè)客戶,那個(gè)時(shí)候還很流行刷圖片,很多的圖片在刷。他用了七牛,我們在上海附近做了第一個(gè)數(shù)據(jù)中心,這個(gè)客戶在北京。他說你們功能挺不錯(cuò),API也很簡單,當(dāng)然確實(shí)是很簡單。但是就是速度太慢了,因?yàn)樗非蟮氖橇鲿车母杏X,經(jīng)常是斷了,要加載一下下面一屏才出來。后來我們就反思這個(gè)問題,要加CDN的點(diǎn),我?guī)湍銓ο螺d做緩存,對上傳也要加速。對上傳加速比較難,因?yàn)樗鼪]有什么可緩存,我只能從網(wǎng)絡(luò)上幫你做加速,這是我們第一次的迭代,加了一層CDN。是我們自己去做了一些機(jī)房,和我們的CDN合作的伙伴要了一些點(diǎn),形成這樣一個(gè)變化。

這個(gè)加上之后,我們每天晚上都睡不好覺。這個(gè)機(jī)房做存儲的,數(shù)據(jù)肯定不能丟,你把所有東西都放在那個(gè)機(jī)房了,機(jī)房還是在海邊,很擔(dān)心。電斷了服務(wù)就不可用了,這個(gè)還好,電來了我還可以做。萬一來海嘯或者突然一天被雷劈了怎么辦?我們又做了一個(gè)迭代,唯一好處是讓我們在晚上睡的好一點(diǎn)。大概在一百多公里之外,在杭州又做了一個(gè)機(jī)房,又花了一些錢,找關(guān)系拉了一根裸光纖把兩個(gè)機(jī)房連在一起。其實(shí)連在一起就是一個(gè)局域網(wǎng)了,帶寬是一百多G級別的。在主機(jī)房上傳的數(shù)據(jù)我們異步實(shí)時(shí)的同步到備用數(shù)據(jù)中心,對下載來說還是從主機(jī)房去下載。但是我們會做一件事情,把主機(jī)房所有下載的訪問日志同時(shí)在備用機(jī)房播放一遍,保證這個(gè)機(jī)房所有的緩存是熱的。

所以你看到兩個(gè)機(jī)房帶寬圖是完全一樣的,假如說這個(gè)機(jī)房的電停了,或者說這個(gè)區(qū)域的網(wǎng)斷了,我們立刻通過DNS上傳下來的口切到這個(gè)機(jī)房,立刻就可以用。這個(gè)機(jī)房被類劈了和海水淹了,我們也有一份帶副本的數(shù)據(jù)在這個(gè)機(jī)房,數(shù)據(jù)的可靠性也能保證。

這個(gè)東西做好之后,我們就覺得挺完善的了,我們現(xiàn)有的客戶都滿足了,他們用的很開心,我們晚上睡的也安穩(wěn),挺不錯(cuò)的。后來我們發(fā)現(xiàn)一些問題,你一直找那些創(chuàng)業(yè)型的APP,好像做風(fēng)投一樣,一百家有兩三家做起來就不錯(cuò)了。世界上真正有保有存儲數(shù)據(jù)的還是更成熟的APP或者是網(wǎng)站,怎么樣把他們的數(shù)據(jù)弄過來呢?我們發(fā)現(xiàn)挺難的,起碼它是幾個(gè)T。你也可以想象一下公司里的非結(jié)構(gòu)化規(guī)模是怎么樣的,隨便一個(gè)APP跑一個(gè)月就是幾個(gè)T,大一點(diǎn)是PB的,傳的話要用四五年,肯定是不行的。

我們就推出了一款產(chǎn)品或者服務(wù),大概是一個(gè)盒子,里面可以塞五六塊磁盤。我們就從我們的機(jī)房把盒子寄到我們客戶的數(shù)據(jù)中心去,借口是USB3.0的,插到服務(wù)器上導(dǎo)入這個(gè)硬盤上,叫快遞再寄回到我們數(shù)據(jù)中心。我們運(yùn)維再把這個(gè)盒子插到我們的服務(wù)器上,再往我們存儲系統(tǒng)里面導(dǎo),導(dǎo)完之后就可以跟客戶說你的業(yè)務(wù)可以切過來了,你的數(shù)據(jù)已經(jīng)七牛了。

這個(gè)方式的工作非常好,你可以算帶寬,是很高的,而且成本很低。這么一個(gè)東西,寄快遞就像上淘寶似的,一二十塊錢就搞定了。但是它有一個(gè)問題,你數(shù)據(jù)量再大怎么辦?這個(gè)是五塊盤,按三個(gè)T是15T,如果是300T不能寄這樣一堆盒子,插也插不過來。怎么辦?我們就應(yīng)該有更大的方案,寄機(jī)柜。不光是寄的東西變大了,方案也不一樣了。這個(gè)數(shù)據(jù)要導(dǎo)兩次,進(jìn)了客戶的機(jī)房之后,從它的存儲系統(tǒng)里面往這個(gè)上面拷,放的是這個(gè)磁盤上格式化一個(gè)系統(tǒng),按照一個(gè)文件一個(gè)文件的去擺放,回到我們這里再導(dǎo)一次。這個(gè)方案是導(dǎo)一次就可以了,因?yàn)樗?guī)模大,這個(gè)圖里面寄六個(gè)機(jī)柜,就是60臺服務(wù)器插滿3個(gè)T的盤,一臺機(jī)器插12塊。

我們認(rèn)為這個(gè)東西發(fā)出去的時(shí)候,已經(jīng)是我們存儲系統(tǒng)的一部分了。這個(gè)時(shí)候在客戶這里就導(dǎo)一次,導(dǎo)入的程序是我們來編寫的。當(dāng)然這個(gè)時(shí)候不是用USB插,是連到局域網(wǎng)里面的。我們獲得了網(wǎng)絡(luò)可訪問之后就可以讀了,讀完了我們直接燒制成存儲系統(tǒng)里面,該怎么放就怎么放。這個(gè)東西再寄回去,往我們存儲局域網(wǎng)里面一放就立刻可以用了,速度變的非常快。磁盤也很多,整個(gè)六個(gè)機(jī)柜的吞吐比如每個(gè)用四根一萬兆的線跟現(xiàn)有的網(wǎng)絡(luò)對接,總存儲是很大的。

還有一個(gè)問題,它的數(shù)據(jù)是不斷有上傳的?通過這個(gè)東西把既有的東西搬過來了,快遞寄回來的時(shí)候又有新東西上傳,但是并不能切過來,訪問的數(shù)據(jù)是看不到的。我們又推出了鏡像存儲的功能,一個(gè)標(biāo)準(zhǔn)的存儲系統(tǒng)里面有三個(gè)文件,我突然去getkey1版必定是404。現(xiàn)在我把原來的數(shù)據(jù)中心建立關(guān)聯(lián),我配置到上面以后,再getkey1的時(shí)候發(fā)現(xiàn)沒有了,在原來舊的數(shù)據(jù)有有。比如說寄快遞的這三天新上傳的文件就拖回去了,拖到七牛的數(shù)據(jù)中心,跟你新上傳的請求是一樣的,上傳到存儲系統(tǒng),返回到外面,對客戶來說是透明的。

區(qū)別在于是它會把數(shù)據(jù)給你存下來,它把六個(gè)機(jī)柜寄過來之后,再配上鏡像存儲,下載這一塊的東西可以馬上切過來。隨著它切的時(shí)間越長,機(jī)房的訪問量越少,這個(gè)相當(dāng)于是做緩存了,持久化的存在你的系統(tǒng)里面。

假如說客戶端是直接上傳到七牛的話,原來數(shù)據(jù)中心變成只讀的數(shù)據(jù)中心,鏡像存儲跑一段時(shí)間可以預(yù)期的是基本上就沒有訪問了,很平滑的把數(shù)據(jù)切過來了。后面比對一下原數(shù)據(jù)還缺哪些,這個(gè)數(shù)據(jù)量就很少了。

配合這三個(gè)東西,讓七牛把一些大的客戶,好幾百T的客戶給拉過來了。現(xiàn)在聊的是你新上傳的東西早晚要切到云,不能一直往你的數(shù)據(jù)中心傳。七牛的上傳方案是什么呢?所以UGC一類的業(yè)務(wù)不能容忍的一點(diǎn)是這個(gè)數(shù)據(jù)從我的客戶端到我的服務(wù)器,再從我的服務(wù)器到七牛,太慢了。它的數(shù)據(jù)中心是單個(gè)的,沒有做加速的,速度也會很慢。其實(shí)它期望的是客戶端直接跟七牛的服務(wù)器建立關(guān)聯(lián),不能隨便一個(gè)人就傳,所以我們做授權(quán)的模型是客戶端跟客戶業(yè)務(wù)的服務(wù)器申請一個(gè)授權(quán),這個(gè)可以是單次的也可以是批量的,比如說想上傳一百個(gè)文件,就把一百個(gè)文件的批量授權(quán)申請過來。在七牛的accesskey和secretkey傳,七牛用客戶的兩個(gè)kea去驗(yàn)證是不是合法的。這樣就能夠做到客戶端和業(yè)務(wù)的服務(wù)器僅僅是有一些原數(shù)據(jù)的溝通,費(fèi)流量的,慢的東西是客戶端直接切到七牛服務(wù)器的。

如果說客戶端直接往七牛傳就沒有它什么事了,作為業(yè)務(wù)最中心的服務(wù)器肯定是需要控制的,我們又加了一個(gè)功能是做回調(diào)。客戶端直接往七牛這里傳,返回到客戶端之前我們有一個(gè)回調(diào)客戶服務(wù)器的,如果可以我們再返回到客戶端。這樣業(yè)務(wù)的服務(wù)器就可以做很多的事情,比如我去做一個(gè)分享的鏈接、推送等等,就看它的業(yè)務(wù)邏輯是什么樣的。

下面這一塊是說七牛是怎么對數(shù)據(jù)做處理的架構(gòu)圖,比如說刷圖片的APP,上傳的是原始的圖片,可能用手機(jī)拍攝的,大概是1兆到幾兆。但是都是幾KB的圖片,把幾兆用到客戶端縮小是非常不經(jīng)濟(jì)的,面對這樣的需求有這樣一個(gè)集群,是專門做和運(yùn)算相關(guān)的。比如說把一個(gè)圖片縮小、放大、打水印或者對視頻做轉(zhuǎn)碼等等,這是一個(gè)專門的集群。普通下載是跟最早的一樣,跟存儲集群下載。帶有數(shù)據(jù)處理的是根據(jù)計(jì)算集群的,從內(nèi)部拖過來之后做完處理再返回到客戶端。

具體使用是這樣的,比如說這張圖片很大,就有一個(gè)參數(shù),比如說是一百乘一百的分辨率。七牛的服務(wù)器最入口的時(shí)候看到帶問號的,并且是處理的。下載路徑就變成這樣了,把好幾兆的圖片加載到集群里面去,縮成一百乘一百的分辨率,再返回到客戶端。

下面是一個(gè)讓你的URL更好看一些,直接定義-small,這個(gè)語義和上面是一樣的。

還有一些很極客的東西,這是在我們數(shù)據(jù)處理里面也是能支持的。這是一個(gè)視頻,是對視頻第10秒做截圖,然后我可能想去縮小它或者打一個(gè)水印,這是另外計(jì)算的操作,我們就用一個(gè)廣告圖接起來,加上打水印或者做成一百乘一百,很實(shí)用。有的客戶URL拼的非常長,做了很多的操作。所有自定義操作都可以用管道的方式拼接起來。

剛才我們說計(jì)算2.0,是什么意思呢?剛才講的是1.0。因?yàn)樽罱鲆纛l和視頻的多了,比如說上傳的文件是AVI的,但是想在瀏覽器里面看,不能說幾百兆的視頻當(dāng)場給你轉(zhuǎn)出來,肯定是很慢的。這一套主要是針對副媒體類的特別大的圖片,用單反拍出來音視頻之類的。這個(gè)工作是上傳一個(gè)三百兆的視頻,我在API配置對這個(gè)視頻做處理的異步任務(wù)。這個(gè)任務(wù)就會被扔到任務(wù)管理的集群里面去,或者你不是上傳出發(fā)也可以。比如說我已經(jīng)存了這么一堆的視頻了,可以通過它的API直接添加這樣的任務(wù),這兩個(gè)是一樣的。這里面其實(shí)是一個(gè)隊(duì)列,這個(gè)隊(duì)列的優(yōu)先級和費(fèi)用、CPO都可以配置,特別急就貴一些,不急就等半夜,很便宜。

調(diào)度之后會到數(shù)據(jù)處理集群,讀取到原始文件會返回來。我們做了一個(gè)持久化操作,你用什么文件名放到哪個(gè)目錄里面都可以配置,處理完之后會有一個(gè)業(yè)務(wù)回調(diào)。比如說你這個(gè)時(shí)候你就可以給用戶發(fā)回調(diào)了,比如說我轉(zhuǎn)碼已經(jīng)完成,你可以發(fā)給你的朋友看了。

如果說沒有做完的,這個(gè)時(shí)候你添加的時(shí)候有一個(gè)任務(wù)的UID,比如說你還在排隊(duì),前面還有多少人,估計(jì)多長時(shí)間做完,也是有這樣一個(gè)查詢的API。

時(shí)間關(guān)系,我后面就不講了。在中國到底是什么樣的人在用云存儲呢?到底是怎么在用?七牛做產(chǎn)品的風(fēng)格又是怎么樣的呢?怎么樣一步一步從讓人很沮喪的圖,變成了我們自認(rèn)為還是挺完整的存儲系統(tǒng),希望這個(gè)話題對大家去了解和認(rèn)識到國內(nèi)云存儲和云計(jì)算的產(chǎn)業(yè)形態(tài)有幫助。

謝謝!

分享到

fanz

相關(guān)推薦