Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >解读 | 基于CDN的边缘计算平台设计和思考

解读 | 基于CDN的边缘计算平台设计和思考

作者头像
CloudBest
发布于 2020-09-30 02:46:36
发布于 2020-09-30 02:46:36
2.5K0
举报
文章被收录于专栏:CloudBestCloudBest

导语

CDN的重要性不仅仅在于CDN的业务本身,更重要的是CDN的基础设施属性,CDN节点是全球分布的,随着5G的正式商用,目前来看,CDN的规模最大、算力最强,将成为布局边缘计算最佳的位置。但是边缘计算不是孤立存在,是必须跟云中心协同的。本文介绍从CDN的角度思考如何打造一个云边端协同的边缘计算平台。

CDN和边缘计算

CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

以上是来自来自百度百科的解释,简单的说CDN就是用空间换时间,空间的话就是分部在离终端用户较近的边缘节点,时间上就是终端用户直接从边缘节点直接获取资源,这样就不需要直接访问源站,从而提升用户体验。

举一个不是很恰当的类比,比如现在国内电商平台建立物流系统:在一城市会建一二个大型物流中心(源站),三四线城市会建立小型物流中心(边缘节点),像双十一这种大促,会根据大数据统计算提前在各地的小物流中心准备好商品(预热),这样用户就可以快速获取包裹(就近获取)。所以CDN可以认为是目前整个互联网的物流系统,只不过CDN分发的不是包裹,而是图片、视频、软件安装包。一般一家CDN服务商需要有成百上千个边缘节点,才可以具备比较好的服务质量。

CDN已经是一个充分验证过的成熟技术,可以不夸张地说,CDN扛住了整个互联网大部分的流量,没有CDN就没有现在繁荣的各种视频网站、直播平台和小视频APP。同时经过长期的发展,CDN在供应链体系、节点建设、网络运维都有非常成熟的经验和沉淀。

随着互联网智能终端设备数量的急剧增加,以及5G和物联网时代的到来,传统云计算中心集中存储、计算的模式已经无法满足终端设备对于时效、容量、算力的需求。将云计算的能力下沉到边缘侧、设备侧,并通过中心进行统一交付、运维、管控,将是云计算的重要发展趋势,这个就是边缘计算。

IDC预计,到2020年全球将有超过500亿的终端与设备联网,超过40%的数据要在网络边缘侧进行分析、处理与存储,这对边缘计算提供了充分的场景和想象空间。

边缘计算分层结构包括云、边、端:

云,Centralized Cloud:传统云计算的中心节点,资源丰富,计算力强,扩展性强,服务多区域,但离终端用户远。同时云中心是边缘计算的管控端,负责全网算力和数据的统一管理、调度、存储;

边,Infrastructure Edge:通常服务特定的一个区域,如市、县、区等,部署在目标服务区域10~30公里的地方,提供满足目标服务区域的计算、存储、网络服务。Infrastructure Edge边缘通常位于IDC内,拥有充足的算力和存储容量,和中心有专线或骨干网连接,如CDN节点等。Infrastructure Edge又可分为Access Edge和Aggregation Edge两层,其中Access Edge靠近Device Edge,与用户或设备端更近,Aggregation Edge聚合一个或多个Access Edge的数据,与云端进行交互。

端,Device Edge:终端设备,如手机、智能家电、各类传感器、摄像头等。

可以认为CDN是边缘计算的一种形态,并且是当前来看规模最大、算力最强的形态、也是成熟度最高的业务形态。但是CDN的业务形态也需要做技术架构升级,才能支撑更多的边缘计算场景。

边缘计算的技术形态

边缘计算技术形态也可以按照传统的逻辑划分为IaaSPaaSSaaS

