写点什么

作业帮的云原生历程与实践

  • 2021-08-13
  • 本文字数:2312 字

    阅读完需:约 8 分钟

作业帮的云原生历程与实践

本文源自作业帮基础架构负责人董晓聪的分享。讲述作业帮的云原生历程,并围绕云原生架构和多云架构两大解决方案进行深入延展。

云原生改造重塑技术体系

 

“之前在传统的互联网公司,大家没法接触到用户,对用户的感知更多的是一个个 UV、PV 数字,但在线教育不一样,我们通过直播等形式面对的是一个个学生,每一次稳定性的事故都可能会影响他们的学业,所以作业帮对稳定性的要求只能更高。”据董晓聪介绍,作业帮在稳定性层面,主要面对以下三大挑战:

 

  • 当出现单机、单机群、单云故障的时候,架构能否很好的应对这些冲击?

  • 当代码变更导致业务中断的时候,能不能快速止损?

  • 除了稳定性外,如何控制成本以及提升效率?

 

作业帮选择通过云原生来解决上述问题。用基础设施接管业务当中大量非功能的逻辑,以此来实现弹性、可观测性、韧性、自动化、可持续等一些相关特性,通过云原生的架构解决了部署层面的问题,然后在此之上实现了一套多云间自由迁移的能力。

 

“即使从今天来看作业帮当时做的这个决定,选择云原生架构,也是很有魄力的,因为它毕竟是一个技术体系重塑。”董晓聪表示,截至目前,作业帮已经完成了 70%左右业务的云原生改造,处于业内领先水平。同时作业帮在弹性扩缩、Serverless、在离线混部等方面都有广泛的应用,在 CPU 调度、GPU 调度、多云管控等方面也有创新型专利产出,解决了开源社区的诸多问题。 

 

在 CPU 调度方面,2020 年上半年,作业帮在完成了一块核心业务的容器化之后,突然发现运维成本增加了。原来在虚机模式下,运维在晚高峰的时候,只需要去做一些稳定性的巡检,运维动作并不多。但容器化后,在晚高峰下需要不断地对一些资源负载比较高的进行封锁,然后把上面的一些比较重的 Pod 进行驱逐,经分析Kubernetes的原生调度器还是以 request 进行调度,会存在一些问题。

 

互联网业务都会有一个明显的波峰波谷,在线教育的波峰波谷会更加剧烈,可能会有两个数量级的差异。当研发在波谷的时候进行一次发布,这时候就会触发容器的一次重新调度,比如当服务有几十个 Pod,可能会有十多个 Pod 调度到一台机器,因为这时候的机器的使用率很低,服务怎么调度其实都可以。

 

但是到了晚高峰的时候,每一个 Pod 资源的使用率就上来了,CPU 使用高了,它的吞吐也高了,这十个 Pod 都在同一个机器上,这台机器就会出现一些资源的瓶颈。原生的调度器只考虑了一些简单的指标,同时也没有考虑未来的变化。基于此,作业帮做了自定义的调度器,对晚高峰进行了预测,将 CPU、内存、各种 IO 等指标都作为因子,同时也会定期的把历史数据进行大数据回归更新。

 

GPU 是一个相对比较贵的资源,通过调研一些方案并和云厂商进行沟通,了解到目前主要推荐的方案是 GPU 虚拟化,但是这会至少带来 15%的性能损耗,这个是没法接受的。大多数的 GPU 服务使用的各种资源相对比较固定。鉴于此,作业帮基于算力和显存去进行了一些策略的调度,也就是比较经典的背包问题,同时夜间也会进行一下预测再重新调度,如果中间出现一些故障,也会执行转移相关的策略。

 

当 Web 业务完成容器化改造之后,团队把一些定时任务迁移到容器平台。这时候又出现了新的问题,很多任务会涉及到密集的计算,容器本身其实并不是一个隔离的机制,还是在做 CPU 时间片的分配。这些计算密集的任务多多少少还是会对 Web 任务造成一定的影响。同时它也会占用主机的 IP 资源,node 上的 IP 资源是有限的,定时任务调度上来之后就会分配 IP,任务销毁时 IP 资源也不会立刻销毁。如果频繁地把定时任务的 Pod 调度到主机群的节点上,就会导致主机群的 Web 服务没有足够的 IP 资源。此外,大规模的创建跟回收定时任务,也会触发一些内核的问题,比如有些定时任务的内存使用比较大,大规模回收会导致陷入内核态,hang 住的时间比较长。

 

这方面作业帮做了一些改造:建立了三个池子,Serverless、任务集群、主机群,优先会把定时任务去调度到 Serverless 上,如果调入失败的话,再依次到任务集群、主集群,Serverless 并不是一种完全可靠的计算模式,而是引入了一种资源预占的方式,比较类似于金融领域为保证事务的两阶段提交,预先去申请相关的资源,当完成预占之后,再把真正的把任务调度过去。

多云架构实现秒级别自动切换

 

作业帮解决多云架构主要面临两大挑战。首先在云间互通的专线选型上,作业帮没有选择裸纤的方案,而选择了供应商的组网方案。董晓聪表示,选择组网方案,一方面因为有一层供应商的保护能力,另一方面是组网有一定弹性扩缩的能力。而在此之外,公司自身也做了双链路。每条链路选择不同的供应商,从不同地域进行接入。在这两条链路上,通过BGP+ECMP 实现了链路的负载均衡,以及当单条线路出现故障的时候,可以实现秒级别的自动切换。

 

