边缘计算市场现处于初步发展阶段,继云计算之后,边缘计算也正在商业化落地。与Kubernetes已然成为云计算的主流和标准不同,边缘计算还没有一个事实上的标准,整体还处在一个百家争鸣的状态。本文基于Nomad的边缘计算平台作为边缘云的落地形态,便是这片浪潮中的一片浪花,也是本文工作的基础。云原生Serverless兴起于2017年,近两年伴随着云原生概念的推广愈发火爆,2019年成为云原生技术的普及元年。Serverless的核心是函数计算FaaS。截至本文研究的2020年初,Serverless提供了一个大大简化云编程的接口,它代表的进化非常相似过去程序员从汇编语言到高级编程语言的转变的生产力的进步,将成为云服务的主流形态。目前云、边、端三者的计算架构、开发模式存在较大差异,提升效率需要新的计算架构创新,而边缘计算软件平台采用Cloud Native云原生架构是一种不错的选择。基于Nomad的边缘计算平台在工作负载应用场景、服务模式还存在欠缺,需要更多的工作。
本文的主要工作和贡献主要体现在下面四个方面:
1. 设计和实现Libvirt虚拟机运行时将虚拟机工作负载引入基于Nomad的边缘计算平台,弥补容器负载的弱势,管理虚拟机任务,丰富了平台使用场景和技术生态。
2. 结合无服务器计算的模型,设计和实现FaaS函数运行时作为在基于Nomad的边缘计算平台引入函数计算的重要基础,以函数为粒度动态调度,扩展边缘计算平台的服务模式,简化边缘应用开发者的工作,提供更好的服务质量体验。
3. 提出基于Nomad的边缘容器镜像仓库方案,提供镜像仓库边缘BaaS服务。
4. 基于本文FaaS函数运行时,提出监控、告警、负载均衡、调用链追踪等更多的函数计算服务方案。
当然,除了上面的几点,本文存在很多可以改进的地方,至少包括以下几个方面:
1. Libvirt虚拟机运行时对更多的CPU、磁盘、网络的硬件型号和运行模式等繁杂的类型和配置进行兼容。
2. 提高FaaS函数运行时自动扩缩容时的效率,FaaS API网关增加限流等功能,避免频繁伸缩可能导致的抖动,增强一定负载下稳定性。
3. FaaS函数运行时维持每个函数所需的并发请求级别的配置,固定步长从用户的角度不好评估且不够准确,可以根据CPU、内存和延迟统计信息由系统适应性地计算出动态的伸缩因子。
最后,期待边缘计算平台结合Serverless模式的无设备计算发展成为边缘服务重要的部分。