一
CDN和边缘计算的关系
CDN的全称是ContentDelivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
以上是来自来自百度百科的解释,简单的说CDN就是用空间换时间,空间的话就是分部在离终端用户较近的边缘节点,时间上就是终端用户直接从边缘节点直接获取资源,这样就不需要直接访问源站,从而提升用户体验。
举一个不是很恰当的类比,比如现在国内电商平台建立物流系统:在一二城市会建立大型物流中心(源站),三四线城市会建立小型物流中心(边缘节点),像双十一这种大促,会根据大数据计算提前在各地的小物流中心准备好商品(预热),这样用户就可以快速获取包裹(就近获取)。所以CDN可以认为是目前整个互联网的物流系统,只不过CDN分发的不是包裹,而是图片、视频、软件安装包。一般一家CDN服务商需要有成百上千个边缘节点,才可以具备比较好的服务质量。
CDN已经是一个充分验证过的成熟技术,可以不夸张地说,CDN扛住了整个互联网大部分的流量,没有CDN就没有现在繁荣的各种视频网站、直播平台和小视频APP。同时经常长期的发展,CDN在供应链体系、节点建设、网络运维都有非常成熟的经验和沉淀。
随着互联网智能终端设备数量的急剧增加,以及 5G 和物联网时代的到来,传统云计算中心集中存储、计算的模式已经无法满足终端设备对于时效、容量、算力的需求。将云计算的能力下沉到边缘侧、设备侧,并通过中心进行统一交付、运维、管控,将是云计算的重要发展趋势。
IDC 预计,到 2020 年全球将有超过 500 亿的终端与设备联网,超过 40% 的数据要在网络边缘侧进行分析、处理与存储,这对边缘计算提供了充分的场景和想象空间。
边缘计算分层结构包括云、边、端。
云Centralized Cloud :传统云计算的中心节点,资源丰富,计算力强,扩展性强,服务多区域,但离终端用户远。同时云中心是边缘计算的管控端,负责全网算力和数据的统一管理、调度、存储;
边Infrastructure Edge :通常服务特定的一个区域,如市、县、区等,部署在目标服务区域 10~30 公里的地方,提供满足目标服务区域的计算、存储、网络服务。InfrastructureEdge边缘通常位于IDC内,拥有充足的算力和存储容量,和中心有专线或骨干网连接,如CDN节点等;
InfrastructureEdge 又可分为 Access Edge 和 Aggregation Edge 两层,其中 Access Edge 靠近 Device Edge,与用户或设备端更近,Aggregation Edge 聚合一个或多个 Access Edge 的数据,与云端进行交互。
边 DeviceEdge :终端设备,如手机、智能家电、各类传感器、摄像头等。
可以认为CDN是边缘计算的一种形态,并且是当前来看规模最大、算力最强的形态、也是成熟度最高的业务形态。但是CDN的业务形态也需要做技术架构升级,才能支撑更多的边缘计算场景。
二
边缘计算的技术形态
边缘计算技术形态也可以按照传统的逻辑划分为IaaS、PaaS和SaaS:
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属性,加上K8S的调度,目前看来是非常是非常适合边缘计算。
三
容器在边缘计算的落地形态
容器和K8S的落地场景主要还是在中心大集群场景,目前在边缘的落地形态也是在探索和实践中,目前针对边缘场景的K8S有:
K3S: K3S是Rancher开源的轻量级Kubernetes发行版,K3S是通过大量裁剪K8S代码,只保留主要核心代码,这是是为了在边缘计算环境中运行在x86、ARM64和ARMv7处理器上的小型设备上。可以看出K3S主要是适配端(Device Edge)上的场景,通过简化K8S来保证可以运行在终端设备上。
KubeEdge:KubeEdge是华为贡献给开源社区的一个项目,从名字上可以看出也是面向边缘场景, KubeEdge的优势在于设备连接,它可以支持多种协议,并使用基于标准MQTT的通信,这有助于有效地使用新节点和设备扩展边缘集群。KubeEdge主要的场景在于边缘接入层 (Access Edge),解决各种IOT终端设备接入的问题。
ACK@Edge:ACK@Edge是阿里云ACK(K8S)适配边缘的形态,ACK@Edge在实现上保存了原生k8s的所有能力,所有边缘相关的特性均通过Addon实现,Master是部署在云中心,Node在边缘端。ACK@Edge比较适合基础设施边缘 (Infrastructure Edge),比如CDN场景。
以CDN场景的落地场景来说,形态上就是在云中心部署Kuberentes Master,将云中心所在Region附近的CDN节点接入到Kubrentes中,最后Kuberente之上构建Fedration能力,进行全局容器调度。这样就能利用K8S调度能力和容器的Devops能力。
这块可以参考
https://yq.aliyun.com/articles/711767
四
未来展望和趋势判断
1. CDN转型边缘计算平台
CDN已经是一个非常成熟技术和业务,也是因为成熟,所以同质化严重,同时因为CDN的业务粘性不够(改个DNS业务就切走了),所以目前国内CDN的商业环境并不是太好,CDN行业变成价格战红海,所以CDN厂商也纷纷在进行战略转型边缘计算平台,但是5G还未大规模商用,转型之路面临着诸多问题:落地场景存不确定因素,客户接受程度不够等等。但是改变可能失败,不改变必定掉队,所以当务之急是先修炼好内功,把新技术(虚拟化/容器/AI)在CDN进行落地和磨炼,同时积极挖掘各种新业务和场景。
2.安全容器是重要能力
容器天然适合边缘计算,但是容器也是比较大的硬伤,那就是安全和隔离,这也是为什么现在边缘计算的主要对外售卖形态还是虚拟机。所以安全容器就是一个最佳解决方案,具备容器的Devops属性,又有比较好的隔离和安全保证。今年Kata安全容器发展迅猛,所以安全容器是边缘计算的一个关键技术。
3.视频AI和边缘计算天生一对
视频AI目前已经有不少落地场景:人脸识别门禁、自动垃圾分类、食堂自助结账等等,可以预见视频AI将会继续快速发展。但是随着规模的扩大和场景的挖掘,视频AI对于低延时的需求会日渐强烈,如果能把视频AI能力部署在边缘节点上:云中心进行大数据计算和AI训练,AI训练结果下沉到边缘节点,边缘负责视频接入,直接在边缘进行处理。
分享预告:
12月3号下周二晚上,边缘计算社区社群又有神秘大神分享啦!