建木项目介绍:无代码/低代码DevOps工具

建木项目介绍:无代码/低代码DevOps工具

【免费下载链接】建木 建木是一个面向DevOps领域的极易扩展的开源无代码(图形化)/低代码(GitOps)工具。可以帮助用户轻松编排各种DevOps流程并分发到不同平台执行。 【免费下载链接】建木 项目地址: https://gitcode.com/jianmu-dev/jianmu

建木(Jianmu)是一个面向DevOps领域的开源无代码/低代码工具,旨在通过图形化界面和GitOps方式简化DevOps流程的编排与执行。文章将从核心功能、技术架构、实现方式及典型应用场景四个方面展开,展示其如何降低DevOps门槛并提升自动化效率。

建木项目的核心功能与定位

建木(Jianmu)是一个面向DevOps领域的开源无代码/低代码工具,旨在通过图形化界面和GitOps方式简化DevOps流程的编排与执行。其核心功能与定位围绕以下几个方面展开:

1. 无代码/低代码编排

建木通过图形化界面(无代码)和GitOps(低代码)两种方式,帮助用户快速构建和部署复杂的DevOps流程。用户无需编写大量脚本或代码,即可完成流程的编排。

mermaid

2. 多平台执行

建木支持将编排好的流程分发到不同的执行平台(如Kubernetes、Docker等),实现跨平台的自动化执行。这种灵活性使其适用于多样化的DevOps场景。

执行平台支持情况
Kubernetes
Docker
本地服务器

3. 事件驱动架构

建木采用事件驱动架构(EDA),通过事件的发布与订阅实现流程的动态响应。例如,任务状态变更、流程启动等事件均可触发后续操作。

mermaid

4. 丰富的节点类型

建木提供了多种节点类型(如任务节点、网关节点、循环节点等),支持复杂的流程逻辑。用户可以通过组合这些节点实现高度定制化的流程。

// 示例:定义一个异步任务节点
public class AsyncTask {
    private String name;
    private String ref;
    private Set<TaskParameter> taskParameters;
    // 其他属性和方法
}

5. 参数化与动态配置

支持全局参数和任务参数的动态配置,用户可以通过表达式语言(如EL)实现参数的动态绑定和计算。

mermaid

6. 扩展性与集成能力

建木通过模块化设计支持功能扩展,用户可以自定义节点类型或集成第三方工具(如Jenkins、GitHub Actions等)。

7. 核心定位

建木的核心定位是降低DevOps门槛,通过无代码/低代码的方式让非开发人员也能参与DevOps流程的设计与执行,同时为开发人员提供高度灵活的扩展能力。

通过以上功能与定位,建木成为一款适用于企业级DevOps场景的高效工具,兼顾易用性与灵活性。

项目架构与技术栈分析

建木(Jianmu)是一个面向DevOps领域的无代码/低代码工具,其架构设计和技术栈选择充分体现了现代DevOps工具的高效性和可扩展性。以下是对其架构和技术的详细分析。

技术栈概览

建木项目采用了前后端分离的架构,后端基于Java生态,前端基于Vue3和TypeScript。以下是主要技术栈的总结:

技术领域主要技术栈
后端Java 11+, Spring Boot, Spring Security, JWT, MySQL 8+, Docker, Kubernetes
前端Vue3, TypeScript 4+, Vite, Pinia, Element Plus
DevOps工具链Docker Compose, Kubernetes, GitOps
数据库MySQL 8+
认证与授权JWT, OAuth2

后端架构分析

后端采用模块化设计,核心模块包括:

  1. API模块:提供RESTful接口,处理前端请求。
  2. Workflow Core:流程引擎核心库,负责流程编排与流转。
  3. Worker模块:任务执行器,支持分布式任务调度。
  4. Event模块:基于Spring事件机制,处理异步任务和流程事件。
  5. Security模块:集成Spring Security和JWT,实现认证与授权。
核心组件
  • 流程引擎:支持图形化编排和GitOps两种方式定义流程。
  • 任务调度:支持异步任务、定时任务和手动触发任务。
  • 事件驱动:通过Spring事件机制实现任务状态变更和流程流转。
  • 认证与授权:基于JWT和OAuth2,支持多租户和第三方登录。
