嘉宾 | 董晓聪
【资料图】
出品 | CSDN云原生
2022年9月1日,在中国信通院、腾讯云、FinOps产业标准工作组联合发起的《原动力x云原生正发声 降本增效大讲堂》系列直播活动第7讲上,作业帮基础架构负责人董晓聪分享了作业帮的云原生降本增效实践。本文整理自董晓聪的分享。
作业帮的技术现状可以归纳为两点,分别是规模化和复杂化。
规模化:数千个应用服务,对应数万个服务实例,运行在数十万计算核心之上;
复杂化:技术栈极为丰富,涵盖多种主流语言。
作业帮于2020年初开始走一条云原生的道路,来解决发展过程中所遇到的稳定性、成本、效率及安全方面的问题。通过云原生的改造,用基础设施接管业务当中大量的非功能逻辑,以此实现弹性、可观测性、韧性、自动化及可持续性。
为什么要进行降本增效?
随着互联网红利的消退,企业希望能够实现成本效益最大化;
资源浪费现象普遍存在,节省不必要的浪费;
从技术人员的角度来看,期望写出更优质、更高性能的代码。
在降本增效的过程中,我们需要明确一点:降本但不能降质,在降低成本的同时,稳定性、效率、安全等均不能为此打折扣。
在多种限制条件存在的情况下,该如何开展降本增效的工作呢?
应用层首先要做的是提升性能,即提升单位资源能够支撑的业务并发量。对于作业帮来说,多元的技术栈给应用层的效能提升带来了挑战。
资源层降本增效的重点在于计算层面的优化,存在两大挑战:
寻找更优机型,提升单位成本的算力;
拥有合适的机型后,实现业务平滑无感地切换。
资源调度层有着巨大的优化空间,同样也面临诸多挑战:
在线资源负载不高,对于高并发业务,为了应对频繁的流量突增,需保证一定的Buffer,同时低流量业务通常长尾,进一步拉低了在线资源的利用率;
资源空间不足,在线资源利用率一般在30%,而大数据通常100%负载;
资源时间不均,互联网业务资源的使用存在明显的波峰、波谷。
应用技术栈改造
起初,作业帮采用PHP为服务端的主要开发语言,并使用ODP框架,能够有效地支撑新业务的快速构建及发展迭代。但随着业务的发展,以ODP为代表的PHP服务端技术栈遇到了诸多问题:
性能瓶颈,PHP缺乏线程与协程的支持,在单位的并发下,资源使用率、业务成本高;
欠缺微服务支撑,ODP框架下,服务之间可以使用RPC进行调用,也支持混部后进行本地调用,服务之间边界模糊、权责不清等问题开始显现;
云原生适配不足,云原生带来诸多技术红利,如容器化、服务治理、DevOps等,但PHP适配性较低,无法与其结合。
于是我们选择使用Go语言代替PHP作为服务端的主要开发语言。Go语言框架ZGIN基于GIN衍生而来,是面向Web服务的开发框架,提供了开箱即用的常见组件和功能,侧重通用性和稳定性,兼顾性能和时延。
每日快播:PyCharm 2022.2 发布了,支持最新 Python 3.11 和 PyScript 框架!
小米方向盘脱手专利公开 能够为辅助驾驶系统提供了准确的信息
186万Panamera插混版当街起火烧成壳 保时捷客服:为偶发情况
吉利几何全新车型G6正式亮相 新车采用了封闭式前格栅
长城机甲龙实车正式曝光 新车将拥有7颗800万超高清摄像头
宏光MINIEV GAMEBOY限量版发布 都市追风限量版采用贯穿式前脸
电动smart性能版官图曝光 新车配有全液晶仪表盘和悬浮式中控屏
理想全新中大型SUV现身 新车采用AR-HUD抬头显和中控屏幕替代
爱马仕回应官网删除16.5万自行车:因为它现在已经售竭
小米MIX Fold 2单边仅5.4mm厚 配备满血LPDDR5+UFS3.1存储规格