視訊云的云平臺(tái)遷移之路
視訊天下是中國(guó)領(lǐng)先的在線視頻平臺(tái)服務(wù)商,團(tuán)隊(duì)前身是全球最大的OVP(Online Video Platform)服務(wù)商Brightcove(Nasdaq:BCOV)的中國(guó)研發(fā)團(tuán)隊(duì)。
視訊云是針對(duì)中小企業(yè)群體在線視頻需求推出的SaaS服務(wù),即通過(guò)簡(jiǎn)便的租用方式為客戶提供端到端的互聯(lián)網(wǎng)視頻云服務(wù)??蛻魺o(wú)需租用帶寬和服務(wù)器,可直接將視頻上傳至視訊云平臺(tái),由云平臺(tái)自動(dòng)處理所有的視頻轉(zhuǎn)碼、水印、播放器定制、CDN推送以及后續(xù)的播放數(shù)據(jù)統(tǒng)計(jì)分析,極大地簡(jiǎn)化了客戶在線發(fā)布視頻的技術(shù)門檻。
視訊云是一個(gè)典型的多租戶SaaS(Software as a Service)服務(wù),系統(tǒng)核心為輕量級(jí)的無(wú)狀態(tài)Java模塊,對(duì)外提供REST服務(wù)。對(duì)于私有云客戶,支持普通的NAS接口,同時(shí)支持Gluster分布式存儲(chǔ)作為公有云的底層存儲(chǔ)服務(wù),以提供每天億次以上的視頻播放能力。一組可以在線動(dòng)態(tài)增刪的轉(zhuǎn)碼集群用于對(duì)客戶上傳的視頻進(jìn)行轉(zhuǎn)碼,整個(gè)平臺(tái)架構(gòu)如圖1:
圖1 視訊云平臺(tái)架構(gòu)圖
作為Brightcove早期的中國(guó)研發(fā)團(tuán)隊(duì),我們的開(kāi)發(fā)人員對(duì)AWS平臺(tái)非常熟悉。2010年公司剛成立的時(shí)候,國(guó)內(nèi)還沒(méi)有一家類似AWS這樣能提供IaaS平臺(tái)服務(wù)的公司。我們只能自己購(gòu)買物理機(jī)部署至IDC機(jī)房。然后我們仿照EC2的模式,先將物理機(jī)虛擬化成若干虛擬機(jī),再在虛擬機(jī)上部署系統(tǒng)和服務(wù)。眾所周知,無(wú)論是雙線機(jī)房還是BGP機(jī)房都存在很多弊端,運(yùn)維成本過(guò)高,尤其是出現(xiàn)問(wèn)題的時(shí)候不能快速靈活的響應(yīng)和處理。因此,當(dāng)我們得知阿里云服務(wù)推出的時(shí)候,第一時(shí)間進(jìn)行了試用。最終,我們?cè)?012年8月,達(dá)成與阿里云的合作,將公有云視頻在線服務(wù)部署在阿里云。
整個(gè)系統(tǒng)部署到阿里云大概只花費(fèi)了一周時(shí)間,使用了10臺(tái)云服務(wù)器和1個(gè)RDS(關(guān)系型數(shù)據(jù)庫(kù)服務(wù)),整個(gè)系統(tǒng)就能在阿里云上正常運(yùn)轉(zhuǎn)。不過(guò),從部署成功到實(shí)際應(yīng)用仍有一段路要走。
遷移OSS
第一要解決的問(wèn)題是存儲(chǔ)。如果我們使用一臺(tái)云服務(wù)器的本地硬盤通過(guò)NFS作為一個(gè)臨時(shí)的存儲(chǔ)方案,性能肯定很差,原因除了多臺(tái)云服務(wù)器的IO壓力外,還在于阿里云云服務(wù)器的本地硬盤實(shí)際上也是遠(yuǎn)程掛載的(這一點(diǎn)在我們預(yù)料之中),因此這就比普通物理服務(wù)器的硬盤速度要慢。當(dāng)然最合理且優(yōu)化的解決方案是使用阿里云的OSS(開(kāi)放存儲(chǔ)服務(wù))。于是我們通過(guò)阿里云給的Python SDK開(kāi)發(fā)包,經(jīng)過(guò)一周的時(shí)間在原有的掛載Gluster的接口上又開(kāi)發(fā)了掛載OSS的接口。
通過(guò)將存儲(chǔ)遷移至阿里云OSS,不但解決了IO的性能問(wèn)題,我們還獲得了如下好處:
1)OSS提供了比Gluster更強(qiáng)大的分布式存儲(chǔ)解決方案,并且不需要我們自己維護(hù)了;
2)OSS的分布式特性有更好的IO性能,多臺(tái)云服務(wù)器同時(shí)讀寫OSS性能完全沒(méi)有問(wèn)題;
3)OSS提供的HTTP接口可以直接讓用戶通過(guò)瀏覽器訪問(wèn)文件而無(wú)需經(jīng)過(guò)云服務(wù)器,這在一定程度上解決了我們的源站問(wèn)題,部分文件可以不需源站而通過(guò)OSS直接實(shí)現(xiàn)CDN加速。
實(shí)戰(zhàn)RDS
RDS(關(guān)系型數(shù)據(jù)庫(kù)服務(wù))也是我們深度依賴的一個(gè)服務(wù)。我們?cè)械南到y(tǒng)使用MySQL Master-Slave機(jī)制保證實(shí)時(shí)熱備,再通過(guò)腳本實(shí)現(xiàn)每天定時(shí)完全備份。使用了RDS后,主從熱備的問(wèn)題解決了,還有定期自動(dòng)備份的功能。現(xiàn)在,我們的數(shù)據(jù)庫(kù)運(yùn)維工作幾乎沒(méi)有了,只有一個(gè)腳本每天定時(shí)從RDS下載數(shù)據(jù)庫(kù)備份到辦公室。
當(dāng)然,在使用RDS的過(guò)程中,功能也是在不斷完善的。一開(kāi)始我們發(fā)現(xiàn),無(wú)法在RDS中創(chuàng)建只讀用戶。因?yàn)槌鲇谙到y(tǒng)安全性的考慮,開(kāi)發(fā)和運(yùn)維人員在排查故障時(shí),使用只讀用戶更加安全。通過(guò)與阿里云的反饋與溝通,兩周以后,只讀用戶功能上線。
應(yīng)用SLB
隨著我們把部分測(cè)試用戶的視頻數(shù)據(jù)逐步轉(zhuǎn)移到阿里云,我們發(fā)現(xiàn)新的問(wèn)題又接踵而來(lái)。
首先,單臺(tái)云服務(wù)器的出口帶寬有限,常常成為性能瓶頸,而單獨(dú)為每臺(tái)云服務(wù)器增加帶寬又很不合算。我們了解到阿里云已經(jīng)推出了SLB負(fù)載均衡服務(wù),這非常適合解決我們的出口帶寬問(wèn)題,于是我們將SLB作為前端負(fù)載均衡使用。
最早的SLB服務(wù)只支持HTTP 1.0。因此,我們很快就發(fā)現(xiàn)源站在處理大量小文件時(shí)性能急劇下降。隨后,阿里云添加了SLB的TCP支持,我們采用TCP負(fù)載均衡后解決了HTTP 1.1的連接問(wèn)題。
稍后,我們又啟用了SLB來(lái)支持HTTP REST API服務(wù),但位于內(nèi)網(wǎng)的云服務(wù)器無(wú)法取得用戶的公網(wǎng)IP。于是,我們繼續(xù)反饋給阿里云,希望在負(fù)載均衡上添加X(jué)-Forwarded-For字段。幾天后,我們終于能拿到用戶的公網(wǎng)IP了。
經(jīng)過(guò)幾個(gè)月的磨合和測(cè)試,架構(gòu)在阿里云平臺(tái)的SaaS服務(wù)已經(jīng)穩(wěn)定運(yùn)行了近半年時(shí)間,目前我們運(yùn)行在阿里云的服務(wù)架構(gòu)如圖2所示:
圖2
遷移至阿里云平臺(tái)之后,極大的降低了我們的運(yùn)維成本,目前我們僅有一名運(yùn)維人員即可完成整個(gè)視頻云的運(yùn)維任務(wù)。同時(shí),我們可以根據(jù)客戶的不斷增長(zhǎng)來(lái)隨時(shí)添加新的云服務(wù)器,以滿足客戶需求和用戶訪問(wèn)的壓力。從購(gòu)買1-2臺(tái)阿里云云服務(wù)器,到部署系統(tǒng)上線服務(wù),一般只需要半個(gè)小時(shí),對(duì)于傳統(tǒng)IDC機(jī)房來(lái)說(shuō),這個(gè)效率是不可想象的。
雖然整個(gè)遷移的過(guò)程并不是一帆風(fēng)順,阿里云也尚有一些我們需要的服務(wù)還未推出,例如類似Amazon的Simple Queue Service(SQS,簡(jiǎn)單消息服務(wù))、Route 53(DNS服務(wù))和CloudFront(CDN服務(wù))等。但在與阿里云的合作過(guò)程中,我們對(duì)于阿里云平臺(tái)的服務(wù)質(zhì)量以及成長(zhǎng)還是非常有信心的。我們已經(jīng)開(kāi)始陸續(xù)把正式用戶遷移至阿里云,我們租用的云服務(wù)器從最初的10臺(tái)已經(jīng)到現(xiàn)在近百臺(tái),而OSS的存儲(chǔ)空間也從100GB增長(zhǎng)到幾十TB的規(guī)模。最近,我們又開(kāi)始準(zhǔn)備把數(shù)據(jù)統(tǒng)計(jì)分析服務(wù)遷移到阿里云的ODPS(開(kāi)放數(shù)據(jù)處理服務(wù))上,以便充分利用阿里云提供的海量數(shù)據(jù)分析與挖掘服務(wù)。
2012年2月,Brightcove的成功上市,又一次證明了國(guó)際資本市場(chǎng)對(duì)視頻云服務(wù)行業(yè)具有很高的期待。隨著三網(wǎng)融合、寬帶速度的網(wǎng)絡(luò)瓶頸的解決,云視頻的需求在教育、電子商務(wù)等各個(gè)平臺(tái)上會(huì)得到快速發(fā)展。而中國(guó)市場(chǎng)的特殊格局也給本土的創(chuàng)業(yè)公司提供了難得的機(jī)遇。作為創(chuàng)業(yè)公司,我們深刻地感受到云平臺(tái)帶來(lái)的產(chǎn)業(yè)變革。而隨著云計(jì)算產(chǎn)業(yè)的變革與發(fā)展,越來(lái)越多的公司會(huì)將IT基礎(chǔ)設(shè)施以及SaaS服務(wù)等建立在以阿里云代表的云計(jì)算平臺(tái)之上,這從國(guó)外成功的創(chuàng)業(yè)公司如Instagram、Dropbox等均選擇了在Amazon的IaaS上構(gòu)建自己的SaaS服務(wù),可以看出業(yè)界不可阻擋的云計(jì)算趨勢(shì)。視訊天下也將自己的SaaS服務(wù)建立在阿里云的IaaS平臺(tái)上,既充分利用阿里云提供的彈性計(jì)算能力,又將精力集中在業(yè)務(wù)架構(gòu)和客戶服務(wù)上,對(duì)比傳統(tǒng)的存儲(chǔ)和IDC成本計(jì)算,可能某些時(shí)候IaaS的服務(wù)成本偏高,但節(jié)省的運(yùn)維和開(kāi)發(fā)成本是隱性但巨大的。視訊天下希望借由此文,分享些許遷移云平臺(tái)的經(jīng)驗(yàn),希望能對(duì)大家有所幫助或啟發(fā)。