亮相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

相关文章

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

C#中的Converter的具体应用

《C#中的Converter的具体应用》C#中的Converter提供了一种灵活的类型转换机制,本文详细介绍了Converter的基本概念、使用场景,具有一定的参考价值,感兴趣的可以了解一下... 目录Converter的基本概念1. Converter委托2. 使用场景布尔型转换示例示例1:简单的字符串到

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略