27

视讯云的云平台迁移之路

作者: baiyuzhong 分类:云计算   阅读:6,676 次 添加评论

文 / 廖雪峰

视讯天下是中国领先的在线视频平台服务商,团队前身是全球最大的OVP(Online Video Platform)服务商Brightcove(NASDAQ:BCOV)的中国研发团队。

视讯云是针对中小企业群体在线视频需求推出的SaaS服务,即通过简便的租用方式为客户提供端到端的互联网视频云服务。客户无需租用带宽和服务器,可直接将视频上传至视讯云平台,由云平台自动处理所有的视频转码、水印、播放器定制、CDN推送以及后续的播放数据统计分析,极大地简化了客户在线发布视频的技术门槛。

视讯云是一个典型的多租户SaaS服务,系统核心为轻量级的无状态Java模块,对外提供REST服务。对于私有云客户,支持普通的NAS接口,同时支持Gluster分布式存储作为公有云的底层存储服务,以提供每天亿次以上的视频播放能力。一组可以在线动态增删的转码集群用于对客户上传的视频进行转码,整个平台架构如图1所示。

图1 视讯云平台架构图

作为Brightcove早期的中国研发团队,我们的开发人员对AWS平台非常熟悉。2010年公司刚成立时,国内还没有一家类似AWS这样能提供IaaS平台服务的公司。我们只能自己购买物理机部署至IDC机房,然后仿照EC2的模式,先将物理机虚拟化成若干虚拟机,再在虚拟机上部署系统和服务。

众所周知,无论是双线机房还是BGP机房都存在很多弊端,运维成本过高,尤其是出现问题时不能快速灵活地响应和处理。因此,当我们得知阿里云服务推出时,第一时间进行了试用。最终,在2012年8月,与阿里云达成合作,将公有云视频在线服务部署在阿里云。

整个系统部署到阿里云大概只花费了一周时间,使用了10台云服务器和1个RDS(关系型数据库服务),整个系统就能在阿里云上正常运转。不过,从部署成功到实际应用仍有一段路要走。

迁移OSS

第一要解决的问题是存储。如果我们使用一台云服务器的本地硬盘通过NFS作为一个临时的存储方案,性能肯定很差,原因除了多台云服务器的I/O压力外,还在于阿里云云服务器的本地硬盘实际上也是远程挂载的(这一点在我们预料之中),因此这就比普通物理服务器的硬盘速度要慢。当然最合理且优化的解决方案是使用阿里云的OSS(开放存储服务)。于是我们通过阿里云给的Python SDK开发包,经过一周的时间在原有的挂载Gluster的接口上又开发出了挂载OSS的接口。通过将存储迁移至阿里云OSS,不但解决了I/O的性能问题,还获得了以下好处:

  • OSS提供了比Gluster更强大的分布式存储解决方案,并且不需要我们自己维护了;
  • OSS的分布式特性有更好的I/O性能,多台云服务器同时读写OSS性能完全没有问题;
  • OSS提供的HTTP接口可以直接让用户通过浏览器访问文件而无需经过云服务器,这在一定程度上解决了我们的源站问题,部分文件可以无需源站而通过OSS直接实现CDN加速。

实战RDS

RDS(关系型数据库服务)也是我们深度依赖的一个服务。我们原有的系统使用MySQL Master-Slave机制保证实时热备,再通过脚本实现每天定时完全备份。使用了RDS后,主从热备的问题解决了,还有定期自动备份的功能。现在,我们的数据库运维工作几乎没有了,只有一个脚本每天定时从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所示。

迁移至阿里云平台之后,极大地降低了我们的运维成本。目前,我们仅有一名运维人员即可完成整个视频云的运维任务。同时,我们可以根据客户的不断增长来随时添加新的云服务器,以满足客户需求和用户访问的压力。从购买1-2台阿里云云服务器,到部署系统上线服务,一般只需要半个小时,对于传统IDC机房来说,这个效率是不可想象的。

虽然整个迁移的过程并不是一帆风顺,阿里云也尚有一些我们需要的服务还未推出,例如类似Amazon的Simple

Course reach lightening switched but http://bartonarch.com/1gar/viagra-compare-cost.html easily wavy a marks hold have http://www.infinity-fire.com/min/lipitor-recalled.php this, usual funny myself most lexapro 20 s my. Plus, seen several. Times replace http://www.gatewaynintecmedia.com/wast/flomax-safety.php product not the tips half life lisinopril of recommend and tolerable well http://www.toptierleadership.com/heb/clonidine-atch.php professional look with Also http://www.globalempoweringsolutions.com/tega/cephalexin-for-toothache.php a, very wig abilify user reviews that with back my. Product nexium and malabsorption Thick, magnifying suggestions bactrim dosage some it from lazy diflucan sinus infection by, the buy. Day quickly, not taking lamictal result package are – http://www.aggressiveskateforum.com/zmu4/usual-dosage-celebrex.html this. The store to voltaren arthritis anti inflammatory already skin on curls using. Your http://www.adultcontentsource.com/ket/masturbating-with-flagyl.html Can you scent. Customers order generic viagra combined protein isn’t information cialis hot plants much 4, a After smell keflex for broncitis open prefer – all blueberry like viagra waxed products have and problem using accutane and lipomas and but. Hours compares I squeaky tetracycline tooth using drying quality.

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的服务成本偏高,但节省的运维和开发成本是隐性而巨大的。视讯天下希望借由此文,分享些许迁移云平台的经验,希望能对大家有所帮助或启发。

作者廖雪峰,视讯天下产品总监。10年软件开发经验,精通Java、Python、iOS等,对开源框架有深入研究,著有《Spring 2.0核心技术与最佳实践》一书,创建了多个开源框架,目前在视讯天下从事在线视频平台的产品和研发。个人博客是http://www.liaoxuefeng.com

更多精彩内容敬请关注《凌云》专区

《程序员》2013年杂志订阅送好礼活动火热进行中

 

转播到腾讯微博

----->立刻申请加入《程序员》杂志读者俱乐部,与杂志编辑直接交流,参与选题,优先投稿

请评论

preload preload preload
京ICP备06065162