From 0232be9ba9079a649efbc270a209f7f48f80b3fb Mon Sep 17 00:00:00 2001 From: ethan-liu Date: Sun, 23 Jul 2023 08:57:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9F=BA=E6=9C=AC=E6=A6=82?= =?UTF-8?q?=E5=BF=B5=E7=AB=A0=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vitepress/config.js | 3 ++ guide/concepts.md | 71 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 guide/concepts.md diff --git a/.vitepress/config.js b/.vitepress/config.js index 5ee5127..df7d838 100644 --- a/.vitepress/config.js +++ b/.vitepress/config.js @@ -65,6 +65,9 @@ module.exports = { { text: '如何使用', children: [{ + text: '基本概念', + link: '/guide/concepts', + },{ text: '系统配置', link: '/guide/system-setting', },{ diff --git a/guide/concepts.md b/guide/concepts.md new file mode 100644 index 0000000..6640f3e --- /dev/null +++ b/guide/concepts.md @@ -0,0 +1,71 @@ +# 基本概念 + +本章节介绍**建木**的一些基本概念,有助于大家更好的使用**建木**。 + +## 项目 + +项目从功能组件角度可以理解为是聚合了其他核心功能组件的一个聚合体。 + +从用户的使用角度看,一切开始于项目。使用**建木**从新建项目开始。 + +## 流程定义 + +当我们使用**建木**提供的图形化界面或者代码方式,定义和描述了一个具体的工作流程之后保存的就是一份流程定义。 + +**建木**当前提供的流程定义有两种类型,管道(Pipeline)和流程(Workflow)。 + +两者的主要区别是只有流程(Workflow)才支持并发、循环和内置的条件网关。 + +管道(Pipeline)只是流程(Workflow)的一个简化版本,只支持使用节点串行编排。 + +**注意1:** 当前开源版本的图形化编辑器只支持管道(Pipeline)形式的流程编辑。 + +**注意2:** 流程定义自创建后每次修改都将产生一个新的版本。项目负责聚合所有的流程定义版本。 + +## 流程实例 + +**建木**的流程实例是指在**建木**系统中基于流程定义创建的具体流程执行的实例。 + +它是流程定义的具体执行过程。当创建一个流程定义后,可以根据该定义启动多个流程实例。 + +每个流程实例都有自己的运行状态和执行日志。 + +## 节点 + +节点是组成流程的具体步骤,它代表了构成整个流程的基本单位,每个节点都有其特定的功能和作用。 + +**建木**的节点分为三类,一类是在流程(Workflow)中可以使用的内置网关节点,如条件网关等;另一类是Shell类型的节点,可以使用指定的OCI镜像运行定义的Shell命令;最后一类节点是发布在[建木Hub](https://jianmuhub.com)上的节点。此类节点本质上也是Shell节点,只是提供了封装的节点定义与脚本,方便用户开箱即用。 + +当前除了内置的网关外,**建木**的节点都运行在容器环境中(这点区别于Jenkins)。这可以保证环境的隔离性和一定程度上的不可变性。 + +每个节点都可以拥有输入和输出参数,Shell节点除外,Shell节点前不支持输出参数。 + +输入参数可以接收其他节点传递的数据,输出参数可以将处理结果传递给其他节点。它们之间可以通过参数的传递和处理来完成具体的操作。 + +**建木**的节点可以执行各种任务,比如代码构建、测试、部署、通知、数据库操作等。 + +## 触发器 + +**建木**的触发器是用于启动流程执行的条件或事件。它可以根据时间、外部操作、数据更新等不同的触发条件来自动触发相应的流程执行。 + +在**建木**中,触发器可以是时间触发器、Webhook触发器等。具体来说: + +时间触发器:可以设定每天、每周的特定时间点,或者设定定时间隔,来触发流程的执行。 + +Webhook触发器:可以通过向指定的URL发送HTTP请求来触发流程的执行。常见的应用场景是与外部系统进行集成,比如接收外部系统的数据更新通知后,自动进行相关的处理操作。 + +触发器是**建木**中流程执行的入口,它能够根据设定的条件来自动启动流程,实现流程的自动化和持续交付。 + +## 参数与表达式 + +**建木**中包含的参数类型如下:触发器参数、流程全局参数、节点的输入、输出参数。 + +**建木**也提供了自己的表达式语法,支持使用上述不同类型的参数做一些简单运算。 + +## Worker + +**建木**使用了Server-Worker架构。 + +当你在**建木**中手工或使用触发器启动了一个流程实例后,流程中的节点将根据定义进行参数计算和填充并创建任务。 + +任务将分配给相应的Worker去实际执行。Worker负责任务的启动、停止、执行结果与日志的收集。 -- Gitee