1.0.0 • Published 2 years ago
pippy-stepctl v1.0.0
步骤控制器
关键文件
- .breakpoint
- .parameters
- .reports
.artifacts
install.sh
- execute.sh
取舍决策:
stepctl使用什么语言编写
- 方案1,Java
- 优点:开发人员熟悉
- 缺点:开发成本高、运维成本高
- 方案2,Js
- 优点:开发高效、上手迅速、适合云原生
- 缺点:需要安装node
- 方案3,其他
stepctl agent在执行的时候是否自动安装软件
- 方案1,没有安装则安装
- 优点:省了重复安装的带宽和用时
- 缺点:
- 当多任务同时安装相同的软件,会出现文件写冲突
- 不同操作系统的安装逻辑不一致
- 方案2,每次都安装
- 优点:不会出现并发安装导致的问题
- 缺点:
- 每次都需要大量时间、带宽、磁盘空间进行安装
- 不同操作系统的安装逻辑不一致
方案3,提前装好,不自动安装
- 优点:
- 不需要考虑不同系统软件安装的问题
- 不占用运行时的带宽
- 与云原生方式更具有同质性
- 缺点:
- 需要用户提前准备好环境所需的软件安装
- 优点:
方案评价
软件是流水线成功的基础,但是,软件的安装与流水线执行是两个不同领域的问题,软件的安装过程远比软件的执行过程更为复杂和易于出问题,应当进行合理的隔离。
况且,在云原生的情况下,相当于提前准备好了软件。所以,方案3与云原生方式的运行更具有同质性。
此外,方案3可以根据不同节点的软件安装情况设置不同的标签,以此来确保正确的节点执行正确的自动化。
install.sh可以保留用来进行Docker容器化执行的安装脚本。
从整体开发成本上看,如果每个插件都要编写自己的软件安装脚本,会是一个M*N的增长(M种操作系统*N种插件),相当不划算。所以方案3是整体成本最低的方式。
1.0.0
2 years ago