據(jù)黃冬介紹,土豆網(wǎng)每天有2億次的視頻播放量和3500萬(wàn)獨(dú)立訪客,每月有2.3億用戶(hù)覆蓋,現(xiàn)在視頻總數(shù)超過(guò)7500萬(wàn),有超過(guò)1億的注冊(cè)用戶(hù)。“用戶(hù)上傳和快速分發(fā)、小部分內(nèi)容被集中快速地索取,這是整個(gè)平臺(tái)兩個(gè)非常核心的地方。”
如何支撐整個(gè)平臺(tái)如何龐大的用戶(hù)和流量?從技術(shù)和產(chǎn)品形態(tài)上講,土豆網(wǎng)的云包括三個(gè)部分加一個(gè)服務(wù):快速的并行計(jì)算、大容量存儲(chǔ)、交付及訪問(wèn),三者結(jié)合起來(lái)就是視頻云服務(wù)。
與亞馬遜EC2彈性云計(jì)算不同的是,土豆網(wǎng)主要針對(duì)三件事情做了優(yōu)化:優(yōu)化,上傳、轉(zhuǎn)碼和分發(fā),最核心的是轉(zhuǎn)碼。也就是說(shuō),首先用戶(hù)可以很容易地把數(shù)據(jù)上傳到土豆網(wǎng),其次把大量的視頻轉(zhuǎn)換成可觀看的內(nèi)容,第三是把這些視頻分發(fā)讓業(yè)務(wù)可以加以利用。
與亞馬遜S3不同是,土豆網(wǎng)選擇就近上傳的方法,有多個(gè)轉(zhuǎn)碼集群,計(jì)算采用單一編解碼,多種格式輸入和輸出,但用不同碼流多路徑分發(fā)到存儲(chǔ)節(jié)點(diǎn)上。
在土豆運(yùn)用云計(jì)算的實(shí)踐中,有幾點(diǎn)是十分重要的。第一件事情,就是一用戶(hù)來(lái)源區(qū)域?yàn)楹诵牡纳蟼髡{(diào)度,其中DNS以及七層的二次調(diào)度是互聯(lián)網(wǎng)最基礎(chǔ)的 也是幫助用戶(hù)獲得數(shù)據(jù)很關(guān)鍵的部分;第二,基于多服務(wù)器多核心的并發(fā)轉(zhuǎn)碼,其中采用了任務(wù)調(diào)度和優(yōu)先級(jí)機(jī)制,發(fā)送到多個(gè)服務(wù)器并進(jìn)行轉(zhuǎn)碼;第三,是核心的 MateDB管理,這需做提前的去重和版權(quán)管理;最后,是跨網(wǎng)絡(luò)、跨機(jī)房和跨運(yùn)營(yíng)商的快速分發(fā),這也就是云中“計(jì)算”的部分。
黃冬認(rèn)為,未來(lái)視頻云有三個(gè)可以不斷優(yōu)化的方面:
首先,視頻轉(zhuǎn)碼的優(yōu)化,只有對(duì)各種輸出做好優(yōu)化才能在最終交付的時(shí)候兼容足夠多的設(shè)備,減少CPU的損耗,此外加快轉(zhuǎn)碼;
其次是視頻計(jì)算的大IO優(yōu)化,硬盤(pán)IO優(yōu)化。土豆曾經(jīng)嘗試過(guò)用128GB甚至更大的內(nèi)存替代磁盤(pán),但有時(shí)候用戶(hù)上傳到一臺(tái)設(shè)備的數(shù)據(jù)會(huì)超過(guò) 128GB;另外嘗試使用固態(tài)盤(pán),讀性能雖然非常出色,但既寫(xiě)又讀的時(shí)候性能相對(duì)較差,因此黃冬認(rèn)為這是未來(lái)的一個(gè)競(jìng)爭(zhēng)點(diǎn),“對(duì)于硬盤(pán)I/O我們還沒(méi)有找到一個(gè)很好的機(jī)制,相信未來(lái)這是云計(jì)算優(yōu)化的關(guān)鍵,誰(shuí)做得好誰(shuí)就會(huì)搶得先機(jī)。”
最后,分布式MateDB的改造,做好異地復(fù)制和同步機(jī)制。黃冬認(rèn)為,未來(lái)像EC2這樣純粹在云端的計(jì)算差的就是存儲(chǔ),而Hadoop這樣將設(shè)備CPU用于本地存儲(chǔ)計(jì)算是云計(jì)算的最好模型。
存儲(chǔ)與交付的混合是核心
據(jù)黃冬介紹,土豆網(wǎng)云存儲(chǔ)和云交付的模型是將自己的存儲(chǔ)放在運(yùn)營(yíng)商那里,每一個(gè)運(yùn)營(yíng)商內(nèi)部會(huì)有若干個(gè)保存著視頻文件的小組,小組之間有不同一組機(jī)器 在不同IDC中有特殊的通道通過(guò)調(diào)度專(zhuān)門(mén)做熱交換。這個(gè)調(diào)度的流程是,每當(dāng)有用戶(hù)要訪問(wèn)一個(gè)視頻的時(shí)候,先看到哪一個(gè)小組調(diào)度最快,再看這個(gè)小組到哪一個(gè) 數(shù)據(jù)中心快,其次是這個(gè)數(shù)據(jù)中心內(nèi)有沒(méi)有文件去完成這個(gè)操作。
熱交換的部分是將熱點(diǎn)數(shù)據(jù)放在節(jié)點(diǎn)中的熱點(diǎn)部分,讓所有服務(wù)器所有硬盤(pán)片區(qū)都有這些熱點(diǎn)數(shù)據(jù),這樣用戶(hù)就可以最快速度地讀取這些數(shù)據(jù)。
“因此,土豆的計(jì)算其實(shí)就是純粹的文件編解碼工作,最核心的部分還是在存儲(chǔ)和交付。它把整個(gè)互聯(lián)網(wǎng)當(dāng)作一個(gè)大型計(jì)算集群,并虛擬成了一套存儲(chǔ)系統(tǒng)。”
云計(jì)算給存儲(chǔ)帶來(lái)的變得不言而喻,“以前一臺(tái)計(jì)算機(jī)里的硬盤(pán),如今在云計(jì)算中變成了一臺(tái)服務(wù)器,一個(gè)文件里的分區(qū)表變成了一個(gè)MateDB,原來(lái)的磁盤(pán)控制器變成了調(diào)度器,文件系統(tǒng)則變成了云存儲(chǔ)。”
在黃冬看來(lái),存儲(chǔ)對(duì)于土豆網(wǎng)的云計(jì)算來(lái)說(shuō)是至關(guān)重要的,交付與存儲(chǔ)應(yīng)該走向混合。“存儲(chǔ)是最核心的地方,它既應(yīng)該是存儲(chǔ)也應(yīng)該提供交付?;ヂ?lián)網(wǎng)最公 共的HTTP的協(xié)議應(yīng)該是存儲(chǔ)的最主流協(xié)議,緩存是在節(jié)點(diǎn)級(jí)別的緩存,而不只是在內(nèi)存級(jí)別的緩存。未來(lái),我認(rèn)為云存儲(chǔ)一定是基于HTTP協(xié)議的大容量存 儲(chǔ),最核心仍是存儲(chǔ)與交付能夠并行化,這樣才能夠解決存儲(chǔ)容量大、交付時(shí)單一視頻或者單一存儲(chǔ)IO比較密集時(shí)的問(wèn)題。”
在土豆而言,一切云計(jì)算都是圍繞視頻展開(kāi)的,對(duì)外要支持多個(gè)平臺(tái)、多個(gè)協(xié)議、多個(gè)碼流,用戶(hù)看不到具體的存儲(chǔ)、計(jì)算和交付方式,但他們能體會(huì)到是多平臺(tái)、多協(xié)議、多個(gè)碼流的視頻觀看體驗(yàn)。
總的來(lái)看,土豆的云視頻服務(wù)主要基于兩個(gè)入口。第一個(gè)入口,用戶(hù)可以簡(jiǎn)單方便地上傳和轉(zhuǎn)碼,這其中計(jì)算部分是特別優(yōu)化的云計(jì)算——不是通用的而是一 個(gè)專(zhuān)用于編解碼的云計(jì)算。其次,存儲(chǔ)和分發(fā)提供大容量的高效的云存儲(chǔ)和云交付。所以對(duì)土豆網(wǎng)來(lái)講,與存儲(chǔ)和高效支持多協(xié)議相結(jié)合的云視頻交付,是未來(lái)一項(xiàng) 關(guān)鍵的工作,也是未來(lái)的一個(gè)愿景。