1.0.0 • Published 2 years ago

pippy-stepctl v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

步骤控制器

关键文件

  • .breakpoint
  • .parameters
  • .reports
  • .artifacts

  • install.sh

  • execute.sh

取舍决策:

stepctl使用什么语言编写

  1. 方案1,Java
    1. 优点:开发人员熟悉
    2. 缺点:开发成本高、运维成本高
  2. 方案2,Js
    1. 优点:开发高效、上手迅速、适合云原生
    2. 缺点:需要安装node
  3. 方案3,其他

stepctl agent在执行的时候是否自动安装软件

  1. 方案1,没有安装则安装
    1. 优点:省了重复安装的带宽和用时
    2. 缺点:
      1. 当多任务同时安装相同的软件,会出现文件写冲突
      2. 不同操作系统的安装逻辑不一致
  2. 方案2,每次都安装
    1. 优点:不会出现并发安装导致的问题
    2. 缺点:
      1. 每次都需要大量时间、带宽、磁盘空间进行安装
      2. 不同操作系统的安装逻辑不一致
  3. 方案3,提前装好,不自动安装

    1. 优点:
      1. 不需要考虑不同系统软件安装的问题
      2. 不占用运行时的带宽
      3. 与云原生方式更具有同质性
    2. 缺点:
      1. 需要用户提前准备好环境所需的软件安装
  4. 方案评价

    1. 软件是流水线成功的基础,但是,软件的安装与流水线执行是两个不同领域的问题,软件的安装过程远比软件的执行过程更为复杂和易于出问题,应当进行合理的隔离。

    2. 况且,在云原生的情况下,相当于提前准备好了软件。所以,方案3与云原生方式的运行更具有同质性。

    3. 此外,方案3可以根据不同节点的软件安装情况设置不同的标签,以此来确保正确的节点执行正确的自动化。

    4. install.sh可以保留用来进行Docker容器化执行的安装脚本。

    5. 从整体开发成本上看,如果每个插件都要编写自己的软件安装脚本,会是一个M*N的增长(M种操作系统*N种插件),相当不划算。所以方案3是整体成本最低的方式。