优化 20% 资源成本,新东方的 Serverless 实践之路

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
函数计算FC,每月15万CU 3个月
应用实时监控服务-用户体验监控,每月100OCU免费额度
简介: 以下内容是由新东方教育科技集团云教室直播平台技术负责人 么敬国 在云栖大会的分享。

作者:么敬国(新东方教育科技集团云教室直播平台技术负责人),灏正(阿里云 Serverless 架构师)


新东方教育科技集团定位于以学生全面成长为核心,以科技为驱动力的综合性教育集团。新东方线上教育业务的云教室系统支持了视频直播、转码、点播等新东方所有在线教育场景。随着业务量的增大,由于直播转录及视频转码任务处理平台具有明显的波峰波谷特性,自建机房较低的资源利用率成为了业务的核心痛点。为了提升计算资源利用率,进一步实现降本提效目标,在几次尝试之后,新东方踏上了 Serverless 实践之路。以下内容是由新东方教育科技集团云教室直播平台技术负责人 么敬国 在云栖大会的分享。


如何应对难以预测的业务量?


新东方除了自己的线上教育业务使用云教室平台以外,还通过美刻云直播对外开放了新东方的直播能力。云教室直播平台主要支持四种业务模式:


  • 云教室:在线直播互动课,讲究互动性。
  • 云点播:录播课。
  • 云直播:大型直播,以主播为主。
  • 智慧教室:软硬件结合的方案,提供类似于双师的教育模式。


直播+录播是新东方主推的课程交付模式。直播课程互动性强,可以实现良好的课堂互动,激发学生的学习兴趣;教师可以基于学生的课堂反馈或互动直接与学生进行互评,便于教师及时对教学环境作出微调,从而让教学过程更有针对性;通过互动和课堂答疑,可以让教学过程和效果更有保障,直播课程比较适合低幼年龄段的学生。


而面对高中及高中以上年龄段的学生,录播课更为合适,录播课特点为学习时间灵活,学生可以自主对学习内容进行检索,进行有选择性的学习,一般适用于高中和高中以上年龄段学生。录播课的优点在于可以对授课内容不断进行打磨、编辑,制作精品课程,需求量逐步加大。


最初团队采用地录制技术方案为客户端录屏,将老师的直播进行录制,方便学生反复观看,但这样的方式出错率高, CPU 占用率也较高,无法对录制 UI 布局进行灵活定制,只能是看到什么录什么,这样的方式仅能满足低幼年龄段的课程需求。


今年,新东方开始对接大学生线上教育业务,对录播课程的质量提出了更高的要求。团队开始考虑采用服务端录制的方式解决问题。服务端录制的两个核心点在于直播录制和视频标准化生产。我们的业务模式决定了我们很难准确预测业务量,因此,新东方关键的技术任务是实现计算弹性


三种选择,函数计算脱颖而出


三种选择,函数计算脱颖而出要解决服务端录制的问题,摆在团队面前的有三个可选的技术路线:


  • 直接使用 ECS 自建,该方案的优势是灵活性比较高,但问题在于计算没有弹性,虽然云厂商提供了弹性分配 ECS 资源 API ,但是自己实现整个计算弹性需要巨大的开发量,同时后续运维比较复杂,资源成本高,难以做到标准化。


  • 云录屏 SaaS 方案,这个方案的优势是具备标准化的服务,研发投入比较少,运维工作也较少,但是问题在于灵活性差,资源成本极高,难以进行进一步的性能优化。我们希望寻找一家成熟的 SaaS 厂商提供地服务以快速支持业务,但是经过试用,这些平台的成熟度和技术指标等均无法满足我们的需求。


  • 采用阿里云函数计算 FC,我们发现阿里云的函数计算产品可以完美满足计算的弹性需求,只需要关注具体需求在平台上做开发即可,研发投入小同时免运维,开发过程自主可控,灵活性高,可按需使用极大降低了使用成本,实现标准化相对容易。不过函数计算是一个比较新的技术,团队需要一段时间来熟悉。


经过反复比对,新东方团队选择使用函数计算来解决服务端录制问题。


新东方的 Serverless 实践


录播转码,函数计算小试牛刀


我们首先在录播转码场景下进行了尝试。录播转码的核心诉求是对直播流进行实时转码,保存为标准的视频格式,方便后续加工使用。


1.png


在这个场景中,我们第一次感受到了函数计算 FC 带来的弹性优势。在老师进入房间发起转码请求后,可快速启动函数实例进行转码。在上课结束后,结束转码任务,将临时音视频结果上传至云存储后即可立即释放函数实例,不会存在任何计算资源的浪费。有了在录播转码项目中应用函数计算的经验以后,我们对函数计算方案有了更大的信心。


初露锋芒,函数计算直播合流转码方案


