全解芒果TV混合云平台架构

日期:2015-7-16来源:TechTarget中国

混合云   七牛云   

借由湖南广播电视这一亚洲前五的广播电视系统的东风,以及其下的所有内容资源的独播权利,芒果TV仅在上线一年半的时间内,就已经积累了超过50000小时的长时高质的视频资源,以及超千万级别的用户规模,可以说是广电行业在互联网产品领域的一个标杆式的品牌。是什么支撑起芒果TV如此庞大的视频流量?对此芒果TV平台部核心技术团队负责人彭哲夫给出答案。

相比互联网公司,传统媒体的开发模式更追求稳定

彭哲夫之前在豆瓣工作多年,负责Douban App Engine的研发,深谙互联网领域的技术发展规则。而芒果TV的平台建设,也是随他进入而起,从典型的互联网公司到传统行业的互联网部门,这其中的差别,他可谓深有体会。

经彭哲夫介绍,从全局来看,目前芒果TV的主要业务包含三个方面,均由芒果TV的技术平台部门来支撑。

  • 第一条线是湖南本地的 IPTV 内容。
  • 第二条是OTT 线,这一条线拥有千万级别的真金白银的付费用户。
  • 第三条线是网站内容,这也是芒果TV的技术平台部门主要支撑的业务。因为独播策略内容为王,芒果TV现在要承担湖南卫视所有节目的互联网渠道转播工作。同时,芒果TV另辟蹊径,在互联网直播技术上也往前走了一大步,例如前几天的 Billboard,全球同步直播;跨年晚会,五机位自由选择视角互联网直播等。

公司性质、所处领域与业务线的不同也带来了工作方式的不同,因此当谈到与前东家豆瓣的对比时,彭哲夫说到,“我认为,互联网企业讲究短平快,国企下的互联网产品机构尤其是媒体领域会更加谨慎一些。这样带来的结果就是迭代速度会变慢,周期会拉长,但相应的稳定性会更高。另外,在技术选型上也比较保守。”

芒果TV平台架构的演变

虽然领域存在差异,但技术上的追求则是共通的,更由于有钱任性,芒果TV甚至可以比互联网圈子大多数求“活下去”的公司更能在自己领域和技术的某些方面冒进。“对于内部方案而言,目前我们也在做改进,将好的新的技术逐步引入到公司工作流当中。例如,从SVN切换到GIT,再比如大规模使用Redis-Cluster和Docker技术来简化线上基础设施等。”彭哲夫一直在尽自己最大的努力,引入业界优秀的解决方案来提升芒果TV的系统性能,降低运维成本。由他的负责平台部核心技术团队,目前主要是在做基于Docker的调度平台以及整个公司的基础设施。他们在没有参考任何其他调度编排系统的情况下自行研发了调度编排系统,现在这个系统驱动了芒果TV的Redis集群,实现了毫秒级的扩容和缩容,保证4个9的可用性和6个9的数据可靠性。

自建系统平台,支撑核心业务

在加入芒果TV之后,彭哲夫结合以往在豆瓣的经验,实现了类似 DAE 架构的一个新 PaaS —— Nebulium Engine(NBE),其基于两级Nginx结构,服务发现基于Skydns,配置存储在etcd。在运行时完全用 Docker 来进行隔离,并将控制层移到了 Container 之外。

但在这个过程中,出现了一个让人很头疼的问题——那就是在芒果 TV 内部并没有一个大一统的强势语言,作为系统开发方,他们只能把 Runtime 的控制权完全交给业务方去决定。因此,综合大半年线上运行结果来看,在资源管理和工作流整合上,NBE 做得并不是很好。

原因有很多,一方面是基础设施和之前豆瓣比实在太糟糕,如果说豆瓣是21世纪的互联网公司的话,那么当时的芒果TV还停留在19世纪的传声筒时代;另一方面,各种各样的语言都需要支持,在放开 Runtime 之后,平台部门对于资源竞争和预估是完全没有任何能力去做的,恰恰业务方又希望平台部能完全解决这些问题。举个例子,Python GIL 限定在非多进程模式下最多吃死一个核,但是隔壁组上了个 Java 的中间件。这时就只能看着 Python 业务方过来哭天喊地了。

这时期的系统架构如下图所示。

全解芒果TV混合云平台架构

于是在2014 年底,开发者们重新回顾了一遍 Borg 和 Omega 相关的信息,开始了第二代NBE,也就是今天的主角——Project Eru——的开发。这一次他们抛弃了以前做一个PaaS的思路,而是决定去实现一个类似于Borg的服务编排和调度平台。

