映客直播作為創業公司從0至日活千萬的資料庫架構變遷,如何讓資料庫支援在直播中的經典應用場景,如何建構一個高可用資料庫架構。資料庫本身而言是一個基礎設施。那麼作為基礎設施,映客主要可以依賴資料庫的穩定性以及基本的性能。而雲為資料庫提供了專家級的運維,這一點也是比較好的方面。但是雲資料庫也不是萬能的,在具體場景中,需要在架構層面以及具體的業務場景層面進行具體的架構梳理和優化。
<b>“在資料庫架構方面,我們一直都在路上,并且将會一直努力前行。”</b>
<b>——王振濤</b>
映客直播架構師
<b>采用的阿裡産品 </b>
阿裡雲雲資料庫
阿裡雲VPC
阿裡雲RDS的MySQL
<b>為什麼使用阿裡雲</b>
映客直播作為創業公司從0至日活千萬的資料庫架構變遷,如何讓資料庫支撐在直播中的經典應用場景,資料庫存儲的優化思路,以及如何建構一個高可用資料庫架構。
雲伺服器可幫助映客達到防止DDoS攻擊,極大地降低直播平台的營運成本并達到平滑可伸縮的資料庫架構。
<b>關于映客直播</b>
映客直播是成立于2015年5月份,在移動直播領域,映客算是比較早成立的公司了。作為一個剛剛成立兩年的公司而言,映客直播的發展速度非常迅速,從2015年5月映客成立之初,剛剛釋出APP時的DAU隻有200,到當年10月份的時候DAU就已經達到了10萬+,再到12月份短短兩個月的時間,映客直播的DAU就已經突破了100萬,而在2016年中下旬的時候,DAU峰值就已經達到了千萬級别。

<b>面臨的挑戰</b>
直播存在一個天然的屬性就是有很多的明星活動以及其他大V的活動,因為這些活動所造成的瞬時壓力是非常大的,如果使用自建機房就需要為這些可能僅僅持續幾個小時的活動而囤積很多台伺服器,需要購買很多預留資源。而且之前的的資料庫的配置或者性能已不能滿足日活千萬級别的直播平台的需求,需要結合雲伺服器,不斷疊代服務架構。
<b>為什麼選擇阿裡雲</b>
<b>業務規模化時期</b>
DDoS,因為雲主機本身是可以防止DDoS攻擊的,這樣就可以将代理層全部都部署到雲上。
明星活動以及其他大V的活動所造成的瞬時壓力是非常之大。而使用在雲之後,雲主機本身是按照使用量進行收費的,這樣可以将很多核心業務都部署到雲上,在出現瞬時活動需要進行擴容的時候就可以直接進行擴容,當活動結束之後就可以釋放這些多餘的資源,通過這樣的彈性伸縮可以極大地降低直播平台的營運成本。
雲主機以及雲資料庫等這些雲資源使用的都采用的是叢集模式的部署,而其叢集模式往往也是對于使用者透明的,這樣就可以了解成雲本身幫助我們實作了一層高可用。
平滑可伸縮,比如現在的資料庫的配置或者性能不能滿足需求了,就可以使用雲上的這些資源進行平滑地擴容,并且雲上的擴容對于服務是沒有任何影響的,而且包括SLB負載均衡器這些對于雲的使用者而言都是比較友好的。
<b></b>
<b>業務爆發時期</b>
雲服務本身是作為基礎設施的,可以為映客提供高品質的運維。但是當業務的日活、流量還在爆發性增長的時候,單單依靠雲服務這種基礎設施的能力還是不夠的,是以映客的服務架構也在不斷地疊代中。如下圖所示的架構架構是在映客上雲之後,進行了一次比較大的改造之後的架構。
這個架構就已經實作了一些分層,主要分為了使用者層、應用層以及資料層,并且在雲服務基礎設施上實作了很多服務化的重構、存儲的優化等的一些技術中間件,做了方方面面的工作來保障當業務爆發達到千萬日活的時候,服務還依舊能夠支撐住,這樣的架構本身的穩定性也還是比較不錯的。近期,映客在做的一件事情就是在目前體量已經非常大的情況下,如何去保證資源的獨占和安全,目前也正在基于雲服務設施進行VPC的部署,而且這項工作目前推進得也還不錯。
<b>擁抱阿裡雲後的變化</b>
映客的整體架構是建構在雲服務基礎設施之上的。目前映客已經達到今天千萬日活這樣的體量還在使用雲服務其實主要基于以下幾個方面的考慮:首先,映客認為在現階段,雲服務的發展已經相對比較成熟,并且也是比較安全的,雲服務在内部可以保障一些高可用的支撐;另外,使用者使用的所有服務基本上都是叢集化的,并且是支援平滑伸縮的,這些對于有活動營運需求的直播平台而言都是非常有價值的;并且雲服務的使用者也不需要預留太多資源來支撐可伸縮的容量;除此之外,如果使用自建機房,那麼運維團隊需要足夠了解每一個環節,需要能夠支撐從硬體設施到監控以及上線等各個方面,這對于一個快速疊代的公司的運維團隊而言則是非常困難的,而使用雲服務則可以保障基礎設施的高品質運維。以上這些就是映客直播到目前千萬日活的體量依舊選擇在雲上架構未來的很重要的原因。
其實很多服務以及系統到最後歸結起來都是資料,是以雲服務的重中之重或者基礎的基礎就是雲資料庫,這也是映客的架構中一直在不斷地疊代和優化的技術層面。雲資料庫作為基礎,也經曆了從單機時代到叢集時代,再到分布式架構的發展演變。
原文釋出日期:2017-09-01
雲栖社群場景研究小組成員:董黎明,仲浩。