当前位置: 首页 > 科技赋能

2020Techo-Park开发者大会召开,作业邦加速平台架构容器化探索

时间:2024-05-20 01:50:34 科技赋能

12月19日至20日,由腾讯主办的Techo-Park开发者大会在北京举行。

专家等全球顶尖科技领袖与数千名参会者在会议现场就云计算、大数据、人工智能等前沿科技话题进行了深入交流。

作业邦基础设施部架构总监负责人吕亚霖受邀出席本次大会容器分论坛《云原生企业IT架构必由之路》,并现场发表《作业帮容器化探索和落地实践》主题演讲,分享作业邦容器化的背景和目标、实施、效益和未来规划,深入分析容器在教育行业面临的问题、挑战和相应的高效解决方案。

云原生技术架构是有效手段,K8S及其生态是重要抓手。

随着云原生技术的成熟和普及,越来越多的金融、教育、游戏等各个领域的企业IT架构正在向向云原生架构转型。

在此背景下,作业邦在技术和实践上取得了一系列进步和成果,成为教育领域企业云原生向云转型的主要代表,为行业提供了可供借鉴的成功案例。

吕亚霖在演讲中首先分享了作业邦技术体系的现状。

他表示,作业帮自2016年成立以来,一直保持快速增长,尤其是今年,规模实现指数级增长,目前已拥有数千名用户。

业务应用、数万个应用实例、数十万个计算核心未来仍将保持增长势头。

在发展规模不断加快的同时,作业邦的复杂程度也在快速增加。

吕亚霖表示,作业帮已经从最初的拍照问题搜索工具的应用,发展成为覆盖整个教学领域的综合性教研工具,覆盖从幼儿、K12到成人教育的各个阶段。

技术栈由PHP和C++组成,已经发展成为涵盖当前所有主流语言的多语言栈。

也面临着高可用、极限性能、高并发等一系列问题。

可用性和性能要求比大多数互联网业务要求更为严格。

随着业务的快速扩展,在保证业务服务的稳定性、成本和效率的同时,控制其架构的复杂性,成为JobBang容器化的核心问题。

对此,吕亚霖指出,利用云原生技术架构和基础设施来接管业务中的大量非功能逻辑,是实现弹性、可观察性、复原力、自动化、可持续性等特性的有效手段。

K8S及其生态是重要的起点。

吕亚霖进一步阐述了JobBang的容器化水平及其背后的技术思维,“在虚拟机时代,应用程序直接运行在资源上,所以底层资源的变化上层应用程序是感知的,应用程序使用服务治理方式保证业务的高可用性、性能和可扩展性,但建立和运行这样的系统成本很高。

在容器化系统下的云原生架构中,K8S通过抽象下游资源来平滑资源差异和变化。

这样,资源对于上层服务是透明的,上层服务不涉及底层资源的细节和变化。

同时,上层应用面向服务,通过应用框架来实现规范和标准,降低接入成本。

“CPU峰值调度应该基于未来的使用情况,日志检索应该基于元数据。

吕亚霖强调,在容器化的过程中,首先要明确业务服务构建容器的原则。

一是避免出现重大问题和缺陷,二是有利于快速接入容器生态。

”容器化实现的内核主要集中在IPVS和Cgroups上。

在内核上,我们遇到了经典的ipvsreuse模式问题,以及高并发下的网络故障问题。

我们通过腾讯tlinux内核团队的协作解决了这些问题。

”吕亚霖在会上分享了容器化实现和原生K8S优化的内核。

“K8S默认调度器有很多缺点,比如峰值调度不平衡的问题。

我们先后做了平衡调度和真实调度。

经过优化,我们发现业务部署的时候,其实是平衡的,但是到了高峰的时候,又变得不平衡了。

因为大多数业务场景下CPU峰值增量不是线性的,所以我们的建议是做峰值预测调度,不是根据当前的使用情况,而是根据未来的使用情况。

”接下来,吕亚霖进一步从容器入手,详细讲解了控制服务发现和注册平面和数据平面他表示,在容器化过渡期间,虚拟机和容器将长期并行运行,因此需要解决旧虚拟机和容器之间的互操作问题。

控制面,通过一个控制组件来监控虚拟机的名称服务,将服务注册到K8S集群的服务中,监控其变化,并将变化同步到容器上,在数据端,直接容器。

通过service来访问虚拟机,虚拟机访问容器时,通过东西向入口服务来访问容器中的服务单元。

另外,Service Mesh对于作业帮等使用多种语言的公司来说优势明显。

吕亚霖指出,其优点是:一是侵入性低,几乎没有商业意识;第二,多语言支持;三是与服务意识更好融合。

资源弹性调度+离线混合部署,部分业务成本降低43%。

作为资源弹性调度的重要参考背景,JobBang容器化进程的时间周期特征非常明显。

高峰时段是非高峰时段的20倍,也就是非高峰时段的20倍。

同时,客流量上升曲线陡峭,凌晨5点前客流量较少。

另外,在冬夏高峰期或者期中、期末考试期间也会有大量的资源使用。

基于这个特点,吕亚霖和他的团队主要使用两种类型的HPA来扩展POD。

一种是定时HPA,比较适合时间点明确的业务。

另一个是autoHPA,用于紧急伸缩,防止服务容量出现问题。

同时底层资源层面有两个池。

一种是固定池,包含裸机服务,使用时间较长。

另一种是动态池,由一批按需虚拟机组成。

当资源紧张时,它通常会被关闭。

这时就会开机并加入集群,以应对意外的高峰。

此外,线下业务的容器化混合部署也成为节省成本和优化的利器。

据吕亚霖介绍,正常的线上业务存在大量的低负载期。

作业帮将离线大数据和视音频转码服务容器化,在K8S中统一调度,部署到在线K8S集群中。

这样做带来的好处是非常大的。

,而这里主要的技术就是利用了tlinux的cpu隔离策略。

从异构计算的角度来看,在GPU服务容器化方面,JobBang的主要策略是gpu-share方案,利用显存和算力进行POD调度,将算力与上游流量入口侧隔离,保证GPU服务稳定性同时最大化资源利用率。

“在我们大规模使用数千张GPU卡的场景中,比较常见的情况是卡故障。

这时候就需要进行故障转移和资源下线操作。

”吕亚霖说道。

此外,作为保障可用性的重要环节之一,在多云K8S建设方面,作业邦在多个云厂商部署独立的K8S集群,实现统一的K8S管理调度层、云内流量闭环、数据存储专线同步,源DNS/HTTPDNS减少流量。

在多项举措的共同推动下,作业邦集装箱化效益显着。

同一业务迁移前后采用HPA和离线混合部署后,成本下降43%,稳定性提升至99.%,接口响应提升10%。

这有效支撑了作业邦业务的快速迭代、秒级快速扩缩容、服务运行状态规范和统一运维环境的落实、多云环境的统一,提高服务可用性。

这也有利于云之间的自由迁移,并为单云故障制定应急计划。

通过优化资源碎片化、离线混合部署、自动扩缩容等,进一步降低整体成本。

演讲最后,在谈到容器化的未来规划和展望时,吕亚霖提出了四大方向,包括更大规模、全时离线混合部署、K8S与Serverless结合是未来趋势、中间件容器化、大数据服务容器化。