2024年6月21日-22日,51CTO“WOT全球技术创新大会2024”在北京举办。火山引擎边缘计算架构师李志明受邀参与,以“边缘容器技术在泛CDN场景的应用和实践”为主题,与多位行业资深专家,共同探讨泛CDN行业技术架构以及云原生与边缘计算的发展和展望。

火山引擎边缘计算架构师李志明表示:为更好地解决传统泛CDN类业务运行中的问题,火山引擎边缘容器团队参考行业做法,结合实践经验,打造火山引擎边缘容器泛CDN场景技术解决方案,基于边缘容器实例产品,实现资源池统一、多业务混部,最终实现了系统稳定性增强、交付效率提升、方案标准化、多业务全隔离的效果,助力业务提升资源利用率,优化业务成本,实现高效、平稳运行。

泛CDN业务场景面临的挑战

随着互联网用户需求的演进、技术的快速发展以及环境的复杂变化,传统泛CDN类业务在实际运行过程中,面临着不同场景挑战:

  • 稳定性:传统CDN厂商往往采用一套CDN系统服务多种场景或业务的形态,一旦出现故障,会影响所有业务。

  • 交付效率:一套业务系统服务所有场景和客户类型,会导致产品功能交付周期长,现网稳定性问题修复周期长。

  • 异构部署:出于成本考虑,CDN厂商会部署非标准的、小型化设备,这会导致多种异构部署架构,维护成本变高。

  • 业务耦合:传统CDN厂商会将CDN、DCDN等泛CDN类业务混合部署在一台物理机上,会对业务稳定性带来影响。

图片

针对稳定性、交付效率的问题,行业内基本采用业务拆分隔离的解决方案,比如点播类、加速类、图片类搭建独立的物理集群,但这种解决方案成本高昂且无法复制使用。同时,面对异构部署和业务耦合问题,行业内采用容器化解决方案,通过容器打造标准化CDN部署环境和资源隔离,但普通的容器方案会导致内核争抢,影响业务。

火山引擎基于边缘容器实例场景化解决方案

为更好地解决上述问题,火山引擎边缘计算团队结合内部CDN、DCDN容器化实践,沉淀了面向泛CDN场景的创新容器技术解决方案,以下从运维、性能、资源管理、稳定性多个维度分享详细落地实践。

如何兼容物理机的运维方案?

传统CDN业务倾向于兼容物理机的运维模式,监控、故障恢复、发布等功能都基于物理机的模式进行建设,如果全部进行云原生化改造、系统改造,工作量非常大,也会带来稳定性问题。

在改造过程中,业务需要兼容以下能力,包括对ssh的远程登入、systemctl的组件部署、协议栈模块的部署方案和物理机内核,同时还需要对文件系统盘可配置、服务发现、K8s接口等能力的支持。

运维模式兼容之富容器方案

火山引擎边缘容器团队通过定制富容器镜像、定制专用虚拟化内核,提供服务发现能力、边缘托管K8s+边缘容器解决方案等方式解决传统泛CDN业务面临的一系列问题。

图片

一键化部署之网络编排能力

在面对业务提出减少网络运维复杂度需求时,火山引擎边缘容器团队通过提供网络编排产品化解决方案,来解决上云带来的运维复杂度增加问题:默认支持自定义VPC编排、Nat编排、提供具备按照集群灰度部署的LB4编排产品能力。

如何提供接近物理机转发性能?

泛CDN类业务对性能要求非常高,比如点播CDN业务,要求全虚拟化容器环境之后,vCPU性能能够达到接近物理机的CPU转发性能,同时支持大带宽的转发,在网卡带宽吞吐层面能够支持单实例跑满网卡能力。

在性能和吞吐层面,业务有明确需求:

  • 高性能:单核vCPU能力接近物理机(<5%)

  • 高吞吐:支持单实例打满网卡能力

高性能容器实例

