「译文」CNCF 边缘原生应用程序原则白皮书

简介: 「译文」CNCF 边缘原生应用程序原则白皮书

目标

许多地方都提到了“Edge Native(边缘原生)”一词,包括 GartnerMarcometaFutureCIO 等行业博客。包括 State of the EdgeLinux Foundation(LF) 在内的组织也讨论了边缘原生应用程序,但没有关注边缘原生原则。

本白皮书重点介绍边缘原生应用程序以及如何定义这些原则。

什么是边缘 (Edge)?

边缘计算是一种使数据处理更接近源 (source) 的范例,例如工厂中的机器人控制。

在未来五年内,边缘计算 (Edge Computing) 将变得更加普遍,预计该行业将 从 2022 年到 2030 年增长 38.9%。公司看到了在边缘拥有计算能力的以下好处:

  • 减少延迟
  • 带宽管理
  • 提高敏感数据的隐私性
  • 在不可靠的网络下不间断地运营

边缘计算有各种各样的定义,但本文将重点讨论的是基于数据处理资源的地理位置 (the geographical location of data processing resources) 的定义。 基于地理的边缘根据与用户的距离被分类为多个类别。 下图显示了 Linux Foundation Edge 白皮书 中定义的类别。

Edge 类别

(译者注)根据距离中央(云)数据中心由远到近依次为:

  1. 用户边缘 (User Edge)
  1. 受限的设备边缘 (Constrained Device Edge): 基于微控制器,在物理世界中高度分布式。如智能灯泡,智能温度计。
  2. 智能设备边缘 (Smart Device Edge): 包括 IoT(无头)和可访问位置的最终用户客户端计算设备。如:智能路由器,智能手机。
  3. 本地数据中心边缘 (On-Perm Data Center Edge): 安全位置中基于服务器的计算。如:放在监控室的机柜。
  1. 服务提供商边缘 (Service Provider Edge): 距离用户边缘相隔最后一公里网络 (Last Mile Networks)
  1. 访问边缘 (Access Edge): 电信网络和边缘交换站点的基于服务器的计算
  2. 区域边缘 (Region Edge): 区域电信公司和直接对等站点的基于服务器的计算
  1. 中央数据中心 (Centralized Data Centers): 通过互联网边缘 (Internet Edge) 与服务提供商边缘相连;传统云数据中心中的基于服务器的计算

边缘原生原则与云原生原则共享许多相似之处;

但是,也有一些关键的区别。

云原生 (Cloud Native) VS 边缘原生 (Edge Native)

云原生计算基金会(CNCF) 定义的云原生技术包括:

“云原生技术使组织能够在公共云、私有云和混合云等现代动态环境中构建和运行可扩展的应用程序。 容器、服务网格、微服务、不可变架构和声明式 API 就是这种方法的例证。

这些技术使松散耦合的系统具有弹性、可管理性和可观察性。

结合强大的自动化功能,它们允许工程师以最少的工作量频繁地、可预测地进行高影响力的变更。”

这一广泛的使命仍然适用于边缘应用程序,因为 边缘计算开放词汇表 (The Open Glossary of Edge Computing) 指出,“边缘原生应用程序”利用云原生原则:

“应用程序是为了利用边缘计算功能而本机构建的,这在集中式数据中心中运维是不切实际或不可取的。 边缘原生应用利用云原生原则,同时考虑到边缘在资源限制、安全性、延迟和自主性等方面的独特特征。 边缘原生应用程序的开发方式充分利用云并与上游资源协同工作。 不理解集中式云计算资源、远程管理和编排或利用 CI/CD 的边缘应用程序不是真正的“边缘原生”,而是更类似于传统的内部部署应用程序。”

随着云原生使用案例走出传统云,在边缘位置整合数据和事件,新的工具和技术也在不断发展,以实现交付具有弹性、可管理和可观察性的松耦合系统的目标,同时还能管理边缘的独特特征。

相似性

许多云原生原则适用于边缘原生。 本节将介绍这些相似之处。

