边缘计算的设计要点在于将一部分计算能力从网络中心移植到网络的边缘,如家用路由器、网络摄像机、各种带计算能力的传感器等信息接收节点。这样做有两个好处。
- 减少带宽消耗
原始数据不再需要传输到中心节点处理,而是在边缘节点直接处理,如视频处理、人脸识别等场景,可以节省大量网络带宽。在物联网环境下,海量的边缘节点直接将原始数据传输到网络中心节点几乎是不可接受的,这样做会极大地消耗网络带宽,增加中心节点的负荷。
- 提高实时处理能力
一些数据处理系统要求有极高的响应速度,如工业控制系统等,这种需求就不能采用中心节点处理,必须要在边缘节点实现实时数据处理。经过边缘节点初步处理和提炼后的数据,被上传到中心节点进行大规模处理,实现中心节点与边缘节点互补。
另外还有一种边缘计算模型,其中心节点不再承担计算任务,只承担管理任务,计算能力将全部移植到边缘节点,对数据的存储则采用大规模分布式存储系统,每个边缘节点都参与数据存储,以内容为主的计算模式比较适合这种边缘计算模型,如CDN等。这种模型将采用数百万的边缘计算节点,数据将分布到数百万节点上,具有非常强大的抗风险能力,同时将数百万的节点组合在一起,形成非常强大的计算能力,这有点儿类似于今天的区块链系统,是一种非常有前景的计算模型,目前国内已经有CDN厂商使用该边缘计算模型为客户提供服务。
边缘计算模型会存在数十万甚至百万的边缘计算节点,对这些节点的管理将变成一件非常头疼的问题,比如对节点故障的感知、对故障的处理、软件更新等将变成海量任务,这些都会阻碍边缘计算技术的发展。随着容器技术和容器编排技术的发展,对边缘节点的统一管理与调度成为可能。
具体实现方法就是在每个边缘计算节点内配置容器运行环境,如安装精简版的Linux系统,安装Docker服务等,然后安装kubelet、Calico等组件,将该边缘计算节点纳入到Kubernetes下进行统一管理,实现内置软件的自动安装与升级、资源监控等。当前硬件系统高速发展,手机、家用路由器等低功耗的边缘计算设备也已经具有较强的计算能力,因而安装这些额外的软件并不影响边缘节点的计算能力,而后该节点就可以纳入到Kubernetes集群中管理,实现自动健康检查、资源监控、软件部署等功能。
考虑到Kubernetes最初是专为数据中心运维而设计的,边缘计算节点的网络延迟远高于数据中心节点,故原生的Kubernetes并不完全适用于边缘计算模式。相关开源组织似乎也注意到了这一点,于是成立了Kubernetes物联网边缘工作组,以促进Kubernetes在边缘计算环境的使用。该工作组主要实现如下目标。
1)将支持的节点数扩展到百万级别,支持多种网络接入模式,能够用于大规模物联网环境中。
2)支持暂时的边缘设备离线,对于庞大的边缘计算网络而言,暂时的设备离线是很普遍的事情,使用新的网络方案,适用于高延时网络。
3)支持各种硬件方案,如ARM、x86等,支持低内存节点,增加硬件管理能力。
4)增强安全功能,以适用于边缘计算模式。
经过功能优化后的Kubernetes边缘计算专用版,将更好地适用于大规模边缘计算环境。除了基于Kubernetes的边缘计算管理系统外,还有基于OpenStack的,如StarlingX平台等。
边缘计算节点一般都使用公共网络,而且物理设备放置于非可控位置,因而安全问题至关重要。解决边缘计算模式下的安全问题,主要从如下几个方面着手。
- 硬件安全
硬件安全是所有安全的基础,首先边缘节点硬件需要放置于一个相对安全的物理位置,保证不是任何人都可以轻易接触该硬件,只有授权的人才能访问该硬件。另外需要该硬件组件的自动侦测功能,一旦发现硬件组件被入侵,就立即删除敏感信息,防止信息泄露。硬件设备也需要采取内置完整性保护措施,如TPM、HSM、RIoT等,保证硬件完整、可信、非被入侵的,能够防止非授权登录、反克隆等,也只有保证硬件安全,才能保证上层的软件安全,各种软件也才能在硬件可信的基础上构建自己的安全体系。
- 软件安全
软件安全主要包括BIOS程序完整性验证,如BIOS程序hash对比,完整的BIOS将按照设计好的方式引导操作系统,进而启动正确的应用程序。在应用程序启动后则需要适时监控边缘节点运行的各个应用程序,防止应用程序被篡改,防止可疑进程启动,防止可疑系统登录等,一旦发现问题需要立即报告给管理中心。后续系统升级等则需要用HTTPS连接到升级服务器,新装软件则需要签名验证等。
- 网络安全
网络安全主要包括只开放必需的服务端口,能使用VPN的情况下尽量使用VPN,使用ACL对访问进行控制,如限制来访者的IP地址等,使用RSA等加密算法对网络传输数据进行加密,对来访者进行身份验证,如验证对方的数字证书等方法。使用无线互联的边缘计算节点需要使用加密信道或者基于信道的认证来防止无线干扰攻击、欺骗攻击等。