IaaS:在边缘测提供虚拟机,这个跟在云中心购买ECS差不多,只不过机器是部署在边缘IDC(这里的边缘IDC其实是相对于云中心IDC),但是在网络情况和稳定性上是跟云中心不一样的,毕竟云中心有几万台机器的规模冗余,有专门的驻场人员、机房和网络维护,而边缘节点有时候是不具备这些条件的,但是在使用场景上肯定也是不一样的,比如:不建议在边缘部署对数据可靠性要求非常高的业务。

PaaS:提供虚拟机的方式对于有些用户来说,可能运维起来有点麻烦:比如机器是分部在不同地方和不同运营商的,各地的网络不大一样,机房也有网络割接的时候,管理这些虚拟机也会有不小的成本,难以快速进行业务切换调度。这样一来就需要有个边缘场景的PaaS服务,来帮助用户管理和调度边缘的资源,容器和K8S的话是一个在运维调度层面很好的解决方案。在解决运维的问题后,用户对于PaaS的需求也会上升到更加多样的能力,特别对于各种中间件的需求,EdgeKV,EdgeStore等等,比如KV需要具备全网数据同步的能力。

SaaS:CDN就是典型的SaaS服务,主要包含包含静态文件(文件、图片、视频)加速、流媒体加速、动态加速,衍生的形态还包括安全、P2P。另外视频AI也是后续一个重要的SaaS能力,比如自动驾驶、IOT场景的一个重要需求就是需要在边缘能够直接进行视频AI处理来保证延时。

可编程CDN:除了往通用计算转型,CDN的一个重要方向是往可编程CDN转型,简单的说就是通过函数计算或者脚本来控制CDN逻辑,比如Cloudfare的EdgeWorker,在边缘支持V8引擎来运行JS脚本,这种技术方案相比于容器的优势在于更加轻量级、成本更低、启动时间更快。

可以看出边缘计算并不是孤立存在的,边缘计算一定是需要跟云计算进行协同,所谓云边端协同。

一种比较形象的说法:如果把云计算比作整个计算机智能系统的大脑。那么边缘计算就是这个系统的眼睛耳朵和手脚。完全依赖云计算的计算机系统就好比每一件事都要请示司令部的军队,在需要大量和外界互动的时候会显得僵化,反应迟缓,而且一旦网络有点问题就彻底歇菜。加上边缘计算之后就好比让中低层军官也开始发挥主观能动性,能一定程度上自主做出智能判断和行动决策,同时也只需要把一部分经过筛选的信息上传到司令部。大大缓解了网络通讯的压力。即使在和总司令部暂时失去联系的情况下,也能自主做出部分决策。

边缘计算跟云计算相比也面临着诸多挑战,以CDN为例,边缘节点分布广,单节点规模小(1~100机器左右),大部分节点是没有驻场人员,所以维修周期长(1~2周)。同时节点的网络复杂并且不可控,网络割接、运营商封禁是常有的事情,省与省,国与国(海外)之间都有种非常复杂的调用链路。

面对这些问题,就需要对 调度/容灾能力、运维能力要有比较高的要求,CDN本身的业务形态就是天然容灾和可调度的:一个节点挂了,流量就可以切换到其他节点上。CDN节点架构也相对比较简单,经典三层架构:四层负载均衡(LVS)+七层负载均衡(Nginx或者HaProxy)+缓存服务(Squid),所以CDN运维也是比较简单的,机器上主要是缓存数据,机器挂了整体影响不大,不需要做数据迁移。

但是CDN要转型到通用边缘计算平台,调度/容灾能力和运维能力就会变成规模化的一个主要瓶颈,怎么做调度、怎么做容灾、怎么做运维,这些问题在边缘场景更加突出。

因此容器的轻量级和DevOps属性,加上Kubernetes的调度,目前看来是非常是非常适合边缘计算。

容器在边缘计算的落地形态

容器和Kubernetes的落地场景主要还是在中心大集群场景,目前在边缘的落地形态也是在探索和实践中,目前针对边缘场景的Kubernetes有:

