Skip to content

应用

定义容器化和脚本应用,管理版本化发布,并部署到设备组。

概述

应用是可以部署到设备的命名、版本化软件单元。每个应用包含:

  • 类型container(容器)或 script(脚本)
  • 版本:不可变的发布快照,包含规格 JSON
  • 部署:面向设备组的发布活动

应用列表

导航到应用查看租户中的所有应用。

列名:名称、类型、版本数、最新版本、创建日期。

类型(容器/脚本)过滤。

创建应用

  1. 点击 + 创建应用
  2. 输入名称(例如 nginxedge-collector)。
  3. 选择类型:容器或脚本。
  4. 点击创建

版本

版本封装了描述如何运行应用的不可变规格。

创建版本

  1. 打开应用,进入版本标签页。
  2. 点击创建版本
  3. 输入版本字符串(例如 1.0.02024-03-15)。
  4. 使用以下方式填写规格:
    • 表单模式 — 引导式字段(镜像、端口、卷、环境变量等)
    • 原始 JSON — 直接粘贴完整的规格对象
  5. 点击创建

容器规格字段

字段描述
image容器镜像(例如 nginx:latest
ports端口映射(主机:容器)
volumes卷挂载(主机:容器:选项)
env环境变量(KEY=value)
network_modeDocker 网络模式
hostname容器主机名
restart_policyalways / on-failure / unless-stopped / no
memory内存限制(例如 256m1g
cpusCPU 限制(例如 0.52
privileged以特权模式运行容器
cap_add / cap_dropLinux 能力
labelsDocker 标签
entrypoint覆盖容器入口点
cmd覆盖容器命令
working_dir容器内工作目录
user以指定用户运行

脚本规格字段

字段描述
command可执行文件路径
args命令参数
env环境变量
working_dir工作目录
timeout执行超时(例如 30s5m
user以指定用户运行

部署

部署通过发布将特定版本推送到目标组的所有设备。

发起部署

  1. 版本标签页中,点击要部署版本旁的部署
  2. 选择一个设备组
  3. 选择策略
    • 滚动 — 分批更新设备(配置批次大小和失败阈值)
    • 金丝雀 — 先部署到小批量,然后扩展
    • 蓝绿 — 在旧版本旁部署新版本,然后切换流量
  4. 点击部署

发布会自动创建并在应用 → 部署发布中跟踪。

监控部署

部署标签页显示应用的所有部署活动:

  • 状态:运行中 / 已完成 / 失败 / 已取消
  • 进度条(成功 / 失败 / 待处理设备)
  • 链接到底层发布

点击部署行打开详情视图。

取消部署

在部署详情中,点击取消部署。已更新的设备保留新版本;剩余设备不会被更新。

卸载

在部署详情中,点击卸载。这会创建一个新的发布,从目标组的所有设备中移除该应用。

应用影子键

当应用被部署时,后端将设备影子中的 apps.<app-name> 键写入。Agent 的应用协调器读取此键并相应地管理容器或脚本生命周期。

影子期望状态示例:

json
{
  "apps": {
    "nginx": {
      "version": "1.0.0",
      "spec": { "image": "nginx:latest", "ports": ["80:80"] }
    }
  }
}

Umoo — IoT Device Management Platform