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