K3S:K3S是Rancher开源的轻量级Kubernetes发行版,K3S是通过大量裁剪Kubernetes代码,只保留主要核心代码,这是是为了在边缘计算环境中运行在x86、ARM64和ARMv7处理器上的小型、易于管理的Kubernetes集群日益增长的需求。可以看出K3S主要是适配端(Device Edge)上的场景,通过简化Kubernetes来保证可以运行在终端设备上。

KubeEdge:KubeEdge是华为贡献给开源社区的一个项目,从名字上可以看出也是真的边缘场景, KubeEdge的优势在于设备连接,它可以支持多种协议,并使用基于标准MQTT的通信,这有助于有效地使用新节点和设备扩展边缘集群。KubeEdge主要的场景在于边缘接入层(Access Edge),解决各种IOT终端设备接入的问题。

ACK@Edge:ACK@Edge是阿里云ACK(Kubernetes)适配边缘的形态,ACK@Edge在实现上保存了原生Kubernetes的所有能力,所有边缘相关的特性均通过Addon实现,Master是部署在云中心,Node在边缘端。ACK@Edge比较适合基础设施边缘(Infrastructure Edge),比如CDN场景。

以CDN场景的落地场景来说,形态上就是在云中心部署Kubernetes Master,将云中心所在Region附近的CDN节点接入到Kubernetes中,最后Kubernetes之上构建Fedration能力,进行全局容器调度。这样就能利用Kubernetes调度能力和容器的DevOps能力。具体可以参考https://yq.aliyun.com/articles/711767。

未来展望和趋势判断

CDN转型边缘计算平台,CDN已经是一个非常成熟技术和业务,也是因为成熟,所以同质化严重,同时因为CDN的业务粘性不够(改个DNS业务就切走了),所以目前国内CDN的商业环境并不是太好,CDN行业变成价格红海,所以CDN厂商也纷纷在进行战略转型边缘计算平台,但是5G还未大规模商用,转型之路面临着诸多问题:落地场景存不确定因素,客户接受程度不够等等。但是改变可能失败,不改变必定掉队,所以当务之急是先修炼好内功,把新技术(虚拟化/容器/AI)在CDN进行落地和磨炼,同时积极挖掘各种新业务和场景。

安全容器是重要能力,容器天然适合边缘计算,但是容器也是比较大的硬伤,那就是安全和隔离,这也是为什么现在边缘计算的主要对外售卖形态还是虚拟机。所以安全容器就是一个最佳解决方案,具备容器的DevOps属性,又有比较好的隔离和安全保证。今年Kata安全容器发展迅猛,所以安全容器是边缘计算的一个关键技术。

视频AI和边缘计算天生一对,视频AI目前已经有不少落地场景:人脸识别门禁、自动垃圾分类、食堂自助结账等等,可以预见视频AI将会继续快速发展。但是随着规模的扩大和场景的挖掘,视频AI对于低延时的需求会日渐强烈,如果能把视频AI能力部署在边缘节点上:云中心进行大数据计算和AI训练,AI训练结果下沉到边缘节点,边缘负责视频接入,直接在边缘进行处理。

Q&A

Q:能否介绍一下,目前CND节点改造成边缘计算节点,主要涉及哪些方面改造,阿里的实践情况,谢谢。

A:目前CDN改造有3个部分:基础设施到改造(交换机、机型),软件层面的改造(容器化),CDN节点架构的改造(比如把传统的7层负载均衡改成Kubernetes的Ingress Controller)。

Q:CDN场景的落地场景来说,形态上就是在云中心部署Kubernetes Master,将云中心所在Region附近的CDN节点接入到Kubernetes中 ,指的是在各个Region里面的节点当作Kubernetes的Node处理吗?

A:比如我们在阿里云中心的杭州Region创建一个Kubernetes Master,然后会把杭州整个省的CDN节点,全部接入到这个Kubernetes Master里面,CDN节点指的是一个机房,一个机房会有1~100台机器,整个CDN节点的机器都会接入。