之后,我们启动了云端录制项目。使用 Chrome 浏览器加入直播房间,对浏览器界面进行截屏录制,该方案的关键在于弹性提供浏览器实例

2.png


因此,我们利用阿里云函数计算启动 Linux 容器,在 Linux 容器运行 Chrome 浏览器实现弹性提供浏览器实例。整个的录制流程是这样的:老师进入教室以后,开始进行音视频推流以及白板操作。同时,录制平台发起录制请求,启动函数处理,开始接收教室的音视频流和白板操作,并在浏览器展现整个教室的画面,同时做截屏。课程结束后,平台发起结束录制请求,函数计算平台会优雅地终止实例。终止之前,实例会将临时结果上传至云存储,随后函数实例被销毁,不存在任何资源浪费。


开箱即用的可观测能力


我们认为,可观测能力对于函数计算平台至关重要。首先,业务高峰期需要启动大量函数实例,因此,必须要完整的 metrics、log 和 trace 才能有效对海量实例进行监控。其次,因为函数计算实例按需创建,完成任务之后被销毁,平台必须保存完整的日志,以便发现问题后开发人员进行排错。


我们曾在开发录制服务的过程中面临的问题是:启动函数实例以后,Chrome 浏览器要访问直播服务,此时网络出现问题,导致录制失败。后续我们使用阿里云 SLS 日志平台查看日志,发现 Chrome 浏览器内核对网络处理过于敏感。找出问题后,对症下药,加入了重试机制,问题得以解决。


超出预期,函数计算带来更多惊喜


在使用函数计算技术之前,我们期望它能通过百毫秒拉起上万个实例,定时预热彻底解决冷启动困难,帮助我们承载直播转码和录屏业务业务洪峰。有效应对大规模突发在线流量,按量付费,提高资源利用率,减少 20% 资源成本开支,极大程度降低运维成本,让我们可以只专注业务创新。在实际使用的过程中,我们发现函数计算不但能够中我们完美满足我们的需求,还带来了惊喜:让我们的开发人员只需掌握几个新概念、使用几个 API ,即可轻松使用平台。函数计算方案运行一段时间以来,云资源费用得到较大降低。另外,函数计算允许根据自己的业务场景制作模板,并且可供其他业务方使用,也为我们带来意外收获。


点击此处,查看新东方完整视频讲说!

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
3月前
|
运维 Serverless 测试技术
函数计算产品使用问题之支持10个并发任务需要多少资源
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
17天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
53 1
|
29天前
|
运维 监控 Serverless
利用Serverless架构优化成本和可伸缩性
【10月更文挑战第13天】Serverless架构让开发者无需管理服务器即可构建和运行应用,实现成本优化与自动扩展。本文介绍其工作原理、核心优势及实施步骤,探讨在Web应用后端、数据处理等领域的应用,并分享实战技巧。
|
1月前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
57 3
|
2月前
|
运维 Kubernetes 前端开发
拥抱Knative, 合思加速Serverless化演进实践
合思信息基于阿里云容器服务Knative, 实现Serverless化演进的最佳实践。
拥抱Knative, 合思加速Serverless化演进实践
|
2月前
|
弹性计算 关系型数据库 Serverless
告别资源瓶颈,函数计算驱动多媒体文件处理方案:https://www.aliyun.com/solution/tech-solution/fc-drive-file
本文介绍了一种基于阿里云的一键部署解决方案,利用云服务器ECS、RDS MySQL、OSS、函数计算FC及MNS等服务,实现高效的多媒体文件处理。方案通过事件驱动机制,将文件处理任务解耦,并自动弹性扩展,按需付费,简化部署流程,提高处理效率。本文还提供了详细的部署步骤与体验反馈,展示了从配置到文件处理的全过程。
|
3月前
|
存储 缓存 Serverless
函数计算产品使用问题之首次启动时间非常长,该怎么优化
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
前端开发 大数据 数据库
🔥大数据洪流下的决战:JSF 表格组件如何做到毫秒级响应?揭秘背后的性能魔法!💪
【8月更文挑战第31天】在 Web 应用中,表格组件常用于展示和操作数据,但在大数据量下性能会成瓶颈。本文介绍在 JavaServer Faces(JSF)中优化表格组件的方法,包括数据处理、分页及懒加载等技术。通过后端分页或懒加载按需加载数据,减少不必要的数据加载和优化数据库查询,并利用缓存机制减少数据库访问次数,从而提高表格组件的响应速度和整体性能。掌握这些最佳实践对开发高性能 JSF 应用至关重要。
70 0
|
3月前
|
缓存 运维 Serverless
函数计算产品使用问题之怎么优化HTTP Server的启动速度
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
152 13

相关产品

  • 函数计算