蜻蜓FM电台应用现代化技术革新,引领行业新篇章
来源:《确定性运维2.0案例集第三期》
一、业务背景
音视频行业凭借其庞大的市场规模、丰富的产业链结构、多元化的发展趋势以及地域分布密集等特点,正成为互联网领域的重要组成部分,具有广阔的发展前景和潜力。但随着业务的快速发展,音视频行业技术债务在逐年积增,这成为制约产业发展的巨大挑战。初期为迅速上线多采用简易架构,未顾及大规模并发与高画质传输等需求,业务扩张后系统扩展性短板明显。技术迭代频繁,技术滞后与兼容性难题将加剧技术债。海量直播数据涌现,早期数据架构难以负荷,致使处理低效、成本高昂,数据安全隐私亦受威胁。基础设施扩增使运维复杂,人工运维成本高昂,缺乏自动化手段致效率低下、故障恢复迟缓。业务多元化后,不同场景技术要求各异,技术架构频繁调适,技术债持续累积。
二、业务现状
蜻蜓FM电台是国内首家网络音频应用,坚持以「听得见的,美好生活」为口号 ,为用户和内容生产者共建生态平台,汇聚广播电台、版权内容等优质音频IP。蜻蜓FM电台总用户规模突破亿,生态流量月活跃用户量上亿,日活跃用户已达千万级,内容覆盖文化、财经、科技、音乐、有声书等多种类型。 随着平台业务形式多样化、用户量快速增加,当前技术架构与研发模式已无法匹配现有业务快速增长,亟需升级。当前蜻蜓FM电台主要面临的挑战有:
- 应用扩展能力薄弱:应用路由基于虚拟机单元调度,新增加虚拟机,需要重新调度已有的应用,扩展能力薄弱。
- 单电台问题定位速度待提升:电台集群规模庞大,各虚拟机承载多个电台,故障发生时,需先确定问题电台所在虚拟机,再进行骤减性排查,故障定位缓慢,切易造成关联性影响。
- 版本更新时间长需缩短:缺少持续部署能力,版本迭代方式、能力、工具待升级。
- 资源利用待优化:虚拟机直接调用差异导致主机资源分配不合理。
三、方案实践
面对当前业务挑战,蜻蜓FM电台将重点聚焦在业务创新上,通过华为云应用现代化服务和ServiceStage,CCE,LTS,AOM等产品来完成架构升级。
整体方案思路是将应用迁移至ServiceStage上,由ServiceStage来管理运行环境与应用生命周期,具体实践包括:容器化改造,使用云上托管的应用运行环境,CI/CD自动化部署,弹性伸缩,统一日志采集与分析与监控告警等。
1、架构改造
容器化改造:10+个系统容器化改造,容器化之后可以以更小的单元调度资源,同时也是伸缩的基础。优化通信方式:由固定IP形式改成服务发现方式。
无状态改造:将原先电台的创建不再依赖固件的虚机。
改造前:
Transcode、 SRS节点IP列表需要手工维护供业务使用
1. Transcode,SRS只能通过增加配置的方式容纳更多电台,横向扩展复杂且容易影响业务
2. SRS直播流地址需要动态获得,维护成本高
改造后:
1. 电台分配不再依赖固定节点,直播流不再依赖SRS固定IP,去除了组件间通过IP硬通信
2. 运维简单高效,监控齐全,有效提升部署效率。
3. 合理利用资源,根据需求快速的扩展和缩减资源
2. 使用云上托管的运行环境
ServiceStage提供托管的运行环境,在环境内为应用提供容器运行时(集成CCE)、弹性伸缩、应用路由等能力,电台应用的容器镜像运行在环境中,可以灵活扩展,电台之间不会互相影响。ServiceStage支持计算、网络以及多种平台服务的纳管,通过屏蔽底层技术细节,提供更加简洁优化的交互界面,降低使用难度,提升开发运维效率。
3. CI/CD自动化部署
ServiceStage内置持续部署能力,蜻蜓FM电台提供代码,即可发布到测试、生产环境,免去自行搭建Jenkins、管理基础镜像等工作。同时ServiceStage支持常见技术栈源码到镜像的自动构建,用户不需要编写Dockfile,进一步降低上手难度,更快地实现容器化改造。
4. 弹性伸缩
蜻蜓FM电台的CPU使用率,根据连接到电台的用户数量不同、CPU消耗量不同,由于不同电台同时在线的人数不确定,因此采用了只配置电台最大CPU限制、且允许电台之间抢占CPU的调度机制,当超过了最大CPU限制时则扩容出新的实例,通过这种伸缩机制,使资源利用率提升20%。
5. 统一日志采集与分析与监控告警
ServiceStage在部署应用时,自动将应用日志、指标对接到华为云的LTS与AOM服务,可以很便捷的查看单个电台的日志,同时对日志做结构化分析,提取业务指标,以实时观测业务运行状态。和AOM、LTS相比,通过ServiceStage的组件详情查看对应的监控详情和日志,更加符合开发者的使用习惯,线上问题排查效率更高。
6. 技术升级:提升性能,加固系统
经过前期的调研发现原先电台业务技术栈、框架以及第三方依赖从性能和安全性等方面都已经落后,采取了如下措施提升系统的性能和安全性:
- 升级SDK,将运行时SDK升级到最适合版本,提高安全性;
- 升级核心第三方转码组件FFMPEG,提升转码的性能;
- 升级了开源直播服务组件SRS和ICECast,并基于最新的组件制作了镜像;
- 通过重构业务废弃Ruby技术栈,减少后续维护与学习的成本。
四、 业务提升
电台作为核心业务,通过携手华为云完成业务容器化设计和架构优化,并将应用托管到ServiceStage之上,实现应用现代化,降低成本的同时提高研发和运维效率,以在激烈的市场竞争中赢得先机。主要业务提升如下:
1. 扩展能力增强
电台分配不再依赖固定虚拟机,去除组件间通过IP硬通信,服务无状态改造;
强电台系统扩展性,可无缝扩展电台数量,资源弹性伸缩不影响业务。
2. 运维与部署效率提升
自动接入AOM,监控简单高效,问题定位效率提升50%;
通过使用ServiceStage提升服务部署效率;
通过LTS控制台检索快速定位问题,运维效率提升100%;
3. 成本优化
通过容器化设计资源共享提升资源利用率,平台可以根据业务需求也变化来快速的扩展和缩减资源,平台成本降低20%。
五、案例总结
蜻蜓FM电台在业务迅速扩张的过程中,面临自身业务增长带来的技术架构和研发模式不匹配等挑战,为应对这些挑战,我们选择与华为云携手,通过应用现代化专业服务进行转型提升,结合容器化设计与改造,架构优化等措施,增强扩展能力,提升运维与部署效率,优化成本,不仅解决了现有的技术挑战,还为未来的业务发展奠定了坚实的基础。
- 点赞
- 收藏
- 关注作者
评论(0)