“多云还会面临着一个很大的挑战,就是计算资源的管理。”董晓聪说,单个云下就有十几种、几十种机型,多云会直接导致 double、trible 的工作量。作业帮对一些场景进行了建模,标准的负载型机器、专门的大内存、大存储机型,然后再结合网络的安全域,制定具体的业务套餐。

 

“完成了上面的网络、计算的问题之后,作业帮构建出自己的多云架构”。董晓聪说,用户通过 DNS/DoH 分流,落到不同的机房。常态下的业务应用之间的请求是单云闭环,不会去跨云通信。当从机房或者专线出现故障的时候,可以通过 DNS/DoH 把流量切到主机房上。当主机房出现故障的时候,还是同样的流量调度,除此之外,还要将从机房的数据存储,DB、Redis 等进行提主,以此来实现了多云的稳定。

 

“完成云原生、多云改造之后,稳定性从之前的 99.95%提升到了 99.99%,机器故障时间的影响也从分钟级别缩短到秒级。部署的质量也得到大幅度提升。”董晓聪透露,接下来,作业帮的发力重点会在实时音视频的云原生改造,推进无边界云计算,促成云边端应用一体协调。

2021-08-13 15:355565

评论 3 条评论

发布
用户头像
 double、trible 的工作量
2021-09-13 10:42
回复
用户头像
测试

d 资源的使用率就上来了,CP

2021-08-24 17:14
回复
用户头像
测试

用户的感知更多的是一

2021-08-24 17:13
回复
没有更多了
发现更多内容

Dynamic Wallpaper Mac(视频动态壁纸) v14.3免激活

真大的脸盆

Mac Mac 软件 视频动态壁纸 高清动态壁纸

浅析AIGC for MMKG

华为云开发者联盟

人工智能 华为云 AIGC 华为云开发者联盟 企业号 5 月 PK 榜

火山引擎DataLeap数据调度实例的 DAG 优化方案 (二):功能设计

字节跳动数据平台

大数据平台 DAG DataLeap

EhViewer软件2023最新白色版中文语言

ehviewer

EhViewer

JMeter笔记6 | JMeter录制(配置代理)

测试 Jmeter 性能测试 自动化测试 接口测试

热技术冷思考:AIGC为SaaS带来的不能只有盲目自信

ToB行业头条

FEELM在英国发布全新升级一次性解决方案,思摩尔打造增长新引擎

科技热闻

TOB行业头条专访伙伴云CEO戴志康:GPT带来的AIGC热潮,改造了低代码?

联营汇聚

消息推送平台有没有保证数据不丢?

做梦都在改BUG

硬科技,创未来!第十五届深创赛福田预选赛-华秋第九届硬创大赛正式启幕

华秋电子

大央企的“中央厨房”,泰裤辣!

用友BIP

数智化底座

AIGC背后的技术分析 | 知识图谱

TiAmo

自然语言处理 机器学习 知识图谱 AIGC

央国企数字化转型 6 大挑战如何应对?中国信通院 IOMM 方法论提 6 点参考对策

信通院IOMM数字化转型团队

数字化转型 IOMM 央国企数字化转型

赋能企业数智转型新动力,迈向票据等分化新时代

用友BIP

即时通讯技术文集(第15期):IM跨平台和社交软件红包技术 [共19篇]

JackJiang

网络编程 即时通信 即时通讯IM

网易云商·七鱼智能客服自适应 ProtoStuff 数据库缓存实践

网易智企

Java 数据库 缓存

共享电单车如何投放运营?流程介绍!

共享电单车厂家

共享电动车厂家 本铯智能电动车厂家 共享电动车投放 共享电单车运营

元宇宙链游系统软件开发

Congge420

海量主机自动化运维软件用哪款好?具体功能有哪些?

行云管家

主机 云主机 自动化运维

数据智能加持下,中小微企业告别“融资难”

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

刷Github时发现了一本阿里大神的算法笔记!标星70.5K

做梦都在改BUG

Java 数据结构 算法 LeetCode

住宅代理的未来:挑战、趋势和机遇

摘星星的猫

IPv6定义以及优势说明-行云管家

行云管家

网络 ipv6

打造公用事业行业数智化标杆!泉州水务集团财务共享系统建设项目启动

用友BIP

财务共享

在Mac电脑上运行 PC 游戏

互联网搬砖工作者

LP流动性质押挖矿系统软件开发

Congge420

生态伙伴 | 硬创大赛新起航!携手华强科创广场,助力硬科技创业者

华秋电子

第五届金蝶云・苍穹追光者开发大赛报名正式启动,百万奖金等你拿

金蝶云·苍穹

低代码 低代码平台 开发者大赛 金蝶 金蝶云苍穹

Unsafe Unlink:unlink利用

郑州埃文科技

漏洞

机器学习服务语音合成,解锁智能养娃新趋势

HarmonyOS SDK

HMS Core

基于 KONOS 编写一个部门级的前端框架

鲸品堂

前端 前端框架 企业号 5 月 PK 榜 konos

作业帮的云原生历程与实践_云原生_作业帮直播课_InfoQ精选文章