以下為演講實(shí)錄:
 
       大家好,我是七牛的首席架構(gòu)師李道兵,今天在這里我想給大家談一談七牛發(fā)布的解決方案,在說解決方案之前想跟大家先分享一下這本書,這本書發(fā)表已經(jīng)21年了,在本書差不多是兩個(gè)時(shí)代的一個(gè)分界線,在這本書發(fā)布之前,我們看到的軟件世界是灰暗的。ABN(音)的工程師由于壓力過大,在辦公室吃打印紙。
 
       我們可以看到,在這之后,我們可以享受到很多龐大的軟件,比如視窗。這個(gè)與設(shè)計(jì)思潮帶來的改進(jìn)是非常相關(guān)的。接下來,二十多年前我們大部分的需求是來自客戶端軟件的復(fù)雜性,現(xiàn)在我們面臨的需求跟之前不一樣了,我們先回到這個(gè)主題,之就是七牛的解決方案這個(gè)主題。
 
       解決方案不是新的名詞,畢竟如果你做一個(gè)商業(yè)公司,比如電商,你需要一套物流體系,一套供貨體系,一套支付體系。這一些東西沒法用一個(gè)簡(jiǎn)單的軟件搭起來,一個(gè)好的辦法是什么呢?就是我們找一個(gè)更優(yōu)經(jīng)驗(yàn)的傳統(tǒng)的IT顧問公司,幫你做解決方案,做設(shè)施,甚至幫你做運(yùn)維。但是20年前我們可以這樣玩,現(xiàn)在這樣玩是不是合適呢?現(xiàn)在是一個(gè)互聯(lián)網(wǎng)時(shí)代,互聯(lián)網(wǎng)時(shí)代創(chuàng)業(yè)公司很多,各種的創(chuàng)業(yè)的新的增長(zhǎng)點(diǎn)也很多。但是這一些,在每一個(gè)增長(zhǎng)點(diǎn)來講的話,都有很多很多的創(chuàng)業(yè)公司在這上面工作,那么這個(gè)競(jìng)爭(zhēng)也比以前激烈很多。以前的方案施工周期很長(zhǎng),六個(gè)月九個(gè)月甚至一年以上都是常事。第二個(gè)是不靈活,畢竟要跟第三方溝通。然后成本也不低,高額的傭金,可能你拿到的風(fēng)投拿到的A輪都不夠給這些公司付傭金的。另外你付了錢就能得到一個(gè)好的產(chǎn)品嗎?未必。比如蘇寧易購(gòu)打造的平臺(tái),上線沒幾天就宕了??赡芩麄儾贿m應(yīng)互聯(lián)網(wǎng)時(shí)代,對(duì)于爆增的訪問量的預(yù)估不足造成的。
 
       而我們換一個(gè)角度,來看我們現(xiàn)在互聯(lián)網(wǎng)時(shí)代的一個(gè),我們究竟需要一個(gè)什么樣結(jié)構(gòu)的軟件,什么樣結(jié)構(gòu)的產(chǎn)品,底層的設(shè)施,我們簡(jiǎn)單的,人可以把我們的產(chǎn)品分為客戶端產(chǎn)品端兩部分,現(xiàn)在大部分的客戶端都屬于兩個(gè)類型,一個(gè)標(biāo)準(zhǔn)的網(wǎng)頁瀏覽器,第二個(gè)來講是移動(dòng)設(shè)備。而服務(wù)端來講的話,就是說,由于現(xiàn)在我們大量的一些基礎(chǔ)服務(wù),比如說存儲(chǔ)、全面搜索,還有一些消息堆點(diǎn)之類的,我們又可以繼續(xù)把服務(wù)端分成兩個(gè)部分,第一部分是客戶的私有的服務(wù),第二個(gè)部分,它對(duì)應(yīng)的云服務(wù),整個(gè)構(gòu)成了我們簡(jiǎn)簡(jiǎn)單單的BMCS的結(jié)構(gòu)。這個(gè)結(jié)構(gòu)我們換一個(gè)尺度來看一下的話,特別是服務(wù)端,我們又可以分為兩個(gè)部分,第一個(gè)部分是你最基礎(chǔ)的組件的部分,包括數(shù)據(jù)庫、存儲(chǔ)、消息系統(tǒng),你的全文檢索系統(tǒng),郵件發(fā)送系統(tǒng)等等這些組建。
 
       第二部分,你自己的私有化,通過一些場(chǎng)景化的模式,如何把你的組建聯(lián)合,或者是整合成一個(gè)服務(wù)。在組建這個(gè)方面,我們看到大的方面,各個(gè)組建云化,云端化的越來越多,你常用的都可以找到云化的。場(chǎng)景化是大部分人很頭疼的問題。大家想一想,如果你找到一個(gè)別人已經(jīng)做過的。把你的idea變成產(chǎn)品過程,會(huì)不會(huì)順利很多呢?這個(gè)就是我們這一次想做的事情。我們想把場(chǎng)景化的模式,變成一份你可以看得見摸得著的東西,讓可以模仿、學(xué)習(xí),并且融合在你的工作當(dāng)中的一些東西。OK,具體這方面來講的話,七牛又是怎么去推進(jìn),怎么做這個(gè)事情的呢?首先來講的話,我們有大量的客戶,我們跟這些客戶,通過跟他們一起討論,來確定他們的這種行業(yè),有哪一些業(yè)務(wù)場(chǎng)景,一個(gè)業(yè)務(wù)場(chǎng)景來講的話,它其中會(huì)有哪一些痛點(diǎn),我們根據(jù)它的痛點(diǎn),設(shè)計(jì)出來的七牛特色的一個(gè)架構(gòu),這個(gè)架構(gòu)來講的話,基于我們的云服務(wù),采用這個(gè)架構(gòu),架構(gòu)能很好的解決這些痛點(diǎn)。然后在跟很多客戶來交流來講的話,我們?cè)诤芏嗉軜?gòu)里面發(fā)現(xiàn)共同點(diǎn)。比如,特別是移動(dòng)端的客戶都有需求。就是有很多照片也好,文件也好,都要跟客戶端同步。這些同步來講,我們獨(dú)立出來一個(gè)新的產(chǎn)品。這個(gè)產(chǎn)品反過來影響了我們的架構(gòu)。

       就是我們以后設(shè)計(jì)新的架構(gòu)的話,這些新的,比如同步服務(wù),其他的服務(wù),可以作為一個(gè)新的組建,直接應(yīng)用在這個(gè)架構(gòu)里面。那么來講的話,我們現(xiàn)在這一些七牛的組建和服務(wù)來講,可以有哪一些呢?比如比較基礎(chǔ)的來講,包括對(duì)象存儲(chǔ),包括富媒體計(jì)算平臺(tái),網(wǎng)絡(luò)加速平臺(tái),計(jì)算平臺(tái)。同時(shí)在這些基礎(chǔ)平臺(tái)之上,我們挖掘了我們的一些上層組建,比如直播服務(wù),云盤同步服務(wù),還有我們的一個(gè)大數(shù)據(jù)分析類服務(wù)。還有我們的七牛的合作伙伴推出的個(gè)性化推送,比如推出的一些APM服務(wù)。這些服務(wù)來講構(gòu)成了骨架的作用。我們把剩下來的變成一個(gè)整體,變成一個(gè)整體的服務(wù)。
 
       之前我們介紹過設(shè)計(jì)模式,設(shè)計(jì)模式來講,它分為三個(gè)大類,推出了23個(gè)具體的場(chǎng)景的設(shè)計(jì)方法。我們仿效一下先賢,七牛在這一波里面進(jìn)行七個(gè)行業(yè)分類,在這七個(gè)行業(yè)里面找出了31個(gè)場(chǎng)景。比如O2O這個(gè)行業(yè)來講,我們分為五個(gè)具體的場(chǎng)景,包括垂直社區(qū),達(dá)人視頻,每頁的導(dǎo)購(gòu),還有售后追蹤服務(wù),上門服務(wù)等這些購(gòu)物場(chǎng)景。接下來我想稍微具體一點(diǎn)跟大家講一講,拿其中一個(gè)場(chǎng)景跟大家講一講我們到底做了一些什么東西。
 
       第一個(gè)我想給大家講的是七牛的安防視頻的解決方案。安防現(xiàn)在進(jìn)入了千家萬戶,每個(gè)家有一個(gè)攝象頭來為你家做保護(hù)。安防是相對(duì)來講比較簡(jiǎn)單的領(lǐng)域,它最重要的是兩個(gè)部分,第一個(gè)數(shù)據(jù)流怎么上來,第二個(gè)數(shù)據(jù)流怎么分發(fā)出去這兩個(gè)問題。而針對(duì)這兩個(gè)問題的話,我們都有對(duì)于它們具體的提出了一些解決方案。這一副圖是整個(gè)上去的流程,上去的流程,我們是從客戶端,這個(gè)客戶端包括攝象頭、手機(jī)終端這類的客戶端,這類的客戶端通過ITMP推流就可以直接推送到云平臺(tái),但是在推流之前有一步少不了的就是建全操作。拿健全權(quán)限之后可以把流推送到直播服務(wù)。我們直播服務(wù)會(huì)把其中一部分,存儲(chǔ)它的數(shù)據(jù)到我們的存儲(chǔ)云,同時(shí)開始以直播流的方式往外推送。
 
       第二個(gè)部分就是直播加速部分,我們客戶端是多種多樣的,每一種客戶端接收的模式接收的碼率都不一樣。在接收的過程當(dāng)中,根據(jù)你所需要的碼率,在服務(wù)端進(jìn)行一些實(shí)時(shí)轉(zhuǎn)碼的工作,整個(gè)流程就完美的走通了。我們看到在這個(gè)過程當(dāng)中,真正需要客戶開發(fā)的只有一小點(diǎn)就是健全服務(wù)。剩下的可以用現(xiàn)成的云服務(wù),特別是七牛的云服務(wù)來提供支持。包括我們的霹靂云直播服務(wù)。包括多碼服務(wù)。這一塊很多公司已經(jīng)開始,用這種架構(gòu)搭建他們的安防的監(jiān)控平臺(tái),希望你們有類似的場(chǎng)景需求,希望這個(gè)東西對(duì)于你們有所啟發(fā),能夠幫助你們,快速的把你們的平臺(tái)搭出來。
 
       第二個(gè),我們想講的比較熱門的領(lǐng)域,就是七牛的短視頻社交這個(gè)領(lǐng)域。其實(shí)短視頻社交這個(gè)領(lǐng)域,照例來講也是一個(gè)大的架構(gòu)。比如現(xiàn)在比較熱門的視頻,小咖秀,它視頻來源一般是來自于手機(jī),手機(jī)錄制完了之后,十秒二十秒的一個(gè)小視頻,這個(gè)視頻推送到服務(wù)器之后,它有兩個(gè)需求,第一個(gè)需求是分享與分發(fā)的需求。第二個(gè)需求就是所謂的審查、轉(zhuǎn)碼需求,這類的需求,分別怎么解決掉具體的問題的呢?OK,客戶端上傳這邊,我們遇到的最大的問題是上傳成功率的問題。上傳成功率主要是手機(jī)的網(wǎng)絡(luò)不穩(wěn)定,包括網(wǎng)絡(luò)不太好,這種情況下,如果你直接把一個(gè)完整的視頻上傳會(huì)出現(xiàn)問題。這邊我們提供的解決方案,就是分片上傳,把一個(gè)大的數(shù)據(jù)流分到小的數(shù)據(jù)流,可以提高上傳成功率。第二個(gè)是提供就近加速的節(jié)點(diǎn),通過這兩種方式,讓他上傳的成功率可以達(dá)到一個(gè)很滿意的數(shù)字。第二個(gè)部分是轉(zhuǎn)碼,上傳之后為什么轉(zhuǎn)碼呢?上傳的格式希望統(tǒng)一成一個(gè)格式,第二個(gè),播放的時(shí)候不同的客戶端播放的的模式不一樣。第二個(gè)有打碼的需求。這個(gè)就需要一個(gè)平臺(tái)來做這個(gè)事情。我這邊相當(dāng)于你自己都不用做。通過我們kodo等系統(tǒng),可以完成視頻的轉(zhuǎn)碼、存儲(chǔ)的工作。這個(gè)直接在我們服務(wù)端就做好了。
 
       第三個(gè)部分是分發(fā)在這個(gè)領(lǐng)域里面分發(fā)遇到的最大的問題,是覆蓋率希望問題,畢竟你不希望你的客戶來抱怨,第二個(gè)來講的話,仍然跟之前的問題比較類似,大家希望以不同的碼率拿到不同的碼流。第一個(gè)部分,我們提供一個(gè)CPN融合的工作。整個(gè)中國(guó)甚至整個(gè)世界的覆蓋率都可以達(dá)到非常漂亮的水平。包括解決掉,你的用戶看不到的問題。第二個(gè)來講的話,也是用了我們剛才視頻的多種模式轉(zhuǎn)碼的方式,這種轉(zhuǎn)碼,讓你的客戶端,比如可以看MP4流,或者可以看到更低碼流,更高碼流。我們可以看到,這個(gè)解決方案里面,我們客戶要做的事情也是很少,更多的是授權(quán)的工作。通過客戶端的控制,你想看什么流,服務(wù)端就給什么流。極大的減少了客戶的轉(zhuǎn)化工作。這里的客戶就比較多了,美拍、豆拍等,用這樣的方式保證了客戶的快速的增長(zhǎng)。
 
       前面我們提到了七個(gè)行業(yè)解決方案,為什么我們到今天才推出這個(gè)呢?因?yàn)槲覀儸F(xiàn)在,在這七個(gè)行業(yè)有足夠的客戶,能夠提煉出這些行業(yè)里面的共性了,在這兒我們先暫停一二十秒,看這里面有沒有一些你自己喜歡的應(yīng)用,或者是說你們公司的應(yīng)用。
 
       最后回到七牛的,你說七牛的口號(hào)也好,或者是遠(yuǎn)大的理想也好,讓天下沒有難寫的代碼,讓程序員活得更有尊嚴(yán)一點(diǎn),讓七牛幫到各位程序員也好,各位創(chuàng)業(yè)者也好,讓你們的產(chǎn)品更加快速更加穩(wěn)定,謝謝大家。

分享到

zhoub

相關(guān)推薦