你的应用是否真正实现了游牧化?

译自:Are Your Apps Truly Nomadic?

作者:Derek Collison

随着边缘原生计算以及多区域、多云、多边缘部署的兴起,我们已经进入了与位置无关的游牧应用时代。

在过去几年中,完善边缘计算的竞赛显著加速——这是有充分理由的。边缘计算通过在本地处理数据,更接近数据源和最终用户,从而实时交付数据。它使得始终在线、始终连接的设备和支持人工智能的系统成为可能,这些系统可以跨多个云、区域、本地和边缘运行。

如今,边缘计算为自动驾驶汽车、全球分布式石油和天然气运营中的复杂传感器以及全球完全互联的制造工厂提供支持。在这些边缘系统上运行的应用程序必须像其支持设备一样具有移动性和灵活性。

为了跟上创新步伐而发展应用程序架构的需求并不新鲜。分布式应用程序架构已经发生了巨大且相对快速的演变,从2000年代初的Java单体应用到2010年代由Kubernetes管理的微服务。现在,随着边缘原生计算以及多区域、多云、多边缘部署的出现,我们已经进入了位置独立的“游牧应用”时代。

图:游牧应用可以从云自由移动到边缘

云到边缘和边缘到云的连续统一体:一项新的挑战

在云时代,推动力是集中化。尽管名称如此,云计算是围绕与集中式系统、无限存储选项和24/7全天候可用性集成而构建的。边缘时代代表着朝着相反方向的转变。

边缘计算——凭借其在具有挑战性的条件下(通常在偏远地区)提供分布式处理、在有限的计算资源下运行以及离线运行的能力——在许多方面与云相反。它关乎全球分布式系统、应用程序和设备。

边缘计算解决方案正在逐步发展。它们通常包含现有的硬件、软件和服务器,这些硬件、软件和服务器无法在不产生大量成本的情况下轻松更换或升级。部署和管理边缘系统也非常复杂,因为它们必须考虑到这些已部署组件的约束,以及与云和数据中心等遗留系统无缝集成的需求。

边缘应用必须针对边缘计算和设备进行设计;也就是说,它们必须是边缘原生的。例如,边缘原生应用与云原生应用相比,具有非常不同的特性和要求。它们还必须像其运行的边缘环境一样具有“游牧性”——不受特定提供商、网络和位置的束缚。

云原生应用 支柱 边缘原生应用
针对高性能计算优化进行优化 工作负载 专为资源受限的设备设计,以确保在中断时的弹性
使用微服务架构 跨分布式节点管理更新和版本控制
拥有几乎无限的存储资源 数据 拥有有限的本地存储资源
在全球范围内复制和缓存数据 在本地缓存并在以后协调
专为服务间通信管理而构建 连接性 专为与不可靠/间歇性连接一起使用而构建
跨多个实例和/或云运行 依赖于边缘到云的通信

边缘原生游牧应用的基本要素

从历史上看,消息传递系统已经逐步发展以支持新兴的应用程序架构。诸如远程过程调用(RPC)之类的消息传递框架导致了MQSeries和JMS,随后是XML,WebSockets,消息队列和Apache Kafka。

所有这些都试图逐步解决复杂分布式系统的特征问题,例如同步/异步通信,扩展,容错,文件格式标准化,实时通信,可靠性,高吞吐量数据,解耦应用程序组件和日志数据。但是,前进的每一步都揭示了新的技术挑战。

现在,随着对可以在边缘和跨分布式环境高效且一致地运行而无需重新配置或更改代码的游牧应用程序的需求,该行业必须采取下一步行动。 构建游牧式、位置独立且灵活的边缘应用程序对开发人员来说可能是一个巨大的挑战。他们必须找到管理连接性、数据同步、可移植性、存储和跨不同环境的动态扩展的方法,同时最大限度地减少设备内计算。这意味着要重新构想消息传递系统,支持从云端传输数据到边缘以及从边缘到云端,即使在恶劣的条件和间歇性连接的情况下也是如此。

为了支持边缘计算最苛刻和最具雄心的用例,开发人员需要满足以下条件的消息传递系统:

  • 边缘原生应用程序必须具有双向功能。 因为没有单一的“中心”,它们必须促进从边缘到云以及从云到边缘的可靠数据分发。这对于更新 AI 模型、分发二进制文件以及与多个边缘位置之间进行具有警报的时间敏感的数据更改至关重要。
  • 实时平衡高价值/低容量和低价值/高容量的数据传输。 边缘系统在边缘的源头处理数据,通过分配基于其价值的数据处理任务来保持效率,并且必须在网络中断和间歇性连接的情况下保持弹性。例如,像工厂火灾或传感器故障这样的高价值/低容量事件会触发即时数据传输和警报,以促进快速感知、分析和补救。
  • 专为轻松部署和调整现有基础设施而设计。

基于边缘的系统的需求通常会根据外部因素、扩展、收缩以及在其(相对较长)的生命周期内整合现有硬件而变化。通信层面的支持功能必须适应这些变化——在处理需求、环境等方面——并尽量减少停机时间。

全球数百万的开发人员和企业都在使用 NATS.io,这是一个支持边缘计算扩展和游牧应用程序的开源工具。我将 NATS 设计为一种自我保护、轻量级和低延迟的消息传递解决方案,非常适合微服务、边缘计算、游牧应用程序以及现在的 AI 就绪应用程序。

在设计 NATS 时,我专注于遥测——自动收集和传输来自分布式系统的实时信息,尤其是远程源、事件和控制。系统始终保护自己。

NATS 的优势包括:

  • 简化的连接性:NATS 提供了一个统一的系统,支持各种消息传递模型,并减少了延迟和复杂性。
  • 集成数据管理:借助 JetStream,NATS 提供了一个统一的数据层,用于流式传输、键值存储和对象存储。
  • 减少占用空间:小于 20MB 的单个二进制文件提供以下功能:
    • 消息传递和队列(包括 MQTT 服务器功能)
    • 流式传输(包括云和边缘之间可靠的存储和转发数据传输)
    • 键/值和对象存储
    • 服务网格
  • 高效的计算解决方案:NATS 执行引擎 (Nex) 简化了部署和工作负载管理,支持真正的应用程序游牧。

图:基于 NATS 的边缘原生技术栈

随着边缘计算和 AI 的普及,像 NATS 基于事件的通信这样的进步,它在 AI 方面表现更出色,将提供灵活高效的方法,从而将应用程序与各种平台和分布式边缘网络无缝集成。

下一代科技前沿

在过去的几年里,我们将计算、分析和设备方面的每一项创新都誉为工业 4.0 和连接性的 变革者。然而,没有一项创新能够或将会在一夜之间改变一切。例如,考虑一下互联网:直到工程师构建了像 Web 浏览器和电子邮件客户端这样的补充工具,它的全部功能才得以释放。

现在也是如此。边缘计算、游牧应用程序、AI 以及为它们提供支持的分布式基础设施正在弥合阻碍或阻止基于边缘的网络充分发挥其潜力的差距。总之,这些渐进式的改进将迎来下一代实用的 AI 应用程序和开发人员、管理者和企业一直在等待的“智能”系统。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注