【披荆斩棘的开发者】华为云·云享专家刘振 新应用开发:左手抓技术潮流,右手抓“知己知彼”
随着5G浪潮即将席卷全球,音视频服务市场迎来井喷,音视频作为5G时代的核心应用,将会在未来成为我们生活中的主流。不仅如此,在疫情的长期反复催化下, 音视频技术也悄然成为各行各业不同场景和应用方式下的新型基础设施。
音视频:掀起技术新浪潮
艾瑞咨询在《2020年全球互联网通信云行业研究报告》中曾提到,由于新冠疫情下无接触服务盛行,直播+、在线教育、远程办公、在线医疗等需求激增,对互联网通信的短期需求将有望演变为长期趋势,预计到2023年全球互联网通信云市场规模将达到133.5亿美元。音视频服务也将作为5G时代的“水电煤”基础设施,在社交、游戏、娱乐等传统领域迎来爆发性增长。
随着音视频应用的升温,音视频技术开发迎来爆发式需求,音视频工程师等技术人才一时间炙手可热,成为深具前景的职业之一。据相关招聘平台统计,音视频工程师薪酬随工作年限的增长呈明显的直线上升趋势。
“我始终相信,随着科学技术的不断发展,在不远的将来,音视频技术将逐步成为一切事物展现自我价值的载体之一。”来自百家云的刘振讲到。刘振作为一个音视频领域的技术专家,从硕士毕业就进入中科大洋集团,负责智能云转码平台的开发工作,现就职于百家云。他表示,如果你现在还在犹豫进入哪个领域发展,音视频领域可以作为一个候选项。
踏浪前行,用亲身经历争做“弄潮儿”
在百家云工作期间,刘振主要是负责移动端Android和iOS底层直播点播SDK的开发工作。目前主导公司云平台录播和点播服务的开发工作。作为音视频领域的“参与者”,他为我们讲述了在这个浪潮中,是如何“折腾”的。
- 临时组队,开发视频会议PC客户端
由于疫情的爆发,很多公司转到线上办公,刘振所在的百家云发现了这个新机遇,成立了视频会议事业部。因为百家云原本的业务主要是面向在线教育、在线金融和双师课堂,是有一定基础的。他们想借助公司原有的直播和点播技术架构和人才积累,抢占市场份额并抓紧时间从这个赛道中冲出来。
喜欢挑战的刘振主动申请,加入了视频会议事业部,负责PC客户端的开发工作。因为视频会议系统作为一个全新产品,除了服务器端可以利用部分现有的功能外,其他所有的会议终端都是空白,包括Web网页、移动端(安卓和iOS)、PC客户端(windows和mac)。
刘振讲到,由于公司之前的PC客户端方案使用的是CEF架构,个人感觉技术有些过时,打算尝试新的客户端解决方案,通过技术调研后找到了一个新的方案——Electron。通过对比CEF和Electron两种方案的优劣,最终决定采用Electron作为视频会议跨平台的桌面端技术方案。Electron不仅具备跨平台能力,还具备内置的升级模块,最重要的是基于Node.js API接口,能够快速完成PC客户端的开发工作。
最终,刘振花了不到一个月的时间就推出了windows和mac客户端的测试版本,随后又经过一个月的产品化,正式推出了产品。后续也通过不断的调优和迭代,逐步完善了会议系统PC客户端的常用功能。
- 对象存储服务——Bag
刘振还介绍了他主导开发的项目——对象存储服务Bag。Bag服务不仅具备基础的存储能力,还具备一定的转封装和转码能力。刘振表示,Bag服务的实现方案和优化提升大概经过了三个阶段:
- 第一个阶段,上传文件保存到Bag服务本地,通过挂载一定容量的数据卷来存储上传的文件。但是,这样存在一个非常明显的问题,不支持多实例部署。
- 第二个阶段,去掉挂载的数据卷,引入了Minio存储,将Bag存储在本地的文件再上传到Minio存储中。尽管这样解决了多实例部署的问题,但还存在一个明显问题:一次上传操作,实际传了两次,就导致有两倍的时间消耗,从客户端上传到Bag一次,再从Bag上传Minio。
- 第三阶段,也是目前最合理的方案,将上传到Bag的数据分片直接转发到Minio存储中。这样就充分利用了Minio的分布式能力,通过合理的区域布点,就具备了一定了CDN分发能力。
图为Bag服务的模块划分示意图
在对象存储服务Bag应用的一个智能泊车系统开发过程中,出于数据安全的考虑,刘振团队想在原有的腾讯云应用基础上,再集成一家云厂商作为云备份。经过一番了解和调研,他们选择了华为云的对象存储OBS服务。OBS(Object Storage Service)具备稳定、安全、高效、易用的云存储服务特性,使用标准Restful API接口,可存储任意数量和形式的非结构化数据。“华为云的数据迁移速度真的非常快。”刘振表示,项目的预生产环境大概有超过500 G的智能泊车视频数据,使用华为云OBS做数据迁移,他们只花了半天的时间就完成了。
分享经验,助力他人探索音视频领域
刘振通过在传统广电巨头和音视频互联网公司工作和学习的经历,积攒了丰富的音视频直播和点播相关开发经验,对WebRTC、FFmpeg和Electron有非常深入的了解。为了更好地帮助周围的开发者,他在CSDN上推出了很多音视频相关的技术专栏,累计产出了500余篇原创作品。同时,作为华为云社区的云享专家,在社区中也分享了很多原创内容。
借助在音视频领域的摸索,加上自己多次主导开发的经验积累,刘振总结出一些开发技巧:在进行一个新的云服务或者软件系统开发时需要做到两点,一是知彼,二是知己。
- 知彼,去学习现有的技术方案和成熟的产品,借鉴前人的经验,站在巨人的肩膀上看世界。通过学习借鉴,归纳整理出不同的实现方案作为候选项。
- 知已,基于自己公司现有团队的技术储备、人员储备以及具体的业务场景,从候选项中选择出最有性价比的方案。从而在最短的时间内使用最合适的技术栈,完成特定服务和软件系统的开发工作。
- 点赞
- 收藏
- 关注作者
评论(0)