建木在 Rainbond 上使用实践
建木 是一个面向 DevOps 领域的极易扩展的开源无代码(图形化)/低代码(GitOps)工具,可以帮助用户轻松编排各种DevOps流程并分发到不同平台执行。
建木的图形化编排提供了多个节点,节点可以定义该步骤要执行的操作,用户可通过多个节点自由组合流水线。Rainbond 社区参与了建木节点的开发并贡献了 Rainbond组件创建与持续部署 节点。用户可使用该节点在 Rainbond 中自动创建组件和持续部署组件。
建木应用的部署则可以通过 Rainbond 开源应用商店一键安装,使建木应用的部署更简单,同时也可以作为应用插件扩展 Rainbond 构建体系。
下图是最终要实现的效果,也是建木的图形化流水线配置,本文将以下图的流程为例进行介绍:
- 克隆项目源代码
- 使用 Maven 构建项目
- 构建 Docker 镜像
- 在 Rainbond 上自动创建组件并部署
部署 Rainbond 与建木
Rainbond 部署
Rainbond 是一个云原生应用管理平台,使用简单,不需要懂容器、Kubernetes和底层复杂技术,支持管理多个Kubernetes集群,和管理企业应用全生命周期。
可参阅 基于主机安装Rainbond 文档进行安装。
建木部署
通过 Rainbond 开源应用商店一键安装建木应用,在 平台管理 -> 应用市场 -> 开源应用商店 中搜索 建木
,进行安装。
安装完成后,建木应用拓扑图如下,可通过 Rainbond 默认提供的域名访问建木 UI,默认用户密码 admin/123456
同时也可以在 平台管理 -> 扩展 -> 插件 中看到建木应用插件的定义。
建木使用
将通过一个 Java SpringBoot Demo 项目进行演示,项目地址:https://gitee.com/zhangbigqi/java-maven-demo
配置图形化流水线
访问建木UI,进入图形项目。
1.添加 git clone
节点并配置 git 地址。
2.添加 maven构建
节点并配置 workspace,其他都默认。
3.搜索 rainbond
,添加 构建docker镜像-rainbond
节点,并配置。
- 配置 docker 用户和密码,用于推送镜像。需要在建木 首页 -> 密钥管理 中添加。
- 配置镜像名称。
- 指定 registry 地址,用于推送镜像。
- 配置执行构建命令的目录,选择
git clone目录
。
4.搜索 rainbond
,添加 rainbond组件创建与部署
节点,并配置。
- Rainbond URL: Rainbond 的访问地址,例如:http://192.168.1.1:7070
- Rainbond Token: 在
Rainbond 控制台 -> 个人中心 -> 访问令牌
中生成 Token。 - Rainbond 团队ID: 例如进入到开发团队下,此时的 URL 为 http://192.168.1.1:7070/#/team/e2h5j3d8/region/rainbond/index,
e2h5j3d8
就是团队ID。 - Rainbond 集群ID: 例如进入到开发团队下,此时的 URL 为 http://192.168.1.1:7070/#/team/e2h5j3d8/region/rainbond/index,
rainbond
就是集群ID。 - Rainbond 应用ID: 例如进入到开发团队的测试应用下,此时的 URL 为 http://192.168.1.1:7070/#/team/e2h5j3d8/region/rainbond/apps/5,
5
就是应用ID。 - 镜像地址: 选择上一步的
镜像名称:镜像Tag
。 - 组件名称: 部署在 Rainbond 上的组件名称,例如:
java-test
。
运行图形化流水线
保存流水线配置并触发流水线执行,等待流水线执行完毕。
流水线执行完毕后,进入 Rainbond 的测试应用内,可看到组件成功创建。然后进入组件内添加 5000
端口并打开对外服务进行访问,验证服务是否正常。
最后
当然还有更高级的玩法,建木支持定义 Workflow,Workflow 支持节点并行、串行等等,但只能通过代码项目编辑 DSL 定义 Workflow。
建木在 Rainbond 上使用实践的更多相关文章
- 分布式链路追踪Jaeger + 微服务Pig在Rainbond上的实践分享
随着微服务架构的流行,客户端发起的一次请求可能需要涉及到多个或 N 个服务,致使我们对服务之间的监控和排查变得更加复杂. 举个例子: 某条业务线的某个接口调用服务端时快时慢,这时就需要排查各个服务的日 ...
- 微服务性能分析|Pyroscope 在 Rainbond 上的实践分享
随着微服务体系在生产环境落地,也会伴随着一些问题出现,比如流量过大造成某个微服务应用程序的性能瓶颈.CPU利用率高.或内存泄漏等问题.要找到问题的根本原因,我们通常都会通过日志.进程再结合代码去判断根 ...
- 干货分享!JAVA诊断工具Arthas在Rainbond上实践~
别再担心线上 Java 业务出问题怎么办了,Arthas 帮助你解决以下常见问题: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 ...
- 使用 Nocalhost 开发 Rainbond 上的微服务应用
本文将介绍如何使用 Nocalhost 快速开发 Rainbond 上的微服务应用的开发流程以及实践操作步骤. Nocalhost 可以直接在 Kubernetes 中开发应用,Rainbond 可以 ...
- 10分钟在 Rainbond 上部署 mall 电商项目
很多小伙伴在学习 mall 电商项目时,都会在部署上折腾许久,虽然目前已经提供了很多种部署方式,比如 在 Linux 上部署 mall .使用 Docker 或 DockerCompose 部署 ma ...
- 软件架构自学笔记-- 转载“虎牙在全球 DNS 秒级生效上的实践”
虎牙在全球 DNS 秒级生效上的实践 这次分享的是全球 DNS 秒级生效在虎牙的实践,以及由此产生的一些思考,整体上,分为以下 5 各部分: 背景介绍: 方案设计和对比: 高可用: 具体实践和落地: ...
- 腾讯云-ASP.NET Core+Mysql+Jexus+CDN上云实践
腾讯云-ASP.NET Core+Mysql+Jexus+CDN上云实践.md 开通腾讯云服务器和Mysql 知识点: ASP.NET Core和 Entity Framework Core的使用 L ...
- zz开源 MNN:淘宝在移动 AI 上的实践
开源 MNN:淘宝在移动 AI 上的实践 陈以鎏(离青) 阅读数:40612019 年 6 月 28 日 随着深度学习的快速发展和端侧设备算力的不断提升,原本在云端执行的推理预测工作正在部分迁 ...
- 虎牙在全球 DNS 秒级生效上的实践 集群内通过 raft 协议同步数据,毫秒级别完成同步。
https://mp.weixin.qq.com/s/9bEiE4QFBpukAfNOYhmusw 虎牙在全球 DNS 秒级生效上的实践 原创: 周健&李志鹏 阿里巴巴中间件 今天
- 使用JMX Exporter监控Rainbond上的Java应用
场景 Prometheus 社区开发了 JMX Exporter 用于导出 JVM 的监控指标,以便使用 Prometheus 来采集监控数据.当您的 Java 应用部署在Rainbond上后 可通过 ...
随机推荐
- vue3 ts vite
npm init vite@latest npm install -D sassnpm i vantnpm i vite-plugin-style-import@1.4.1 -Dvite.config ...
- python使用openpyxl读取合并单元格的值(转)
目录问题:解决思路:问题:假设在test.xlsx的"Sheet1"工作表中,A1:D3区域的值如下:要求给定指定的行.列以及对应的工作表作为参数,能够正确解析合并单元格,获取指定 ...
- c++ 构造名字不足的0补齐
stringstream ss; ss << setfill('0') << setw(10) << i; vstrImageFilenames[i] = strP ...
- lgb文档学习
1.L1和l2损失是什么意思? 相较于MSE,MAE有个优点,那就是MAE对离群值不那么敏感,可以更好地拟合线性,因为MAE计算的是误差y−f(x)的绝对值,对于任意大小的差值,其惩罚都是固定的. 2 ...
- Linux基础知识2
目录和文件管理 linux以目录形式挂载(通过目录访问存储设备)文件系统,目录结构分层的树形结构. 链接:在共享文件和访问它的用户的若干目录项之间建立联系的方法,包括硬链接和软链接两种方式 linux ...
- RocketMQ4.x本地源码部署教程
安装前提条件(推荐) 64bit OS, Linux/Unix/Mac (Windows不兼容)64bit JDK 1.8+; 快速开始 http://rocketmq.apache.org/docs ...
- axis2 WebService 请求参数xml格式
方法定义 public class GetBillInfoService { public String getBillList(String xmlData, String temp ){} 传入接 ...
- day49-数据类型、约束条件
数据类型: 1.整型--默认情况下都是带有符号的, id int(8)-- 如果数字没有超过9位,默认用0填充,如果数字超出8位,有几位存几位 总结:针对整型字段,括号内无需指定宽度,因为它默认的宽度 ...
- 论C语言数组
一维数组 对于一个一维数组a[10]来说 它对储存空间的申请可以看成是这样的 数组名a就代表着首元素a[0]的地址,也很容易看出a+5是元素a[5]的地址. 二维数组 对于一个二维数组a[3] ...
- el-select的正确用法
下拉框应该是大家非常常用的一个组件,表单几乎离不开它,可是用了三年后我突然发现我一直没有正确的使用它..... ElementUI 组件一直让我纠结的地方是 绑定的值对我来说经常需要绑定值的其他字段信 ...