摘要:在阿里云数据库技术峰会上,特邀嘉宾映客直播架构师王振涛分享了映客直播作为创业公司从0至日活千万的数据库架构变迁,数据库在直播中的经典应用场景,数据库存储的优化思路,以及如何构建一个高可用数据库架构。
8月24日,阿里云数据库技术峰会到来,本次技术峰会邀请到了阿里集团和阿里云数据库老司机们,为大家分享了一线数据库实践经验和技术干货。在本次峰会上,特邀嘉宾映客直播架构师王振涛分享了映客直播作为创业公司从0至日活千万的数据库架构变迁,数据库在直播中的经典应用场景,数据库存储的优化思路,以及如何构建一个高可用数据库架构。
以下内容根据演讲嘉宾现场视频以及PPT整理而成。
本次分享的内容将主要围绕以下四个部分:
一、映客直播发展历程
二、直播遇上云数据库
三、风口上的数据库架构变迁
四、直播典型应用场景分析
一、映客直播发展历程
映客直播是2015年5月份成立的一家公司,在移动直播领域,映客算是比较早成立的公司了。如上图中所展示的就是映客APP上的一些页面,左图展示的是映客APP中的热门内容,这里是某一个反串演员主播正在进行直播,并且此时有5万多观众正在观看;右图则是映客直播的发现频道,发现频道里面主要会在热门时段对于平台内的优质内容进行展示推送。在映客APP中会有很多类似于前面提到的这些页面,包括了游戏直播、健身直播以及小视频等等。作为一个刚刚成立两年的公司而言,映客直播的发展速度还是非常迅速的,从2015年5月映客成立之初,刚刚发布APP时的DAU只有200,到当年10月份的时候DAU就已经达到了10万+,再到12月份短短两个月的时间,映客直播的DAU就已经突破了100万,而在2016年中下旬的时候,DAU峰值就已经达到了千万级别。以上就是映客直播大致的整体发展历程。
二、直播遇上云数据库
业务起步:映客APP发布
接下来为大家介绍映客直播从开始到现在的架构发展演变过程。当映客APP刚发布的时候,整个后台其实只有三个人负责,两个开发和一个运维,这时的架构如下图所示。起初的架构其实是非常简单的,后台是由8台虚拟机搭建而成的,其中的6台虚拟机做了服务,而剩下的2台做了存储,存储这部分则是使用了自己搭建的MySQL和Redis。在这个起步阶段,对于后台系统要求最高的一点就是当出现了产品想法就需要尽快地实现,这样的架构非常适合在业务起步阶段的需求条件下实现一个直播APP,当时第一版本的开发工作只花费了2周的时间。
业务发展:规模化
而随着映客直播业务量的提升,从2015年的5月份到10月份,映客的DAU达到了10万+,到12月份的时候就已经达到了100万+,此时的业务发展已经达到了规模化的阶段,这个阶段的整体服务端的架构设计如下图所示。此时的架构也是分为了接入层、业务层、基础层以及数据层,但是此时的架构与第一版的架构相比,其整体的框架已经基本成型了,这一版的架构实现了一些业务拆分、数据拆分以及模块化复用,此时服务的底层仍旧是依赖于Redis和MySQL数据库的。这个阶段最为显著的变化就是引入了云,也就是说此时的服务已经上云了。
对于映客的服务上云,当时的考虑主要基于以下几点:
1. DDoS,因为云主机本身是可以防止DDoS攻击的,这样就可以将代理层全部都部署到云上。
2. 直播存在一个天然的属性就是有很多的明星活动以及其他大V的活动,因为这些活动所造成的瞬时压力是非常大的,如果使用自建机房就需要为这些可能仅仅持续几个小时的活动而囤积很多台服务器,需要购买很多预留资源。而使用在云之后,云主机本身是按照使用量进行收费