Q:请问阿里边缘计算有和5G结合的计划吗?具体有哪些结合点?

A:在今年云栖大会上,我们已经发布了5G边缘计算战略,这个可以网上找下视频回放。具体的结合点目前来看是城市大脑和城市云。不过因为5G还未大规模商用,所以我们也在探索。https://yunqi.youku.com/2019/hangzhou/review?spm=a2c4e.11165380.1395223.1

Q:请问未来Docker会向安全容器转型吗?安全容器是趋势,作为开发者要注意哪些点?

A:其实Kata和普通runC容器,在行为上没有太大差别,如果非要说关注点的话,目前我觉得是内核部分,因为Kata容器对于内核要求是比较高的,稳定性方面还需要打磨。

Q:在云上部署Kubernetes Master节点,CDN节点作为边缘节点。对Kubernetes来说,节点之前的网络通讯要求会比较高,那当网络不稳定时,边缘节点和Master节点断开,这时如何实现边缘节点上的服务自治呢?

A:这个就是ACK@Edge解决的问题了,ACK@Edge在边缘测机器上部署了一个Edgehub的组件,kubelet并不是直接请求kube-apiserver,而是通过Edgehub然后再请求到APIServer。Edgehub做了缓存和代理的能力,即使在断网的情况下,也能保障边缘节点的kubelet正常工作。这个能力叫做边缘自治,是ACK加强的能力。

Q:请谈谈阿里看到的边缘计算cover的真实价值场景或者客户群,感觉很多现有场景中心计算也能满足,不一定要用边缘计算。特别是边缘计算节点也卖虚机,价值不大。谢谢。

A:以CDN为例,CDN就是通过边缘做加速来提高用户体验。虚拟只是一种形态,比如你购买虚拟机自建CDN。所以边缘的场景肯定是跟中心不一样,比如城市大脑,就是需要在就近有个节点可以做接入,如果全部回中心,对中心的压力也很大。

Q:请问安全容器的存储性能有考虑过么?接入点在边缘还是放云端?

A:安全容器最终是跑着边缘上的,安全容器的存储目前是一个大的问题,Kata开源的存储方案性能并不好。阿里云的内核团队做了大量的优化,目前应该有了比较大的性能改进。

Q:容器安全方面有什么需要注意的?除了Kata之外,使用dockerd与Kubernetes有什么安全建议psp之类的?

A:安全容器的使用,第一Kubernetes需要做适配runtimeClass,第二内核也要求比较高(应该是要4.*内核比较稳定)。安全建议:就是加证书、改端口,不然容易被外部注入容器。其他的安全建议:就是直接使用云上产品,云上产品具备了比较高的安全能力。

Q:CDN的流量分配是在哪里做的?是DNS还是GSLB那种?异地灾备也可以用同样的方式?

A:CDN的流量分配就有DNS、HTTPDNS、302调度,CDN本身就是成熟的技术了,调度这块都是非常成熟的技术。

来源:架构师技术联盟