属性 云原生 & 边缘原生
应用程序和服务可移植性 应用程序和服务将它们的耦合从架构中抽象出来。 一个写得很好的应用程序不能告诉它在哪里运行,可以预期它是跨平台的。
可观察性 该平台附带了一套记录良好的界面和工具选项,可用于检测问题和收集指标。 这使得开发人员能够构建具有弹性和高效管理的系统。
可管理性 (Manageability) 提供了接口和工具选项来大规模管理应用和资源。 该平台还具有插件机制,可提供基线网络连接、服务和管理功能。
不可知语言和框架支持 应用程序和服务可以使用各种流行的语言和框架来实现和托管。

差异性

属性 云原生 边缘原生
应用模型 (App Model) 大多数微服务组件是无状态构建的,用于负载平衡的水平扩展。 虽然服务提供商边缘应用程序可能非常相似,但用户边缘 (User Edge) 应用程序可能是单独的“单体 (monolithic)”; 在这两种情况下,状态都可以与应用程序位于同一位置。
数据模型 (Data Model) 支持无状态组件的集中式模型很常见。 通常使用缓存 (caching)、流 (streaming)、实时 (real-time) 和分布式模型。
弹性 快速扩容和缩容;通常将底层资源视为无限的。 由于边缘硬件资源有限,弹性有限;如果可用,扩展可能是“垂直”的,直扩展到连接的云。
恢复能力 (Resilience) 使用跨故障域分布的冗余节点将恢复能力外包给云提供商。 通常依赖于加固的架构,以及用于有状态组件的恢复体系架构;在许多情况下,恢复能力可能低于云中的恢复能力。
扩展 (Scale) 通常仅限于几个地点和实例。 可跨越大量位置(多达 10,000 个),支持大量外部设备(多达 100,000 个)。
编排 大型公有云或内部部署云中的流程编排旨在通过在集中池化主机上运行工作负载并以水平方式进行调度来实现效率和可用性。 边缘是分散式的,工作负载以分布式方式部署,通常以特定于位置的方式进行调度。
管理 虽然云原生和边缘原生都是可管理的,但机制各不相同;云原生依赖于集中管理和自动化。 Edge 原生需要远程和集中化管理以及零接触配置硬件和软件。 边缘工作人员可能未经培训、不受信任、人数极少,甚至根本不存在。 “板砖”标准化,“原子”化升级由于恢复挑战而变得合乎需要。
网络 应用程序可以依赖具有丰富功能的高速网络。 应用程序需要考虑不同的速度(从间歇性的、差的到优秀的网络)和功能。
包括基于移动网络和无线电网络,集成来自非 IP 协议网络的数据和事件。
安全 安全设施内的可信结构。 不安全环境中的零信任。
硬件感知 由于计算资源事实上是一致的,并且具有迎合大多数应用的风格,因此应用很少需要关心硬件放置。 应用程序可能具有更高的实时要求,这使得硬件平台、位置和 / 或安全感知成为一项要求。 开发人员需要了解各种各样的硬件和接口。
与外部资源交互 应用程序很少需要与本地硬件资源交互。 部署在边缘的服务通常需要与本地环境交互:摄像头、传感器、执行器、用户等。

边缘原生应用

边缘原生应用程序是为边缘编写的应用程序和服务。 它们的编写方式考虑到了上述的相似性和差异性。 这些应用程序的核心原则如下所示:

