亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践

本文主要是介绍亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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推理/云游戏场景构建一键化部署解决方案。

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

图片

这篇关于亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090268

相关文章

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Springboot整合Redis主从实践

《Springboot整合Redis主从实践》:本文主要介绍Springboot整合Redis主从的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言原配置现配置测试LettuceConnectionFactory.setShareNativeConnect

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

java中Optional的核心用法和最佳实践

《java中Optional的核心用法和最佳实践》Java8中Optional用于处理可能为null的值,减少空指针异常,:本文主要介绍java中Optional核心用法和最佳实践的相关资料,文中... 目录前言1. 创建 Optional 对象1.1 常规创建方式2. 访问 Optional 中的值2.1

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技