在数字时代,内容分发网络(CDN)面临着新的挑战。传统 CDN 架构难以满足低时延、高并发的需求,边缘计算的兴起为 CDN 的发展带来了新的机遇。天翼云结合边缘计算与 CDN,通过 KubeEdge 实现了 CDN 的重构,提升了内容分发的效率和质量。
天翼云 CDN 的业务背景是电信以 “2+4+31+X” 的资源布局加速云网融合。“X” 是接入层面,把内容和存储放到离用户最近的地方,实现网随云动、入云便捷、云间畅达,满足用户按需选择和低时延需求。天翼云 CDN 起步较晚,但也恰逢云原生理念大行其道。因此,天翼云选择了通过容器与 K8s 编排技术构建 CDN PaaS 平台,但是 CDN 边缘服务尚未完成云原生改造。
在 CDN 边缘节点管理方面,天翼云面临着如何纳管大规模分布在边缘的 CDN 节点、如何对 CDN 边缘服务进行可靠的部署和升级、如何构建统一、可扩展资源调度平台等问题。为了解决这些问题,天翼云采用了基于 KubeEdge 的边缘节点管理方案。
CDN 物理节点架构中,CDN 提供的缓存加速服务,解决最后一公里加速问题。为了满足就近接入和快速响应,大部分 CDN 节点需要部署到近用户侧,通过 CDN 全局流量调度系统将用户访问接入到就近节点。通常 CDN 节点具有呈离散分布的特点,大部分以各地区域 IDC 和地市级别 IDC 机房资源为主,每个边缘机房根据出口带宽和服务器资源规划,搭建多个 CDN 服务集群。
天翼云采用了两种方式接入 CDN 边缘节点:分集群部署 K8s 或 K3s,以及通过 KubeEdge 方式接入。通过 KubeEdge 方式接入,可以收敛边缘节点连接,接入统一的 K8S 集群,并且提供云边协同,边缘自治等能力,还保留了大部分 K8s 的原生能力。
在基于 KubeEdge 边缘节点纳管方案中,天翼云在各区域中心及数据中心建若干个 K8s 集群,K8s 集群下面是边缘按就近规划的接入到区域的集群。为了防止单点接入,以及单 K8s 集群 CloudCore 负荷过大的问题,在各大区建设 K8s 集群,用于边缘节点的接入和应用编排管理。
然而,在 CloudCore 多副本部署过程中,出现了连接不均衡问题。Hub 到 Upstream 最终提交到 ApiServer 的示意图显示,中间 Upstream 模块有一部分的分发是用单携程的方式来运行,中间 Upstream 模块因为只有单携程,会导致消息提交过慢,边缘节点的一些 Node 无法及时提交给 ApiServer,最终引起部署方面的一些异常。
为了解决这个问题,天翼云提出了 CloudCore 多副本均衡优化方案。CloudCore 每个实例在启动后各自通过 ConfigMap 的方式上报实时的连接数等信息;CloudCore 结合本地实例与其他实例的连接数,计算每个机器的期望连接数;计算本地连接数与期望连接数的相差比例,相差比例大于最大可容忍连接数差,进入连接待释放阶段,并进入一个 30s 观察周期。
在边缘应用服务部署方面,CDN 加速服务整体流程主要分为两大核心系统:调度系统和缓存系统。调度系统会实时采集全网的 CDN 链路情况,实时的节点的情况,以及节点的带宽成本的情况,从而决策出最优调度的覆盖数据,将这个数据推给 Local Dns 或 302 或 HDS 的一个的调度器。Local Dns 拿到最优数据后,来进行 Dns 的解析响应,用户端通过解析响应可就近接入到边缘集群,边缘集群因为涉及到缓存,有可能涉及到 miss,如果 miss 后,它会回到上一层的缓存,一般会有两层或者三层的中转的缓存,最终回到原状。如果中转的缓存也没有,数据会再回到云站,这是 CDN 服务的整体流程。
在缓存系统中,一般不同产品的缓存会使用不同的服务,比如面向直播的流媒体的加速服务和一些静态的加速会有一些区别。CDN 缓存服务具有资源独占、大规模高服用、高可用等特点。
基于这些特点,天翼云在 CDN 部署中,要解决可控的节点容器升级、升级验证等问题。升级部署方案包括分批升级与组内升级并发控制、细粒度版本设置、优雅升级、升级校验、编排安全防护等。
在基于 KubeEdge CDN 边缘容器容灾与迁移方面,迁移步骤包括切换接入 DNS、重启 CloudCore 断边 Hub 连接等。这种方案具有成本低、流程简单、可控、服务安全性高等优点。
天翼云 CDN 的容器化与微服务架构转型也取得了显著成效。通过将 CDN 服务拆分为多个的微服务,可以实现服务的解耦、灵活部署和按需扩展,从而提高系统的可维护性和可扩展性。天翼云 CDN 采用 Docker 等容器技术,将 CDN 服务组件封装为的容器镜像,实现服务的轻量级化和标准化。通过容器编排工具(如 Kubernetes)管理容器的生命周期,包括容器的创建、调度、升级和销毁等,确保服务的稳定运行和高效调度。
在容器化基础设施的基础上,天翼云 CDN 将各个服务组件(如缓存节点、调度中心、监控系统等)部署为的容器实例,实现服务的解耦和分布式部署。通过容器间的网络通信机制,实现服务间的互操作和协同工作,提高系统的灵活性和可扩展性。
天翼云 CDN 还引入了容器化运维管理工具,如 Prometheus、Grafana 等,对容器化服务进行实时监控、日志收集和分析。通过监控数据的可视化展示,及时发现并解决潜在问题,提高系统的稳定性和可靠性。同时,利用 CI/CD(持续集成 / 持续部署)流程,实现服务的快速迭代和部署,提升运维效率。
天翼云 CDN 云原生落地实践案例荣获 2021 年云原生优秀案例奖。数据显示,天翼云 CDN 云原生的落地实践能够有效将 CDN 研发效能提升 56%,CPU 利用率提升 42%,运维自动化效率提升 52%,单次部署提升 60%,单次业务升级效率提升 40% 到 45%,镜像分发效率提高 57 倍,平台运维投入只需 2 到 3 人。
天翼云通过 KubeEdge 重构 CDN,实现了边缘节点的高效管理、服务的可靠部署和升级,以及容灾与迁移的低成本和高安全性。同时,容器化与微服务架构转型提升了系统的可维护性和可扩展性,为用户提供了更优质的内容分发服务。未来,天翼云将继续探索边缘计算与 CDN 的结合,不断提升服务质量和用户体验。