原则 描述
资源和设备感知 硬件感知 开发人员需要了解各种各样的硬件和接口,而不是拥有同质的硬件平台。
外部设备连接 应用程序必须知道如何连接到其环境中的设备,并了解运行时的功能更改。 例如,在初始配置或新设备进入网络后,它们必须响应传感器与边缘服务器的断开 / 连接。 能力不是一成不变的;相反,它包括环境,所以编排器应该能够协调应用程序状态的能力变化。
可变网络可用性感知 应用程序必须通过使用异步通信、队列和缓存等机制来适应不可靠甚至不可用(网络隔离)的网络连接。
边缘从中央站点拉取配置时,可能需要“拉取 (pull)”机制来克服规模、网络连接和安全问题。
大规模管理 中心可观测 虽然边缘和云原生应用都需要集中观察,但边缘原生应用有独特的考虑因素。 边缘原生应用实例可能部署在大规模实例中,并且 / 或者面临人员或现场支持受限的情况。 由于这些原因,需要诸如分布式数据收集和集中式聚合、开环 (open loop)(人类可观察 / 可操作)和闭环自动化(机器可操作)的组合等技术。 可观察性包括指标、日志、数字孪生、警报 (alerting)(事件 (events) 和警报 (alarms))和运行状况监控。
大规模架构和平台管理 大规模的架构和平台管理对于边缘应用程序非常重要,因此需要基于声明性意图的机制。 此外,可能存在独特的要求,如设备加载、水平扩展限制、管理裸机环境等。 在平台级别,部署或管理 Kubernetes 或虚拟化层以及各种插件也是一个问题;同时尽可能保持平台层与厂商无关以实现应用程序的可移植性。
大规模应用管理 边缘应用程序的数量和这些应用程序的实例数量可能非常大,需要从声明性放置和配置意图、通过闭环自动化实现的自动化服务保证,以及跨多个应用程序实例的聚合管理视图等一系列自动化。 应用程序也可能有实时需求,这意味着应用程序和架构 / 平台之间的联系(例如使用 GPU、DPU、FPGA、CPU 架构、内核优化、Kubernetes 插件)可能比云应用程序更紧密。 换句话说,应用程序协调可以触发底层的架构 / 平台协调。
扩展 (Spanning) 应用程序不存在于一个位置;层可以跨越地理、延迟和故障域边界。 事实上,边缘应用程序也可以跨越公共云或集中式私有云。
资源使用优化 由于边缘计算资源有限,应用程序必须持续优化资源使用。这可能意味着按需启动和关闭应用程序,可能意味着根据放置和可用性意图进行迁移和复制,可能意味着在一天中的不同时间运行不同的工作负载。
应用程序可移植且可重复使用(有限制) 抽象层试图通过厂商中立的 PaaS 提供架构和平台无关的可移植性。 但是,由于本地资源、硬件平台、安全性、移动网络等认知,需要配置选项适应本地差异。

这九项原则可以归纳为五大项原则。 硬件感知、外部设备连接和可变网络可用性感知都可以在资源和设备感知的更广泛原则下考虑。 类似地,边缘应用程序需要可大规模管理、可集中观察。 并且具有可管理的架构和平台,都可以在大规模管理的原则下进行分类。 以下是扩大后的五项原则:扩展、资源使用优化、可移植性和可重复使用性(有限制)、资源和设备感知以及大规模管理。

总结和下一步

本文件是第一版,可能会经过修订。 预计今后将发表与本文件各小节有关的文章。

如何参与

CNCF 物联网边缘工作组有定期会议、邮件列表和 Slack。 请参阅工作组 GitHub 页面的 通信部分 以获取最新信息。

我们欢迎读者参与进来,介绍与边缘相关的项目,为小组的工作领域提出想法,或帮助修改本白皮书和 / 或起草后续文件。

项目和举措

作为本白皮书的一部分,CNCF 物联网边缘工作组正在收集开源项目的工作列表,这些项目可帮助应用开发人员实现本文中概述的边缘原生应用原则。

该列表可在此电子表格中或通过 QR 码找到。 要获得添加项目的编辑权限,请加入 IoT Edge Working Group Google 群组。


引用


