近年来,大数据、5G、AI 技术应用快速发展,助力我国教育信息化水平不断提升,并催生大量在线教育新场景、新模式、新业态,有效满足人们多样化学习需求。
作为国内用户规模领先的在线教育平台,作业帮致力于用科技手段助力教育普惠,运用前沿技术为全国中小学生提供更高效的学习方案。但与此同时,规模化、复杂化所带来的技术难题也在束缚着作业帮的发展。
2023 年 6 月 20 日,「OpenCloudOS 社区操作系统英雄汇」系列第三期专题讲座,作业帮基础架构研发团队负责人吕亚霖以《作业帮如何利用 OpenCloudOS 解决技术难题》为题开展线上主题讲座,分享作业帮在 OpenCloudOS 开源社区上的应用实践。
一、技术现状:规模化、复杂化
纵览整个教育行业版图,中小学线上教育是一个亿级别的用户市场,这无疑需要产品矩阵完善的大平台进行系统承接。作业帮成立于 2015 年,一直致力于运用人工智能(AI)、大数据等前沿技术,为 B、C 端用户提供高效、智能的学习和教育产品及解决方案。用户增长与产品丰富的相互叠加,催生了整个品牌生态的日益繁茂,作业帮逐步成为该领域用户数量领先的平台。
作业帮规模化、复杂化的技术现状
随着数据不断增加,作业帮拥有数千项业务应用、数万项业务实例以及数十万的计算核数,还使用了 C++、Java、Python 等多语言栈、多云架构,总体上呈现规模化和复杂化的特点。这在一定程度上保证了作业帮业务的正常运营,但也增加了作业帮的运营成本,运维产出比并不理想。
此外,作业帮在 kubernetes 方向上也遇到了一系列的内核性能优化和问题。例如 IPVS 模式高并发场景下,连接复用引发连接异常的问题;IPVS 模式在高配节点(核数多)下 IPVS 规则过多引发网络毛刺的问题等。
对于统一内核版本、适配交付场景硬件、优化性能等方面的需要使作业帮逐渐明确了对于操作系统的核心需求:经过海量业务验证的企业级的安全、稳定、高性能的操作系统。国产操作系统开源社区 OpenCloudOS 为作业帮提供了有效的解决方案。
二、OC8、OC9 解决方案
2021 年,OpenCloudOS 操作系统开源社区正式诞生,致力于研发国产化、自主可控的下一代云原生操作系统。为使观众能够更直观地了解 OpenCloudOS 自研产品,吕亚霖以 OC8、OC9 两个版本为例,为观众介绍了 OpenCloudOS 自研产品技术新特性。
OC8 产品技术特性及应用生态
OC8 发行版的内核基于社区 LTS 5.4 独立演进,用户态与 CentOS 兼容,在保持 CentOS 兼容性的同时,通过内核的全面优化和打磨,提供更强的服务能力和稳定性,是 CentOS 的更佳替代方案。通过业务实践与验证,OC8 具有稳定可靠、深度定制、全面优化、高性能、开源开放、生态共享等诸多优点。
OC9 产品技术特性
OC9 是 OpenCloudOS 社区成员联合研发基于 OpenCloudOS Stream23 的首个 L3 全自研版本,更加高效经济、独立开放。OC9 使用上游社区最新内核 Kernel 6.1,提供多体系架构和新硬件支持,多核性能优化,混部隔离特性增强。除了高性能、安全稳定、支持多硬件平台的特性外,OC9.0 还将为云原生、大数据、人工智能等领域的开发者和用户提供更好的基础环境和服务能力。
截至目前,OpenCloudOS 社区及衍生版本装机量累计超过 1000 万节点,覆盖了银行、保险、证券等 12 大行业,并经历了海量场景长时间的考验,很好地符合了作业帮对于操作系统的需求与期待,因此,作业帮在 OC 上开展一系列实践,使其不再受技术难题的掣肘。
三、在 OC 上的技术实践
一、统一运维:在多样化边缘场景下使用 OpenCloudOS
作业帮在中心 IDC 机房的演化历程
从 2019 年至今,作业帮经历了虚拟机到容器技术爆发的时代,并逐渐使用 TencentOS Server 和 OpenCloudOS 的不同版本来向上支持 kubernetes。到 2022 年,作业帮开始使用 OC8 向上支持 ebpf,解决服务治理的诉求。在多年的实践积累下,作业帮在多样化边缘场景下使用 OpenCloudOS 取得了不错的成效,例如多样化的硬件驱动适配、优化设备性能、集合和支持边缘 kubernetes 特性等。
二、成本收益:基于 OpenCloudOS 的在离线混部方案
在线服务与离线作业的资源利用对比
在线服务的服务时延敏感,对服务 SLA 要求极高,利用率约 20%;而离线作业的服务时延不敏感,容错率高,利用率高达 60%。因此,通过在离线混部能够有效提升资源利用率,实现降本增效。OpenCloudOS 提供了绝对抢占的离线调度器——BT调度,通过对内存动态调整和网络带宽限制,一方面实现了绝对抢占,达到完美隔离效果,另一方面能够深度定制,完成极致的调度指标。
三、效率提升:基于 OpenCloudOS 的问题定位和分析能力
EBPF 问题定位和分析
基础架构经常遇到这样的问题:某服务 QPS 百万级别,平均时延 10ms,偶发万分之一的长尾时延 100ms 导致服务异常,希望定位长尾时延的原因以及解决问题。但是该如何定位?几千个服务模块,每周反馈几十例,又该如何提升效率?
吕亚霖指出,需要一个定位和分析问题的通用方法和工具。OpenCloudOS 提供了社区 netrace、社区 BCC、自研协议流转分析等工具,通过将工具集打包到一个 ds 服务里,使操作平台化自主化、结果报告化,从而实现 kubernetes 故障分析,提供完美的解决方案。
四、结语
在此次讲座结尾,吕亚霖表示对 OpenCloudOS 开源社区的未来发展满怀期待,并希望进一步丰富 OpenCloudOS 周边生态、加大企业级产品服务集成。
作业帮依托「科技+教育」双引擎优势,未来将会继续在学习工具产品、智能硬件等领域深入布局,与 OpenCloudOS 展开深度合作,让技术于在线教育场景中真正落地。
欢迎扫描下方二维码,加入社区交流群,即可免费获取各种 OpenCloudOS 相关的技术支持,参与群内抽奖活动。