代码示例

以下是一个典型的流程事件处理器实现:

@Async
@EventListener
public void handleTaskRunningEvent(TaskRunningEvent event) {
    // 处理任务运行事件
    log.info("Task {} is running", event.getTaskId());
}

前端架构分析

前端基于Vue3和TypeScript,采用模块化设计,主要功能模块包括:

  1. 流程编排:图形化拖拽界面,支持节点定义和流程设计。
  2. 任务管理:展示任务状态、日志和结果。
  3. 项目管理:支持项目创建、同步和触发。
  4. 权限管理:基于角色的访问控制(RBAC)。
核心组件
  • Vue3:提供响应式UI和组件化开发。
  • Pinia:状态管理库,替代Vuex。
  • Vite:构建工具,支持快速开发和热更新。
  • Element Plus:UI组件库,提供丰富的交互组件。
代码示例

以下是一个简单的任务状态展示组件:

<template>
  <el-tag :type="getStatusType(task.status)">
    {{ task.status }}
  </el-tag>
</template>

<script lang="ts">
import { defineComponent } from 'vue';

export default defineComponent({
  props: {
    task: {
      type: Object,
      required: true,
    },
  },
  methods: {
    getStatusType(status: string) {
      switch (status) {
        case 'RUNNING': return 'warning';
        case 'SUCCESS': return 'success';
        case 'FAILED': return 'danger';
        default: return 'info';
      }
    },
  },
});
</script>

架构图

以下是建木项目的简化架构图:

mermaid

总结

建木的技术栈和架构设计充分体现了现代DevOps工具的需求:

  • 模块化:前后端分离,功能模块清晰。
  • 可扩展:支持插件化和分布式部署。
  • 高效性:基于事件驱动的异步任务处理。
  • 易用性:提供无代码和低代码两种方式,满足不同用户需求。

无代码与低代码的实现方式

建木项目通过无代码(图形化)和低代码(GitOps)两种方式,为用户提供了灵活且高效的DevOps流程编排能力。以下将详细介绍这两种实现方式的核心机制和技术细节。

无代码(图形化)实现方式

无代码方式通过图形化界面(GUI)让用户通过拖拽和配置完成复杂的DevOps流程编排。这种方式极大地降低了技术门槛,适合非开发人员快速上手。

核心组件
  1. 工作流设计器

    • 基于Vue3和TypeScript实现,支持拖拽式节点编排。
    • 内置多种节点类型(如任务、触发器、条件分支等),用户可通过可视化界面完成流程设计。

    mermaid

  2. 节点配置

    • 每个节点支持动态表单配置,用户无需编写代码即可完成参数设置。
    • 配置数据以JSON格式存储,便于后续解析和执行。
    {
        "type": "async-task",
        "name": "部署应用",
        "params": {
            "image": "nginx:latest",
            "ports": ["80:80"]
        }
    }
    
  3. 实时预览与验证

    • 工作流设计器支持实时预览和校验,确保流程逻辑正确。
    • 内置校验规则,如节点依赖关系、参数合法性等。
技术实现
  • 前端框架:Vue3 + TypeScript,提供响应式UI和高效渲染。
  • 图形库:基于X6和G6实现节点拖拽和连线功能。
  • 状态管理:Pinia管理全局状态,确保配置数据的同步更新。

低代码(GitOps)实现方式

低代码方式通过GitOps模式,允许用户通过编写YAML或JSON文件定义DevOps流程,适合开发人员和高级用户。

核心特性
  1. 流程定义文件

    • 用户通过YAML或JSON文件定义工作流,提交到Git仓库后自动触发执行。
    • 文件结构清晰,支持版本控制和协作。
    name: CI Pipeline
    triggers:
      - type: git_push
        branch: main
    tasks:
      - name: Build
        type: docker_build
        params:
          image: my-app
      - name: Deploy
        type: k8s_deploy
        params:
          namespace: production
    
  2. Git集成

    • 支持与Git平台(如Gitee、GitHub)无缝集成,自动监听代码变更。
    • 通过Webhook触发流程执行,实现真正的GitOps。
  3. 脚本扩展

    • 用户可通过自定义脚本扩展功能,满足特定需求。
    • 脚本支持多种语言(如Shell、Python),灵活性强。