相关文章
|
运维 监控 安全
阿里巴巴DevOps实践指南(十五)| 应用环境能力
应用环境解决方案并不仅仅是将应用的开发环境、基础环境搭建起来即可,还涉及到环境的稳定性如何保证,基于环境如何规范变更的流程,基于环境如何提升开发效率等等。环境治理需要站在更高的角度,综合看待上述问题,否则就会陷入环境问题年年治理、年年被吐槽的怪圈。
阿里巴巴DevOps实践指南(十五)| 应用环境能力
|
3月前
|
Cloud Native Java API
为何这款轻量级框架正悄然改变云原生应用开发格局?——探索Micronaut带来的新编程体验
【9月更文挑战第5天】随着云计算的发展,企业纷纷转向云原生应用开发。Micronaut是一款轻量级、高性能的Java框架,专为微服务架构设计,支持JVM和GraalVM,是构建云原生应用的理想选择。本文介绍Micronaut的基本概念并通过示例展示如何快速搭建云原生应用。使用Micronaut CLI可以轻松创建项目并添加REST接口,其注解驱动的API让开发变得简单直接。Micronaut还提供了健康检查、指标收集等高级功能,支持AOT编译,优化应用性能。对于追求高效开发的团队而言,Micronaut提供了一种全新的解决方案。
67 6
|
4月前
|
Kubernetes 监控 Cloud Native
eBPF技术大揭秘:一张全景图彻底改变Kubernetes问题排查,助你成为云原生时代的超级英雄!
【8月更文挑战第8天】在云原生时代,Kubernetes作为容器编排的标准,其问题排查变得日益复杂。eBPF技术无需改动内核即可编写高效、安全的内核程序,实现系统细粒度观测与控制。近期发布的基于eBPF的Kubernetes问题排查全景图,展示了如何利用eBPF监控资源使用、网络性能及调度策略等,例如通过eBPF程序监控CPU使用率。此全景图有助于快速定位如高CPU使用率等问题所在Pod,进而优化配置或调整调度。
123 8
|
4月前
|
Rust Cloud Native 安全
哇塞!Rust 在云原生环境中搞大事啦!构建微服务竟如此酷炫,你还不来看看?
【8月更文挑战第31天】《构建微服务:Rust 在云原生环境中的实践》探讨了 Rust 语言凭借其内存安全、高性能及可靠性等特性,在快速发展的云计算领域构建微服务的优势。书中介绍了选择合适框架(如 Axum 和 Tide)、容器化部署、服务间通信及确保服务可靠性等方面的内容,并展示了 Rust 在云原生环境中的广泛应用前景。
181 0
|
移动开发 前端开发 JavaScript
闲鱼技术2022年度白皮书-KUN主题-三代终端容器KUN的首次大考【架构演进】(中)
闲鱼技术2022年度白皮书-KUN主题-三代终端容器KUN的首次大考【架构演进】
300 0
|
移动开发 前端开发 weex
闲鱼技术2022年度白皮书-KUN主题-三代终端容器KUN的首次大考【架构演进】(下)
闲鱼技术2022年度白皮书-KUN主题-三代终端容器KUN的首次大考【架构演进】
256 0
|
开发者
《云时代开发者能力模型与提升之道》电子版地址
4 - 云时代开发者能力模型与提升之道
56 0
《云时代开发者能力模型与提升之道》电子版地址
|
存储 Prometheus 监控
KubeVela 1.5:灵活框选 CNCF 原子能力打造独特的企业应用发布平台
KubeVela 1.5 于近日正式发布。在该版本中为社区带来了更多的开箱即用的应用交付能力,包括新增系统可观测;新增 Cloud Shell 终端,将 Vela CLI 搬到了浏览器;增强的金丝雀发布;优化多环境应用交付工作流等。
KubeVela 1.5:灵活框选 CNCF 原子能力打造独特的企业应用发布平台
|
开发框架 监控 前端开发
一个宝藏级微服务开源项目,是真的牛批!
不仅仅是一个开发架构,而是努力打造一套从 前端模板 - 基础框架 - 分布式架构 - 开源项目 - 持续集成 - 自动化部署 - 系统监测 - 无缝升级 的全方位J2EE企业级开发解决方案。
一个宝藏级微服务开源项目,是真的牛批!
下一篇
DataWorks