第二代NBE——Project Eru

到目前为止,Eru平台可以混编Offline和Online的服务(binary/script),对于资源尤其是CPU资源实现了自由维度(0.1、0.01、0.001等)的弹性分配,使用 Redis 作为数据总线对外进行消息发布,动态感知集群所有的 Containers 状态并监控其各项数据等。此外,把基于Docker的Image Layer特性和Git version结合起来,实现了自动化的 build/test 流程,统一了线上部署环境。同时解决了 Runtime 的污染问题,使得业务能快速地扩容和缩容。系统架构如下图所示。

全解芒果TV混合云平台架构

看上去变化不大,实际上内部的设计和反馈回路等与第一代截然不同。业务层方面,在逻辑上使用了类似于Kubernetes的Pod来描述一组资源,使得Eru有了Container的组资源控制的能力。但是和 Kubernetes 不同的是,Pod 仅仅是逻辑上的隔离,主要用于业务的区分,而实际的隔离则基于网络层。对于 Dockefile,这里不允许业务方自行写Dockerfile,而是通过标准化的 App.yaml统一Dockerfile的生成,通用化的 Entrypoint 则满足了业务一份代码多个角色的复用和切换,使得任何业务几乎都可以完全无痛地迁移上来。

另外,第一代NBE是个完整的闭环,一个业务由生到死都有NBE本身各个组件的身影。但在Eru中放弃了以前考虑的完整闭环设计。由于第一代NBE打通了项目整个生命周期的每一个环节,但实际上落地起来困难重重,并且使得Dot(Master)的状态太重没法 Scale Out,因为它是单点部署,可靠性上会糟糕一些。所以Eru中每一个Core都是一个完整的无状态的逻辑核心,使其在能够Scale Out的同时可靠性也比 NBE 第一代要健壮得多。

因此,在这个体系下,业务推荐会根据自身业务特性,通过监控自身数据、订阅 Eru 广播、调用Eru-Core的API ,实现复杂的自定义的部署扩容等操作。在系统中,并会去强行干涉或者建立一系列规则去限定这些事情,这也是它不属于PaaS的原因。

总的来说,Eru平台项目的设计思路是以组合为主,依托于现有的 Redis 解决方案,通过“消息”将各个组件串起来,从而使得整个平台的扩展性和自由度达到业务的需求。除了一些特定的方法,比如构建 Image,其他的诸如构建 Dockerfile,如何启动应用等,均不做强一致性的范式去规范业务方/服务方怎么去做,当然这和芒果TV本身体系架构有关,但主要还是为了减少落地成本。

引入公有云服务,构建360度方案

为了同时抓住核心业务外和边缘性业务,又不能让突发业务影响到核心业务的发展,芒果TV目前选择的是私有云加公有云的混合云解决方案。彭哲夫所负责的平台部门核心技术团队,已经围绕核心业务打造了属于自己的私有云业务平台,以确保业务的正常运行。而随着业务量的增加,以及突发事件的频起,芒果TV本地私有平台已经不能满足全部业务的需求,但自建数据中心来处理并发流量,又会造成资源浪费、增加成本负载。基于这些情况,芒果TV开始积极寻找公有云服务提供商,而七牛作为候选方案提供商,针对转播和直播两类业务分别提出了360度的解决方案,以备具体场景的需求。

首先,七牛采用优化的EC技术,使单位存储的冗余度从传统3副本降到1.125,并率先达到了16个9的可靠性。由于广电属于受到监管比较严格的传统行业,客户也会对云存储存在的传输性能和隐秘性等方面感到担忧。对此,一份数据在上传时,七牛先将其打散,每一台服务器都是子因素,分批量将这些文件存在对应的服务器上,从而使任何一台服务器的宕机都不会影响其他备份服务器的正常运转。

同时,将媒体文件进行切片加密保存,最大程度保证了数据的私密性。在音视频处理方面,七牛有快速转码、视频水印、打点、快速转格式等在线应用,并且将计算资源作为一个池,可以进行动态扩张和缩小。在内容分发方面,七牛推出了自研的多CDN管理平台,能够帮助用户透明并自助式地监控和管理各个CDN节点,在上传、存储、下载、分发等各个环节做好健康管理,实现一站式服务。

结语

