HyperAIHyperAI

Command Palette

Search for a command to run...

1 年前

面向分布式应用的灵活且安全的部署框架

Alan Dearle Graham Kirby Andrew McCarthy Juan Carlos Diaz y Carballo

一键部署 QwQ-32B-AWQ

20 小时 RTX 5090 算力资源,仅 $1 (原价 $7)
跳转至 Notebook

摘要

本文描述了一个已实现的系统,旨在支持提供分布式服务的应用程序的部署,这些应用程序由多个分布式组件组成。该目标通过创建高层级的放置和拓扑描述来实现,这些描述驱动工具将运行在多个主机上的组件组成的应用程序进行部署。系统通过提供对主机特定属性的抽象来解决异构性问题,从而生成一个同质化的运行时环境,组件可在此环境中部署。该运行时环境提供了安全的绑定机制,允许已部署的组件与其所在主机上存储的数据和服务进行绑定。

一句话总结

本文介绍了一种已实现的分布式应用部署框架。该框架利用高层拓扑描述驱动多主机上的组件部署,将主机特定属性抽象为统一的运行时环境,并为组件访问主机驻留的数据与服务提供安全绑定机制。

核心贡献

  • 引入了一套已实现的系统,可跨异构主机自动化部署包含多个组件的分布式应用。
  • 利用高层放置与拓扑描述驱动部署工具,同时抽象主机特定属性以生成统一的运行时环境。
  • 提供安全绑定机制,允许已部署组件连接至其各自执行主机上存储的数据与服务。

引言

在异构基础设施上部署分布式应用是现代云与边缘计算的基础需求,然而大规模管理这些部署仍然极具挑战。传统方法通常依赖手动编写的低级配置脚本,难以有效抽象主机间的差异,从而导致安全服务绑定与运行时维护变得复杂。本文采用高层放置与拓扑描述,实现了跨多主机的分布式组件自动化配置。该框架将基础设施的异构性标准化为统一的运行时环境,并引入安全绑定机制,以安全连接已部署服务与本地数据存储。该方法显著降低了运维开销,并为未来的自适应演进提供了结构化路径。

方法

本文采用 Cingal 计算模型作为部署框架的基础,该模型支持分布式应用的动态与安全执行。在该模型的核心中,瘦服务器(thin server)作为轻量级且安全的主机运行,用于补充传统计算节点。瘦服务器的主要职责是代表远程客户端接收、认证并执行 bundle(代码与数据的自包含单元)。如框架示意图所示,传统主机上的操作系统进程通过 TCP/IP 通道向瘦服务器发送 bundle 以启动执行。bundle 到达后,由 fire daemon 进行处理,该进程使用存储在有效实体仓库(VER)中的数字签名和证书对其进行认证。认证通过后,fire daemon 将实例化一台新 machine(瘦服务器上的专用执行环境),该环境负责运行 bundle 中的代码并与 machine 基础设施进行交互。该基础设施提供存储、绑定及 machine 间通信等核心服务,并通过基于 capability 的防护机制实施安全控制。

该框架的架构旨在支持统一的运行时环境,并抽象掉主机特定的细节。这一目标通过 machine 基础设施实现,该基础设施包含内容寻址存储、符号名称绑定器(sBinder 用于数据,pBinder 用于进程)以及用于访问控制的 capability 系统。作为部署基本单元的 bundle 具备自包含特性,可使用全局唯一标识符(GUID)和数字签名进行签名。如图所示的 bundle 结构示例包含认证元素(含实体标识符与签名)、代码段(指定入口点与实现语言,如 Java)以及数据段(可包含待办列表及其他 payload bundle)。该设计支持部署使用多种编程语言编写的组件,前提是存在相应的运行时支持。

为描述和管理分布式应用的部署,该系统引入了一种基于 XML 的高层描述语言,称为部署描述文档(DDDs)。DDD 提供了应用架构的静态声明式规范,定义了软件组件、其在特定主机上的部署位置以及组件间的互联关系。图中展示了 DDD 的一个示例,该示例明确列出了 bundle(如 Server、Cache)、主机(A、B)、部署分配(如 Server 部署于 A)以及连接关系(如 PrimaryServer 至 CachingServer 的 DownstreamCache)。这种结构化描述使得复杂分布式系统的自动化实现成为可能。

部署过程由部署引擎协调,该引擎以 DDD 为输入,并自动化实现组件在跨网络环境中的部署。该流程包含三个主要阶段:安装、运行与连接。在安装阶段,部署引擎生成 installer bundle 并将其部署至目标瘦服务器,由后者提取并存储组件 bundle 至本地存储。运行阶段涉及部署 runner bundle,该 bundle 从存储中检索已安装的 bundle 并触发执行以创建运行中的 machine。最终的连接阶段通过连接运行组件间的命名通道,组装出完整的应用拓扑。这一目标通过部署 wirer bundle 实现,该 bundle 利用 machine 的 machine channel 与负责管理命名通道的连接管理器进行通信。图中展示了该流程,包括部署引擎启动部署、bundle 安装、组件运行以及两台 machine 之间连接的建立。

该系统通过支持互联拓扑的重新配置,实现已部署应用的动态演进。这一目标通过对命名通道的操作实现,允许组件在无需完全重新部署的情况下断开与重连。连接过程可由部署引擎或组件自身触发,从而实现应用架构的灵活与自主管理。结合组件远程更新能力与基于 capability 的安全模型,该框架确保能够以安全且受控的方式支持分布式服务的持续演进。


用 AI 构建 AI

从创意到上线——通过免费 AI 协同编码、开箱即用的环境和最优惠的 GPU 价格,加速您的 AI 开发。

AI 协同编码
开箱即用的 GPU
最优定价

HyperAI Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供