免责声明:本文系网络转载,版权归原作者所有。但因转载众多,或无法确认真正原始作者,故仅标明转载来源,如涉及作品版权问题,请与我们联系,我们将在第一时间协商版权问题或删除内容!内容为作者个人观点,并不代表本公众号赞同其观点和对其真实性负责

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数字科智 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【DEDE后台】dede网站动态页和静态页的设置方法
DEDE织梦cms常用的参数标签汇总、以及操作过程中的一些bug问题解决方法,dede网站二开,以下龙腾飞网络科技-小吴在建站实操中笔记记录,织梦dede建站教程保存使用非常方便:
攻城狮与产品喵
2025/03/13
2460
【DEDE后台】dede网站动态页和静态页的设置方法
DEDE 5.7 伪静态 完美版
织梦dedecms虽然可以生成静态页面, 也可以重写成为伪静态. 在后台有设置可以开启伪静态. 开启后还要经过一定的设置才能使用. 下面是方法,组件我已经在附件里发布了!我总结为三步: 第一步. 首
用户1272546
2018/06/04
2.2K0
【DEDE伪静态】织梦cms网站如何做伪静态
DEDE织梦cms常用的参数标签汇总、以及操作过程中的一些bug问题解决方法,dede网站二开,以下龙腾飞网络科技-小吴在建站实操中笔记记录,织梦dede建站教程保存使用非常方便:
攻城狮与产品喵
2025/03/13
1.1K0
【DEDE伪静态】织梦cms网站如何做伪静态
dede 常用SQL总结
织梦cms不知大家用过没有,功能比较强大,但是对于我还是有一些不够,所以我总结了一些经常会使用的SQL,比如批量修改文章发布人、替换栏目字符串、批量修改文章点击数、批量修改文章命名规则等,这些SQL使用dedecmsv5.7测试,其他版本不保证。
老高的技术博客
2022/12/27
2.1K0
如何让 dedecms 变成全站动态浏览有利于企业站
 教大家如何让 dedecms(织梦)变成全站动态浏览,对于企业站很有利哦!有时候 dedecms 全站的静态反而对于建设企业站不利,具体实现如下,感兴趣的朋友可以参考下,希望对大家有所帮助
Savalone
2020/01/06
1.9K0
【DEDE搜索】dede搜索框搜索指定栏目文章
DEDE织梦cms常用的参数标签汇总、以及操作过程中的一些bug问题解决方法,dede网站二开,以下龙腾飞网络科技-小吴在建站实操中笔记记录,织梦dede建站教程保存使用非常方便:
攻城狮与产品喵
2025/03/13
5790
【DEDE搜索】dede搜索框搜索指定栏目文章
保存一下dedecms数据库表和字段说明,方便日后查询
玩dedecms有一段时间,对它的字段不是很了解,在此做个记录,方便日后查询 dede数据库字段说明: dede_addonarticle 附加文章表 aid int(11) 文章编号 typeid int(11) 分类栏目编号 body mediumtext 文章内容 dede_addonflash 附加Flash表 aid int(11) FLASH编号 typeid int(11) 分类栏目编号 filesize varchar(10)
ytkah
2018/03/06
2.5K0
DedeCMS织梦设置删除文章同步删除图片和附件策略
我们很多站长是否遇到这样的问题,比如我们开始建站的时候可能会更新不少的文章,也有是通过采集获取的图文。但是后续有可能考虑网站内容的变化调整,有些文章是准备删除不要。于是我们可能单篇、批量删除文章,不过我们把文章是删除,同时文章中有的图片和附件还在我们的图片文件夹中。
老蒋
2021/12/27
3K0
dede调用调用当前栏目下所有文档总数统计
dede调用自定义栏目模型 调用当前栏目下所有文档总数统计,因为在开发一套织梦网址导航模板的时候遇到一个需要统计当前栏目下所有提交网址的总数量,需要用到这个功能,方法如下: 修改 include/common.func.php文件,在最后加以下代码:
用户1088318
2025/05/21
810
dedecms 添加并调用栏目缩略图
网上有很多关于 dedecms 添加栏目缩略图的方法,大家都是复制粘贴,无一能用,经过本人测试总结出一套完整的方案,希望对朋友们有所帮助。
Savalone
2020/01/06
11.7K0
怎样实现给DEDE的栏目增加栏目图片(1)
http://www.genban.org/news/dedecms-7577.html 前两天用DEDE做二次开发的时候,遇到一个问题,领导让给每个栏目增加一个栏目图片的功能,网上找了些东西,结合自己实际做的时候的方法,下面详细描述下具体的实现方式(只测试了V5.7版本,对低版本是否适用不太清楚)。
全栈程序员站长
2021/09/26
1.9K0
【DEDE[sql执行]】DEDE数据库语句 DEDESQL命令批量替换 SQL执行语句
DEDE织梦cms常用的参数标签汇总、以及操作过程中的一些bug问题解决方法,dede网站二开,以下龙腾飞网络科技-小吴在建站实操中笔记记录,织梦dede建站教程保存使用非常方便:
攻城狮与产品喵
2025/03/13
4460
【DEDE[sql执行]】DEDE数据库语句 DEDESQL命令批量替换 SQL执行语句
织梦彻底解决“模板文件不存在,无法解析文档!”的问题
这个教程是让程序明明白白的告诉你是哪个栏目哪个模板文件不存在,再去找该栏目的相关设置和添加不存在的模板文件。
米米素材网
2022/10/07
2.8K0
织梦彻底解决“模板文件不存在,无法解析文档!”的问题
如何在后台增加dedecms栏目图片字段并在前台实现调用
  dedecms默认是没有栏目图片功能的,为了便于灵活管理就给每个栏目增加一个栏目图片的功能,栏目图片是在代码中添加的固定图片,通过改造可以实现这个功能的,下面就随ytkah一起来试试吧 1. 首先
