eclipse hawkbit调研笔记

eclipse hawkbit是一个在IoT场景,用于OTA发布的解决方案,项目地址,国内关于这个项目介绍地还比较少,我做了一些调研,记录于此。

一、名词解释

  • DistributionSet: 表示一次部署过程中,待部署产物的集合。distributionSet是对部署包的进一步抽象,可以包括多个app的发布包,泛指待部署的东西。
  • SoftwareModule: DistributionSet中,某一个待发布app的描述,app + version,相当于每一次发布都会有一个softwareModule.
  • Artifact: SoftwareModule的具体二进制包,描述了具体发布包的文件名、归属的softwareModule、包的MD5/SHA1值。
  • Target: 目标设备,distributionSet的部署实体。
  • Action: 具体在Target上执行的动作
  • Rollout: 部署的流程,定义要部署的DistributionSet、选取部署设备(target)的条件、部署窗口、失败阈值等。部署流程会有状态机(CREATING, READY, PAUSE等)。
  • RolloutGroup/DeploymentGroup: 部署流程支持分批部署,rollout group或deployment group代表一个分批的部署流程。

二、Target状态机

这个状态机,只是Target在“发布流程”中的状态流转图。其中

  • UNKNOWN是从页面上录入的设备的初始状态
  • REGISTERED是指自己注册上来设备的初始状态
  • PENDING: 待执行
  • IN_SYNC: 执行成功
  • ERROR: 执行失败
image.png

三、部署流程(Rollout)管理

数十万设备的大规模物联网场景中的软件更新操作需要做特殊的处理。包括:

  • 通过云上的hawkBit集群的横向扩展来实现技术可伸缩性。
  • 全球Artifact的交付能力。
  • 通过以下方式实现功能可伸缩性:
    • 可以稳定支持存在大量设备的发布流程。
    • 可监控部署进度。
    • 在许多设备出现问题时紧急关闭发布。
  • 报告功能,全面了解每个时间点的部署进度。

部署管理目前支持以下功能:

  • 创建,更新和开始部署流程Rollout。
  • 根据Target filter功能选择Target作为待部署的设备列表。
  • 选择DistributionSet。
  • 将输入的Target自动分批成多个deployment group。

对于Rollout的状态流转图见下方,


image.png

hawkbit的rollout是按照deployment group的粒度分批执行的,其中前一个批次的执行状态,决定了是否继续后续的部署批次。部署流程可以监控到每个分批整个部署流程的进度和状态。在一批部署中,如果超出定义的错误阈值后,本批部署会失败,整个部署流程会变成PAUSED状态暂停。
deployment group的状态机,


image.png

你可能感兴趣的:(eclipse hawkbit调研笔记)