火山引擎边缘容器团队基于高性能虚机构建高性能容器实例、基于高性能弹性网卡实现高吞吐能力,并且专门定制高吞吐的实例规格,最终达到性能相对于物理机差2%~5%;单实例吞吐可以跑到22G/40G带宽能力的效果。

图片

高性能负载均衡

面对大带宽流量,业务希望支持容器算力类型的LB4转发、容器内部获取到用户访问EIP、大带宽转发能力等。火山引擎边缘容器团队通过提供IPTarget的负载均衡能力、EIP透传的转发模式、三角转发方案等方式帮助解决转发问题。

图片

如何管理广域覆盖的节点?

泛CDN业务的资源零碎、覆盖广,容器化过程中,管理CDN分布式资源面临着许多技术挑战。在资源层面,不仅类型复杂,包括物理机、VM、异构等多种类型;还拥有分散的地域分布,涵盖省、地级市、海外等。在网络环境层面,也面临着弱网、丢包等复杂环境。上述情况都会导致管理广域覆盖的节点难度增加。

边缘自治、异构纳管、分池规划,火山引擎边缘容器团队打造ECI分布式资源纳管底座,针对断网、异构机器、资源类型、区域、规模等不同场景,分别提供解决方案。这一方案包括:通过边缘托管K8s方案实现断网时的边缘自治;针对异构的机器复用边缘托管K8s产品能力;根据资源类型、区域、规模等进行分布式K8s纳管。

图片

如何确保迁移过程中的业务稳定性?

把传统泛CDN场景业务搬到边缘计算的容器实例底座上,会面临很多稳定性问题。如何保障传统CDN业务不出现规模性故障,出现故障之后怎么及时发现和解决,这也是一大挑战。

系统化的稳定性保障

火山引擎边缘容器团队将所有的用户监控数据、业务监控数据、事件数据统一上报到质检中心或监控中心,并采取以下保障性举措:

  1. 构建百分百覆盖现场业务的监控告警体系,包括构建了稳定性监控大盘、业务异常告警及根因分析,同时建设了7*24小时的值班体系,保障及时响应现网发现的问题。

  2. 构建风控系统和哨兵巡检系统,确保及时发现现网故障,并且具备主动熔断能力,避免规模故障。

  • 风控系统:解决规模性问题。风控系统支持人工策略和自动熔断策略,当CDN和DCDN超过两个以上的集群Pod被删除或更新的时候,系统会主动进行熔断。这时需要通过开放权限才能进行下一步操作,避免人工或系统问题带来的规模性删除、规模性更新。

  • 哨兵巡检系统:支持主动发现用户容器,比如文件系统、内核、网络是否存在问题,如果出现问题,会及时触发告警,做到分钟级发现问题的能力。

故障发生后,火山引擎边缘容器团队提供两种工具确保快速恢复。

  • 快照恢复流工具系统:定时快照用户在线信息,包括算力、LB、部署集群相关的信息备份。当现网大规模容器被销毁或LB被异常更新的时候,可以根据历史快照,快速恢复用户算力和LB。

  • 回收站:当用户算力被删除的时候,为了避免IP被其他业务占用,支持通过回收站对历史拿到的资源信息进行快速恢复,IP资源不会被其他业务占用。

图片

边缘容器技术解决方案实践效果

通过火山引擎边缘容器技术解决方案,最终实现了基于容器构建多套CDN/DCDN系统,故障爆炸面缩减到1/N,同时在交付上实现了,部分场景从月发布优化到周发布进度,摆脱客户业务封禁影响。另外也通过边缘容器应用实现了方案的标准化,并最终实现多业务之间资源、网络、内核全隔离。

未来展望

未来,火山引擎边缘容器团队将持续提高用户体验,围绕K8s生态做好内外部业务上容器实例的不同场景解决方案;同时还将不断探索新场景,围绕AI推理/云游戏场景构建一键化部署解决方案。

欢迎加入边缘云微信技术交流群

图片

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