以互联网技术构建城市电视台融合媒体客户端
2018-04-02陈嘉
□陈嘉
近五年来,移动互联网全面取代PC互联网,手机全面取代电脑,成为主流的媒体终端。城市电视台的新媒体业务,主阵地也从PC网站转移到了手机客户端。CUTV城市联合网络电视台从2014年开始进入移动互联网,先后为16个联盟电视台合作开发建设客户端,积累了不少经验。在这个过程中,互联网技术的应用,极大地提高了项目执行的效率,降低技术成本,有效地推进业务的快速发展。
一、电视台传统技术系统集成手段构建融合媒体客户端的弊端
(一)建设周期长、成本高
国内电视台为国企,技术系统的建设参照国企的规范流程,融合媒体客户端一般要经过需求收集、调研、规划、立项、招标采购、实施、验收、上线等几个阶段。整体建设周期长,往往从有需求到客户端上线,时间跨度要超过一年。这当中耗费的人力、物力,特别是时间成本比较高,而移动互联网是分秒必争的竞争型市场。
(二)计划赶不上变化
在长周期的客户端建设项目中,往往会出现各种变化:从内部来讲,一开始规划的业务需求,经过一段时间之后,需求已随着业务的深入不断变更,与最初设想的模样可能大不相同;从外部来讲,移动互联网业务风向变化极快,规划时还处于风口浪尖上的业务,半年一年后风口一过,便成鸡肋。
进入移动互联网这个领域,电视台与民营的、资本化运作的互联网公司直接竞争,按照原有国企的步调难以适应,如若适当引入互联网技术及管理手段,则能有效提高竞争力。
二、引入互联网技术,降低平台成本,提高技术效率
近年来,互联网和移动互联网技术大放异彩。选择合适的技术支撑城市台融合媒体客户端,能有效地降低技术成本提高业务效率。
(一)虚拟化技术的使用能有效提高资源利用率
传统广电技术系统为了确保安全做好隔离,每台服务器只安装一个系统,跑一两个应用。而在城市电视台客户端这类区域性业务上,服务器的负载往往不高,导致服务器的计算资源、内存资源、硬盘资源、用电及空间等闲置浪费。而通过虚拟化技术可以在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响。CUTV三年前转向虚拟化方向后,采购的都是高密度的服务器,一台服务器可以虚拟出几十台逻辑服务器,大大减少了机柜空间、能耗等基础资源消耗,并有效提高了资源利用率,再通过负载调度手段做好设备的物理冗余,在安全保障上也得到提升。设备的减少跟统一,让运维的难度大大降低。
(二)云服务的使用能有效降低成本,提高伸缩扩展能力
近三年,整个互联网行业已转向云服务承载。电视台大多属于国企,采购服务器作为硬件资产理所当然,但随之而来的问题就是采购周期长、资产成本重、扩容不灵活,这对于城市台融合客户端业务无疑是一大障碍。而大胆采用云服务,能有效降低项目启动成本,按需求、按业务使用情况付费,并能跟随着业务的发展快速扩容。CUTV建设的私有云加公有云的广电混合云平台,将生产、发布管理等对安全性要求高的业务放在私有云上,将支撑互联网用户并发访问的业务放在伸缩灵活的公有云上,两相结合,达到很好的互补效果。
(三)容器化技术的使用能有效提高业务部署效率
容器化可以称为轻量级虚拟化技术,与传统的VM相比,它更轻量,启动速度更快,单台硬件上可以同时跑成百上千个容器,非常适合在业务高峰期通过启用大量容器进行横向扩展;容器也是可移植的,可以在各种主流Linux发行版或者OS X以及Windows上使用,可以称为“构建一次,在各平台上运行”。容器技术重新定义了软件开发、测试、交付和部署的流程,交付的东西不再是代码、配置文件、数据库定义等,而是整个应用程序的运行环境。无论是测试、运维、开发,都在同一个环境下,可以与其他服务集成,进行开发流程的自动化。CUTV采用容器化技术,除了进一步提高资源利用率,另一大好处就是大大提高业务部署的效率:过去部署一个环境,从上架服务器、安装系统、安装驱动、逐一安装LNMP环境大概要半天时间,通过容器化几分钟就可以完成一个LNMP环境的部署并提供给研发、测试使用,还可以批量自动化部署。
(四)微服务技术的使用能有效提高后台开发迭代的效率
城市台客户端一般包括图文资讯发布、视音频流媒体播放、用户数据管理、表单交互互动等较为独立的后台支撑系统,如采购第三方软件,这些软件大多都是各种独立系统的堆砌,随着系统规模的扩大,复杂性逐渐变高,技术债务逐渐上升,部署速度逐渐变慢,会阻碍技术创新并且无法按需伸缩。如果研发时这些后台系统采用微服务架构,就能有效地拆分应用,实现敏捷开发和部署。因为每个微服务相当于一个模块项目,开发这个模块就只需关心这个模块的逻辑即可,代码量和逻辑复杂度都会降低,从而易于开发和维护,局部修改也容易部署。在开发中发现了一个问题,如果是单体架构的话,就需要重新发布并启动整个项目,非常耗时间,但是微服务则不同,哪个模块出现了bug,只需要单独解决并重启该模块服务即可。同时技术栈不受限,可以有Java编写的服务,也可以有Python编写的服务,他们是靠Restful架构风格统一成一个系统的。所以微服务本身与具体技术实现无关,扩展性强。微服务之间只要定义好明确的接口,采用轻量级通信,每个服务达到服务自治,就可以配合敏捷开发,达到快速迭代的目的,大大提高后台开发效率。
城市台融合媒体客户端的强互动、高并发、功能快速迭代等业务形态,只有引入并用好互联网技术,才能高效支撑业务部门开展融合媒体的综合运营工作,甚至能开发出创新型功能。有了以上的技术基础,CUTV在汕头橄榄台项目上,才能实现三年150万用户的增长,才能实现1秒15万互动并发的承载,才能实现每月小迭代、每年大迭代的不断更替,支撑汕头橄榄台超越传统电视成为粤东第一媒体。
三、引入互联网技术管理手段,快速提高客户端产品质量
在开展融合媒体客户端的项目开发过程中,掌握好互联网化的技术管理手段、管理工具,能使开发业务事半功倍。
(一)破解计划赶不上变化的有效办法——敏捷开发管理
传统计算机软件开发,普遍采用瀑布式开发管理办法。瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。CUTV在大型业务系统如城市电视台统一融合媒资系统的开发上,采用瀑布式方法,该系统需求明确,功能模块之间逻辑严密。但瀑布式方法在需求不明确并且在项目进行过程中可能变化的情况下基本是不可行的。所以对于处于不断探索演进,并且要跟随业务经营随时迭代的融合媒体客户端项目,敏捷开发管理更加适用。
敏捷开发以业务的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个相互联系但也可独立运行的小项目并分别完成,在此过程中软件一直处于可使用状态。CUTV在壹深圳APP上采用敏捷开发模式,将项目开发分为两个阶段,第一个阶段完成新闻发布、壹深圳订阅号、广播模块、视频模块、记者帮模块、个人中心等主要功能模块的开发,在三个月内达到可运行状态,发布上线;第二个阶段,在上线后,采用每月一个版本迭代的方式,增加广播回听、发现版块、壹视频、VR功能、智能推荐、摇一摇互动、视频弹幕、新闻地图、积分兑换等功能。期间根据用户反馈和业务运营部门的需求,随时调整功能规划,快速响应,不断变更及优化APP功能。如采用传统瀑布式开发模型,从规划、开发到上线,至少半年时间。按互联网的节奏,可能半年风口已过,天翻地覆。而采用敏捷开发,能在以周为单位的时间内响应变化,快速上线业务,并根据上线后的运营情况持续迭代优化,真正做到伴随式开发。壹深圳改版上线后,业务部门在用户需求不明确、不详细但又需要不断探索发展的情况下,以敏捷开发管理解决实际问题,近半年新增用户近百万。
(二)混合技术团队提升效率的有效办法——协同开发管理工具
在客户端项目的开发过程中,经常会遇到前端后台多个团队、多个模块的协同开发,并且往往团队人数众多,还常常不在同一地点办公。如何提高协同开发的效率,降低团队交互过程中的各种规范化、流程化及沟通障碍问题,是项目能否高效、高质量推进的核心问题。针对这些问题,CUTV引入了互联网化的管理工具,成效明显。
比如在流程管理上,采用禅道之类的研发管理平台,将产品管理、项目管理、质量管理、文档管理、组织管理等工作放到平台上,每一个项目参与人员在平台上发布、接收自己的工作任务,并共享项目相关文档,令标准统一、流程规范、工作透明、业务可追溯,使得整个研发工作可视化,便于管理与统计,甚至作为KPI考核、奖励激励等研发团队管理的重要参考工具。
在代码管理上,采用GitHub平台,作为云端的代码托管平台。采用GitHub的好处,是可以跨终端、跨平台,随时随地接入下载或更新代码。GitHub发展至今由于注册用户众多,其托管版本数量也非常多,是一个专门为程序员量身打造的代码开源共享及私有软件项目的托管平台。它有许多非常贴心、实用的功能,能非常方便地进行代码的合并及版本控制。CUTV考虑到安全性及软件资产问题,一开始采用私有化部署的SVM平台,但客户端的源码处于不断的迭代更新过程中,三个月到半年,经过几个版本迭代,旧源码的价值已不用太过重视。GitHub作为一个大型的平台,相应的安全保护措施也比较成熟,在客户端代码托管上,使用云端平台利大于弊,也是互联网移动化、轻量化、云化的必然趋势。
在Bug管理上,由于需要业务部门、运营部门的同事参与,太过于专业化的平台对非开发人员来说不够友好,于是CUTV引入bugclose系统,方便非开发人员参与到客户端优化的工作中来。通过这个更轻量化、更简洁易用的平台,测试人员及非技术人员可以随时反馈bug,再由项目经理指派给具体研发人员,通过微信就能可视化地全程跟踪问题解决的进展。
(三)产品质量管控的有效工具——云测试与APM
产品质量管控是客户端研发的一个难题,难在两个方面:一是兼容性问题,市面上手机型号众多,系统版本众多,特别是安卓手机,以及手机厂商的各种深度定制化系统众多,如果买齐各种手机作为测试用机,投资巨大;二是严密性问题,测试工作严谨而繁琐,重复且枯燥,人工测试百密难免一疏。CUTV在这一块踩过不少坑,现采用两种类型的工具,较为有效地解决了品控难题。
一是在完成开发交付测试的环节,除了人工用例测试,还引入互联网云化测试平台,将安装包传到云平台,通过云平台上千台真机进行测试,通过这个手段能有效解决崩溃、闪退等严重的兼容性问题,可多家公司同测,针对测试出来的问题有针对性地进行优化。
二是采用APM工具,在APP里埋点,嵌入探测SDK,监测客户端的运行状态。在APP上线后,通过APM系统实时监控APP的运行状态。目前CUTV采用的APM工具,能实时采集到所有用户使用APP各个功能时的大数据,能汇总导致崩溃的具体代码,以及网络延时、服务端响应时间等重要的运行质量数据。通过这些数据反馈,能及时发现问题,再通过前后端代码、网络、服务器的优化,逐一解决问题,确保客户端处于一个良好的运行状态,达到上线后的良好品控。