6月26日下午,以“数字媒体领域的云端技术创新与实践”为主题的2021 腾讯云Techo Hub技术巡回活动第三站在长沙盛大开启。 湖南融链科技有限公司CEO李颖悟老师,湖南知名数字媒体芒果TV 技术总监潘建波老师,与多位腾讯云专家,共同探讨了数字媒体背后的创新技术,重点分享了 GPU 云服务器、云原生数据库、云开发、大数据、音视频等技术的解析和实践。
基于区块链和分布式存储的视频存证系统
2019年,中共中央总书记习近平在中央政治局第十八次集体学习时强调,把区块链作为核心技术自主创新的重要突破口,加快推动区块链技术和产业创新发展。在 “十四五”规划中,明确提到“培育壮大人工智能、大数据、区块链、云计算、网络安全等新兴数字产业”,首次将区块链纳入到五年规划中。
湖南融链科技有限公司CEO、腾讯云TVP李颖悟老师将区块链技术的优势总结为四点:(1)区块链的去中心化技术,降低了信任背书的难度,能组织更多的供应链参与方,补充和共同维护更多的商品数据,提高用户的信任度;(2)区块链技术的不可篡改、时间戳等特性,让交易可追溯,当供应链数据被篡改时,可实现有效追责,保证商品信息透明真实,根除假冒伪劣问题;(3)供应链各方共同维护数据源,并且是公开透明的,确保参与各方及时发现运行过程中的问题,快速找到对应的解决办法,有助于提升供应链管理效率;(4)区块链在匿名的基础上,还通过多种加密、验证方式等多种技术手段,有效地保护用户的个人隐私,提高其信任感。因此,区块链技术将在食品溯源、物流与供应链、版权存证、智慧城市与公共服务等领域大放异彩。
湖南融链科技有限公司(以下简称湖南融链科技)利用区块链技术打造了茶产业平台,将茶园的种植、培管、采收、运输、加工、仓储等整个环节都迁移到区块链上,打通了茶园、茶厂和消费者的数据链,解决了茶的品质溯源以及销售问题。在茶园、茶厂和消费者的数据链中涉及流媒体(监控录像)保存的问题,由于视频量大、数据多,如果采用传统的中心化存储的方案,会存在信任问题,数据也有可能会改变或者丢失,而如果将视频全部放在区块链上,整个区块链系统的管理就需要达到共识,这一过程效率低下,如何解决视频存储就成了一个难题。
湖南融链科技的解决方法是以分布式存储的形式将数据存储在服务器上,将区块链技术与分布式存储完美地结合在一起。包括通过IPFS实现基于视频内容的寻址;通过开源系统实现内容可证明和去中心化永续存储;将视频内容CID上到联名链存证和可回溯。
异构计算在数字媒体的应用
数据猛增的时代,对计算速度提出了更高的要求,传统CPU架构已经无法满足数据计算的需求。比如在深度学习训练/推理,科学计算等场景中,需要强大的浮点运算能力的支持,通用CPU擅长处理逻辑复杂的事务性任务,因此不能应对这些浮点运算需求的场景。GPU依托并行计算架构,具备非常强的浮点运算能力,数据吞吐量大,在高性能计算场景中变得不可替代。在视频转码场景中,GPU 集成了专用的视频编解码硬件单元,相比 CPU 提供了更快的视频处理速度和密度,是目前网络视频流高并发与低延时等场景下的优先选择。在图形图像处理领域,随着渲染、云游戏、协同设计等场景上云,GPU的需求也非常迫切。因此,GPU服务器市场增长迅速。
腾讯云计算高级解决方案架构师王璐介绍说,腾讯云 GPU 云服务器是提供GPU算力的弹性计算服务,具有超强的并行计算能力,作为IaaS层的尖兵利器,服务于人工智能深度学习训练/推理、科学计算、图形图像处理、视频编解码等场景。
腾讯云的GPU服务器产品,只需要在腾讯云上进行购买,就可实现驱动自动化安装,同时可以一站式选择CUDA、cuDNN安装,非常方便。腾讯云GPU服务器产品也提供了多种使用途径,如TI-ONE TI-EMS,TI-ONE平台可以调用到GPU云服务器,从最底层平台进行购买;TI-EMS则是针对模型进行推理使用,在模型训练完后可以在平台上自动部署自己的计算资源。
在云游戏行业,腾讯云不仅提供IaaS层计算资源,还提供PaaS层计算资源,腾讯云GPU服务器在云游戏行业有着重要的应用。王璐老师详细介绍了vGPU、黑石2.0、SG1,以及安卓云游戏解决方案。通过这些解决方案可以看出,腾讯云GPU产品支持了多种接入途径,也适用于多种使用场景,无论是图形渲染还是AI训练/推理,都可以满足不同层次的需求。
腾讯云云原生数据库TDSQL-C
对于传统数据库来说,可用性和可靠性二者难以兼顾。云原生数据库是存在于云上的,可以随时随地从多前端访问,由于集群部署在云上,因此单点失败对服务的影响很小。云原生数据库与底层的云计算基础设施分离,可以灵活及时地调动资源进行扩容和缩容,从容应对流量激增带来的压力,以及流量低谷期因资源过剩造成的浪费。也正是因为能够灵活扩缩容,云原生数据库也具备很强的可迁移性。因此,云原生数据库成为了互联网和游戏等行业的最佳选择。
腾讯云数据库专家工程师窦贤明介绍说,腾讯云原生数据库 TDSQL-C是腾讯云自研的新一代高性能高可用的企业级分布式云数据库。融合了传统数据库、云计算与新硬件技术的优势,100%兼容 MySQL 和 PostgreSQL,实现了超百万级 QPS 的高吞吐,128TB 海量分布式智能存储,保障数据安全可靠。
窦贤明老师通过微信小程序前端、內容电商平台、实时报表类业务三个详细的案例,深入介绍了腾讯云原生数据库的极致弹性。
云创多媒体引擎--助力企业内容生产工业化
由于疫情的爆发与防控,大量线下业务无法正常开展,企业相关业务与直播能力结合日趋紧密,加上用户观看直播的习惯逐渐养成,多家企业逐渐投入到直播大潮中,探索并占据新的市场。
直播、短视频等成为了主要的媒体形式,内容消费成为主流,内容生产工具成为刚需。在这种情况下,很多团队都面临着缺乏剪辑能力及媒体素材管理能力、缺乏将业务直接在云端完成视频采集、编辑、合成、发布全链路流程的能力,他们渴望拥有一整套云端服务,提供实时直播剪辑、录制等高效功能和强大稳定的云端媒资管理,同时可以高效管理文件和在线剪辑。 腾讯云的云创多媒体引擎,可以同时解决以上所有问题,为企业提供在线视频创作工具,主要包含智能媒资库、在线视频编辑和直播剪辑等核心功能,融入大量 AI 辅助编辑的功能,并提供可被集成的 PaaS 交付模式和一键换肤的 SaaS 模式,满足现今直播领域的多样化需求。
腾讯云高级产品经理郭磊,在活动现场与现场观众详细分享了云创多媒体引擎的三个核心能力:可以基于模板工具规模化、快速地进行线上内容生产;可以基于线上的协同能力,整体提升线上内容生产流转过程的工作效率;可以基于直播的分发能力,覆盖针对内容最终在应用环节的需求。
腾讯云创多媒体引擎主要提供两种接入方式:标准的SaaS模式和SaaS API模式。标准的SaaS模式是即买即用的模式,在云创多媒体引擎官方平台注册会员,就可以使用云创多媒体引擎的全部能力。腾讯云还提供了更加契合企业应用的场景,客户可以自定义域名和LOGO,当客户完成域名自定义后,将域名嵌入到自己的内容中,不会有平台跳转的感受,使用起来更轻、更快、更方便。
SaaS API的模式,是基于API的接入能力、组建化的能力,使用户可以进行自主研发,在自己的平台上搭建原创的功能模块,然后在自己的平台上进行开发和搭建。 总之,对于没有平台的客户或者只希望购买且快速使用的客户比较适合使用标准的SaaS模式,有一定开发能力和一定自定义要求的客户,则可以通过SaaS API的模式去接入。
云创多媒体引擎旨在助力客户构建自己的内容生产和消费平台,其中模板化视频生产全面提升了企业内容视频化效率,实现了内容极速上云,并且支持多人异地协同创作,这样多产品组合极大助力了内容生产及消费。
云原生一体化平台助力数字媒体行业发展新思路
疫情助推下,线上业务发展如火如荼,微信小程序借助微信自身强大的渠道能力也迎来了爆发式的增长。在小程序开发过程中,不可避免地会遇到一些难题。如实时抽奖的功能,整个功能需求看似非常简单,似乎两个人配合几天就可以完成:前端开发完成交互UI、后端开发实现抽奖接口API。但是如何防止羊毛党薅羊毛?秒杀抽奖高流量情况下,如何应对高并发?如何保障百万用户互动的实时性?接口如果被压垮,如何保护其他业务不受损?硬件发生故障如何处理?
腾讯云高级产品经理张斯静表示,这些问题看似简单,但却需要长时间的技术投入和积累才能解决。她所在的团队是要将解决这些问题的能力服务化,让所有开发者可以低成本的使用这些能力去解决问题,实现业务的发展,而无需关心其中的原理,从而实现降本增效。
为此,腾讯云云开发团队和微信团队共同打造了云原生一体化平台,即云开发和云托管。 云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为开发者提供高可用、自动弹性扩缩的后端云服务,包含计算、存储、托管等 Serverless 化能力,可用于云端一体化开发多种终端应用(小程序、公众号、Web 应用、Flutter 客户端等),帮助开发者统一构建和管理后端服务和云资源,避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
腾讯云微信云托管于6月21日正式上线,是新一代云原生应用引擎,主打托管通用能力。云托管更加贴近传统后端开发者的习惯,可以无缝使用传统的开发联合技术栈,包括Spring Cloud/Dubbo、Java等常见工具。云托管集中了安全防刷、域名备案、监控告警、日志管理、CI/CD、多环境管理、MySQL、灰度发布、公网访问等功能,用户可以专注于自己的业务开发,把一切技术开发能力交给云托管。
在传统开发模式下,如果小程序需要调用后端API必须要经过四步:用户端的小程序调用WX.Login获取CODE,后端服务器用CODE和微信服务器进行交互,换取微信用户独有的标识发送给小程序本地存储,实现一次完整的调用。如果是云开发或者云托管的模式,由于云开发和云托管与微信服务器之间是通过微信私有链路进行调用,而不是公网通信,具有天然的可信赖性和安全性、可靠性,所以就可以省去这些烦琐的交换步骤,直接一步到位,获取用户的OpenID或用户信息,不再需要进行鉴权。
此外,对于运行在云原生服务器上的应用,可以无痛迁移到云开发或云托管上。对于前端来说,仅需改造一行代码(原接口 wx.request 改为新接wx.cloud.callContainer);对于后端来说,对于已经容器化的应用无需改造,因为云托管兼容Knative生态。对于未容器化的应用,只需要增加Dockerfile,就可以实现把传统应用变成容器化的应用。云托管提供了各种模板,帮助用户进行快速改造。
最后,张斯静老师通过腾讯游戏、直享直播、蒙牛创造营、微信支付等案例,进一步阐述了云开发、云托管平台的强大实力。
ES在腾讯直播业务中的应用及成本优化
用户搜索和日志管理是数字媒体重要的服务。Elasticsearch 是一种流行的开源搜索和分析引擎,适用于日志分析、实时应用程序监控、点击流分析等使用案例。一款优秀的Elasticsearch Service可以帮助用户快速部署、轻松管理、按需扩展集群,简化复杂运维操作,快速构建日志分析、异常监控、网站搜索等各类业务。
众所周知,无论是直播还是在线会议,经常会出现网络问题,导致发生丢包、网络延迟等现象,同时CPU占有率也会增加,而直播问题的出现就会遭到客户的投诉,因此,腾讯的直播业务需要一套直播质量分析系统来帮助客户快速定位问题所在。
腾讯云专家工程师张彬介绍说,过去,腾讯的直播业务没有采用ElasticSearch架构,是基于自研的数据存储引擎开发的数据存储和搜索功能,包括APP质量数据上报后,通过上报接口机,将数据传入Kafka中,通过Kafka接入到自研lucene数据存储引擎,而后进行数据查询,通过多维分析的角度来快速定位问题。
但是,这套系统在疫情期间流量暴涨时期承担了众多压力,遇到了诸多问题,例如高吞吐的情况下难以保证可用性;写入慢,数据堆积,导致数据同步延迟高,平均查询延迟达不到要求;系统扩展性差,需要大量人工完成运维工作;易用性不高,无法实现快速切换,自运维能力不强。
为了帮助腾讯直播业务解决以上难题,腾讯云帮助其切换到腾讯云ElasticSearch架构。但是,云直播的监控系统数量较大,单集群平均写入速度1000w/s,业务至少保留近半年数据可供查询,按照业务需求计算后需要大约1500台物理机,远远超出业务成本预算。如何在满足业务需求的同时降低成本?
张彬老师介绍了一系列存储成本和计算成本优化的方案:根据数据的访问频率进行冷热分离,从而形成数据的分层;监控数据精度,根据数据精度进行预合,提高计算速度;读时建模,依托Schema on Read功能对于偏分析及数据结构不固定的场景,只存储源数据,读时建立动态字段;通过优化源数据压缩算法,在性能和压缩率中找到平衡点;结合大数据生态,整合大数据平台的海量数据存储能力,完成不同数据需求。
在直播用户行为分析系统中,大部分需要选取多种维度做分析查询,这会导致堆内存使用率很高,磁盘使用率却比较低。因此,腾讯云打造了计算优化方案,借助堆外内存,释放堆内存。最后优化的结果是内存开销、数据管理能力、GC优势明显,性能持平略有优势。
张彬老师表示,腾讯云的直播业务在过去可能一个ID需要1500台机器来做支撑,通过存储和计算的优化,最后在云端只需要100-200台机器即可完成,大大降低了成本。
芒果TV在线业务微服务架构演进
芒果TV在经过第一代的烟囱式、第二代多烟囱式、第三代面向服务式、第四代共享服务式的服务组织架构演进过程中,遇到了各种各样的问题。因此,芒果TV渐渐明确了微服务化改造的目标:一是打造高可用、高性能、可伸缩、可扩展、安全的应用,以拆分和服务化为基础,将海量用户产生的大规模的访问流量进行分解,采用分而治之的方法。二是实现基础服务共享化,降低成本、提高效率,通过对基础服务、业务服务、基础平台、基础组件等系统改造,实现服务的多次复用,同时通过服务大面积应用降低技术成本。
在微服务改造过程中,芒果TV面临着一些难题,一是代码结构老化,封装无人维护,无法紧跟变化。针对这种困难,只有重构,而如何改又是一个新的问题。第二个难题是重复开发,同一类型的服务出现了N套服务在部署。三是配置和代码耦合,开启一个开关需要上线,配置一个变量需要上线,频繁的配置变更上线。四是服务监控不完善,调用链监控缺失,上线经常会因为各种问题产生波动抖动。五是上线扩容、资源分配等事情全靠运维,遇到突发流量就会宕机,且资源使用率不合理。六是需求多,变化快,大量人力集中在聚合请求方面。各种业务接入各种域名,业务代理混乱,流控管理缺失,降级靠更新。
据芒果TV 技术副总监潘建波介绍,为了解决这些难题,芒果TV的微服务架构采用了如下的分层。
芒果TV的微服务网关有几个核心功能:API生命周期管理、便捷调试工具、版本管理、流量控制、签名密钥、API的编排与聚合,协议转换。
芒果TV的微服务框架与治理采用的是Dubbo服务,其底层服务是容器化的部署方案。
潘建波老师还详细介绍了芒果TV微服务应用整体架构
关于微服务化,潘建波老师表达了自己的想法:不能为了微服务而微服务,不要在没有DevOps或云服务的情况下微服务化,不要为了拆分服务而微服务,也不要将微服务转变为SOA。
开发者说
最后,作为此次长沙站活动的一个特色,在“Techo Ted 开发者说”环节,湖南长城科技有限公司架构师聂芳华,分享了自己在开发实践中的心得。在他看来,作为流媒体服务器,腾讯云服务器带来了极低的延迟。作为远程办公电脑和测试服务器,则为个人带来了极大的便利。
至此,腾讯云Techo Hub技术巡回活动已经走过了三站,受到了来自深圳、西安、长沙的广大开发者们的好评。接下来,活动还将走进武汉、北京、成都、杭州、上海,为更多的开发者带来学习、交流的机会!