强有力的技术支撑平台是保障业务得以快步发展的坚实后盾,这一事实无疑在芒果TV得到了更深刻的印证。同时,芒果TV引入云服务打造360度技术方案,不仅节约了大量的时间和成本,更帮芒果TV在上线一年半的时间内迅速实现业务扩展,抢占了时间优势和发展先机。相信在互联网+风口下,谋求突破和转型的广电机构/企业还有很多,云服务势必会为这次优雅转身起到相当大的助推作用。

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

云存储>更多

  • 谷歌云存储降价:与Glacier竞争冷存储市场

    随着谷歌对自己的云存储产品重新分了类,最近又新增了一个冷存储层级以吸引企业客户,该公司正在回归价格才是决定因素的这一云战略。

  • OpenStack对象存储评估:Swift对阵Ceph

    两种最常见的OpenStack存储选项分别是作为OpenStack项目一部分的Swift,以及独立的开源系统Ceph。这两个选项都提供对象存储,并且可以免费下载。

  • AWS冷存储成本知多少

    专用高速网络连接,如AWS Direct Connect,可以在数据中心和AWS云设备之间建立专用连接。以太网连接绕过了公共互联网,避免了瓶颈和拥塞,这往往降低了带宽,也降低了数据传输性能。

  • 联想企业网盘:只做数据的搬运工

    联想企业网盘是基于云存储的企业文件协同与管理平台,企业借助该平台可以为员工提供个人数据存储、分享服务,保护数据安全;也可以按照企业组织架构组建企业级、部门级、项目级的协同工作服务,提高数据处理效率。

相关推荐

  • 混合云市场又添新成员:ZStack讲述云的“进化”论

    2017年1月18日,企业专有云、混合云市场的创新者ZStack举办了以“进化”为主题的ZStack产品战略及融资新闻发布会。在发布会上,ZStack表示随着企业应用加速云化,企业云计算正在从项目型向产品型进化,混合云也因为满足敏捷性、安全性等关键需求而获得企业的青睐。

  • 公共云存储服务的可扩展性和性能

    很多企业都在使用公共云、私有云以及混合云这样的一个组合,但是其中的公共云存储服务是尤其吸引人的。它的成本效益高,它可提供可扩展性、可靠性以及性能优势。

  • 双管齐下:戴尔布局混合云 筹谋人工智能

    未来云计算是一种兼具公有云和私有云的方式,无论VMware还是戴尔,我们一直坚信未来的IT技术发展或者是整个企业去走数字化转型的发展当中,混合云是非常清晰的方向,几乎就是业界比较确定的方向。

  • AWS如何在多云/混合云客户中定位?

    企业可以全部使用AWS——的确很多公司这么做,或者一次使用多个云,如Microsoft、IBM或者Google。他们还可以选择私有云,如OpenStack,或者选择混合云——公有和私有云的组合。

技术手册>更多

  • 云平台选择与部署指南

    云计算应用落地是一个很漫长的过程。在部署云计算之前,用户必须认识各个平台供应商及其云平台,然后根据自身架构选择合适的云平台投入运营。

  • 企业应用迁移到云中规划实践指南

    云计算迁移的一个最主要的好处就是成本优化。大部分的企业采用云计算技术的时候可以看到他们花费在IT上的一个性质的转换。那么企业应用向云中迁移过程中有哪些技巧呢?

  • 亚马逊Web服务功能概览手册

    根据Gartner去年后半年发布的报告来看,目前为止,亚马逊Web服务(AWS)仍旧是基础架构即服务(IaaS)世界的主宰者。AWS系统化的解决了主流企业应用面临的问题,2013年的确很精彩,竞争者不断逼近,但是AWS仍旧占据绝对优势。AWS现在对于开发合作伙伴生态环境想法多多。市场上有个特别有意思的比喻,说“亚马逊就是金刚,但是现在是金刚和他的小伙伴们。”现在基本上所有的主要的IT服务提供商和主要IT厂商都是充满了吸引力的合作伙伴候选。现在很多客户也认为如果你有一个精通AWS技能的人才,做事情就会快得多,在云端也会更加如鱼得水。

  • 企业私有云实施案例与技巧

    大型企业可以率先构建私有云,但是企业私有云实施方面有哪些可供借鉴的案例?企业在构建私有云过程中又有哪些需要遵从的技巧和原则呢?本技术手册将为您一一介绍。

TechTarget

最新资源
  • 安全
  • CIO
  • SOA
  • 虚拟化
  • 网络
  • 数据中心