技术实现
  • 后端服务:基于Spring Boot实现,处理Git事件和流程调度。
  • Git Hook:通过Webhook监听代码变更,触发流程执行。
  • 执行引擎:内置任务调度器,支持并行和串行执行。

对比与适用场景

特性无代码(图形化)低代码(GitOps)
技术门槛
灵活性中等
适用人群非开发人员开发人员
适用场景简单流程快速搭建复杂流程定制化

通过无代码和低代码的结合,建木项目为用户提供了全面的DevOps解决方案,无论是快速搭建还是深度定制,都能满足需求。

典型应用场景与案例

建木作为一个无代码/低代码的DevOps工具,其设计初衷是为了简化复杂的DevOps流程编排和执行。以下是一些典型的应用场景和案例,展示了建木在实际项目中的灵活性和强大功能。

1. 持续集成与持续部署(CI/CD)

建木可以轻松实现从代码提交到部署的自动化流程,特别适合需要频繁发布的项目。通过图形化界面或GitOps方式,用户可以快速定义构建、测试和部署的流程。

示例流程:

mermaid

关键功能:
  • 触发器支持:支持Git提交、定时任务、Webhook等多种触发方式。
  • 多环境部署:支持测试、预发布、生产等多环境的自动化部署。
  • 并行任务:可以并行执行多个任务,提高效率。

2. 数据流水线处理

建木可以用于构建复杂的数据处理流水线,例如ETL(提取、转换、加载)流程。用户可以通过图形化界面定义数据来源、转换逻辑和目标存储。

示例流程:

mermaid

关键功能:
  • 灵活的数据源支持:支持数据库、API、文件等多种数据源。
  • 自定义转换逻辑:支持通过脚本或内置节点定义数据转换逻辑。
  • 错误处理:支持失败重试和告警通知。

3. 自动化测试流水线

建木可以用于构建自动化测试流水线,包括单元测试、集成测试和端到端测试。测试结果可以自动汇总并通知相关人员。

示例流程:

mermaid

关键功能:
  • 多测试框架支持:支持JUnit、TestNG、Selenium等多种测试框架。
  • 测试报告生成:自动生成测试报告并存储。
  • 失败重试:支持失败测试的自动重试。

4. 定时任务调度

建木支持定时任务的调度和执行,适合需要定期执行的任务,如数据备份、日志清理等。

示例流程:

mermaid

关键功能:
  • 灵活的定时配置:支持Cron表达式定义复杂的定时规则。
  • 任务依赖:支持任务之间的依赖关系定义。
  • 执行日志:记录任务执行日志,便于排查问题。

5. 多平台任务分发

建木支持将任务分发到不同的执行平台,例如Kubernetes集群、Docker容器或物理服务器。

示例流程:

mermaid

关键功能:
  • 多平台支持:支持Kubernetes、Docker、SSH等多种执行方式。
  • 资源管理:支持动态分配和释放资源。
  • 任务监控:实时监控任务执行状态。

通过以上案例可以看出,建木在多个场景下都能提供高效、灵活的解决方案,帮助用户简化DevOps流程,提高开发和运维效率。

总结

建木项目通过无代码/低代码设计、多平台执行能力及事件驱动架构,为CI/CD、数据流水线、自动化测试等场景提供高效解决方案。其模块化技术栈和图形化/GitOps双模式,兼顾了易用性与灵活性,成为企业级DevOps的理想工具。

【免费下载链接】建木 建木是一个面向DevOps领域的极易扩展的开源无代码(图形化)/低代码(GitOps)工具。可以帮助用户轻松编排各种DevOps流程并分发到不同平台执行。 【免费下载链接】建木 项目地址: https://gitcode.com/jianmu-dev/jianmu

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值