ytkah
2018/03/06
7.2K0
如何在后台增加dedecms栏目图片字段并在前台实现调用
【DEDE伪静态】dedecms单独页怎么调用文章列表,翻页无法生成伪静态
DEDE织梦cms常用的参数标签汇总、以及操作过程中的一些bug问题解决方法,dede网站二开,以下龙腾飞网络科技-小吴在建站实操中笔记记录,织梦dede建站教程保存使用非常方便:
攻城狮与产品喵
2025/03/13
1K0
【DEDE伪静态】dedecms单独页怎么调用文章列表,翻页无法生成伪静态
完整织梦DedeCMS设置全站伪静态流程 减少网站文件量
我们很多站长朋友选择织梦DedeCMS程序的主要原因在于是可以生成HTML静态文件的,这样在一定程度上是可以减少服务器的负载的。所以我们一般做大数据的内容管理系统比较多,当然还有一个原因就是DEDECMS程序比较简单易用,以及拥有很多免费的主题模板。
老蒋
2021/12/27
5.1K0
Nginx/Apache之伪静态设置 - 运维小结
一、什么是伪静态 伪静态即是网站本身是动态网页如.php、.asp、.aspx等格式动态网页有时这类动态网页还跟"?"加参数来读取数据库内不同资料,伪静态就是做url重写操作(即rewrite)。很典
洗尽了浮华
2019/05/25
13.9K0
【DEDE文章】dedecms出现DedeTag Engine Create File False的解决教程
DEDE织梦cms常用的参数标签汇总、以及操作过程中的一些bug问题解决方法,dede网站二开,以下龙腾飞网络科技-小吴在建站实操中笔记记录,织梦dede建站教程保存使用非常方便:
攻城狮与产品喵
2025/03/13
2370
【DEDE文章】dedecms出现DedeTag Engine Create File False的解决教程
【DEDE文章】dede信息发布员如何设置发文章自动生成html页面
DEDE织梦cms常用的参数标签汇总、以及操作过程中的一些bug问题解决方法,dede网站二开,以下龙腾飞网络科技-小吴在建站实操中笔记记录,织梦dede建站教程保存使用非常方便:
攻城狮与产品喵
2025/03/13
1410
【DEDE文章】dede信息发布员如何设置发文章自动生成html页面
DEDE5.3至DEDE5.6通用伪静态教程!
1、服务器必须支持URL重写。 2、后台开启伪静态。 3、栏目设置使用动态。 4。添加文档时选择使用动态浏览。 5。需要修改php文件include/channelunit.func.php
用户1272546
2018/06/04
2.9K0
推荐阅读
相关推荐
【DEDE后台】dede网站动态页和静态页的设置方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档