Rainbond 是一个云原生应用管理平台,使用简单,不需要懂容器、Kubernetes和底层复杂技术,支持管理多个Kubernetes集群,和管理企业应用全生命周期。遵循 「以应用为中心」 的设计理念,统一封装容器、Kubernetes和底层基础设施相关技术,让使用者专注于业务本身, 避免在业务以外技术上花费大量学习和管理精力。同时,Rainbond 深度整合应用开发、微服务架构、应用交付、应用运维、资源管理,管理高度自动化,实现统一管理所有应用、所有基础设施和所有IT流程。

一、开发平台

Rainbond 作为开发平台,自身的一些功能亮点可以使开发者关注于业务代码,无需关注应用部署。

1.1 源码一键部署

源码一键部署,只需填写代码仓库地址,Rainbond 会自动识别项目语言,让传统应用不需要改动或少量改动就能快速变成云原生应用。

识别策略:Java 项目根目录存在 Pom.xml,其他语言类似。

支持多种语言,例如:Java、Python、PHP、.NetCore、Go、NodeJS、Dockerfile等。

1.2 微服务编排

Rainbond 支持多种 Service Mesh,例如:内置的 Service Mesh、基于 Istio 的 Service Mesh。在 Rainbond 拓扑图通过拖拉拽即可实现微服务编排。

服务之间通过 127.0.0.1:8080 访问,例如:A 服务依赖 B,A 服务会向 B 服务 注入IP:PORT 127.0.0.1:8080

1.3 应用复制

多套环境搭建一直是比较头疼的事情,在 Rainbond 上可以通过 应用快速复制 功能,把我们在 Rainbond 上搭建好的环境,很轻松的一键式复制出多套环境 1 -> N。应用复制会将已经配置的 环境变量 配置文件 依赖关系 等完全复制。

1.4 应用、组件管理

Rainbond 支持对应用、组件的全生命周期管理。包含 启停、重启、滚动更新、版本回滚等。

  • 关闭组件、应用是 Rainbond 的一个亮点,当我们的应用或某个服务暂时不使用时,可以关闭该服务或应用,将资源释放,需要时一键启动即可。
  • Rainbond 支持对单个组件进行版本回滚,当某个服务上线出现问题时,一键回滚将服务恢复正常。

日志收集:Rainbond 会收集每个服务的日志并展示在组件视图内,方便用户排查定位问题,并默认存储7天内的日志。

组件伸缩:一键调整组件的 CPU、内存,也可设置自动伸缩策略。

环境配置:通过图形化界面配置组件的 环境变量 配置文件,也可将其他组件的配置文件共享到该组件中。

存储:添加组件的 持久化存储,Rainbond 会自动创建 PVC PV 。

1.5 网关策略

Rainbond 应用网关只需简单的配置即可一键开启对外访问策略,Rainbond 会自动创建 Service Ingress ,服务对外访问更加简单。同时也可以一键开启 TCP 访问策略。

1.6 应用配置组

应用配置组是将相同的环境变量生效到多个组件中,这对于多个服务的环境变量相同很有帮助,避免重复性操作。

二、交付平台

Rainbond 也可以作为交付平台,Rainbond 的 RAM 应用模型配合 Rainbond 内置组件库很适用于应用交付,这对于 ToB 企业非常友好。

Rainbond 应用模版是由多个版本组成,可以安装应用模版的任意版本,同时也支持基于应用模板的升级、回滚。

2.1 应用发布

应用发布是将多个服务组成的应用一键发布到 Rainbond 内置的组件库,应用发布会将应用内所有的 镜像 环境变量 配置文件 依赖关系 等一起发布打包。

2.2 导出应用

应用导出是将我们发布到内部组件库的应用一键导出一个应用包,这个应用包我们可以在另外一套 Rainbond 环境中导入,实现应用交付。同时也支持 DockerComposeApp规范,这适用于只安装了 DockerCompose 的环境。

三、快速使用

将以 Java + Mysql 作为示例应用。

Java Git 地址:https://gitee.com/rainbond/java-maven-demo.git

Mysql 选择基于开源应用商店安装。

3.1 安装 Rainbond

安装单机体验版,这适合快速了解 Rainbond 的用户,采用 Docker In Docker 方式。

# 安装 Docker
$ curl sh.rainbond.com/install_docker | bash

# 设置 EIP
$ export EIP=<你的IP地址>

# 启动 Rainbond
$ docker run --privileged -d -p 7070:7070 -p 80:80 -p 443:443 -p 6060:6060 -p 8443:8443 \
--name=rainbond-allinone --restart=on-failure \
-v ~/.ssh:/root/.ssh \
-v ~/rainbonddata:/app/data \
-v /opt/rainbond:/opt/rainbond \
-v ~/dockerdata:/var/lib/docker \
-e ENABLE_CLUSTER=true \
-e EIP=$EIP \
registry.cn-hangzhou.aliyuncs.com/goodrain/rainbond:v5.7.1-dind-allinone \
&& docker logs -f rainbond-allinone

3.2 Java 部署

❝ 该服务是标准的 Spring Boot 2.1.2❞

  1. 在团队视图选择 基于源码创建组件 -> 填写相关信息以及 Git 地址。

  • 确认创建,Rainbond 会识别项目代码语言类型,片刻后识别代码语言为 Java-maven ,创建组件即可。
  • 整个过程 Rainbond 将获取代码、打 Jar 包、构建镜像,无需人为干预。
  • 构建完成后,进入到 组件内 -> 端口,打开对外服务,访问自动生成的域名即可访问到服务页面。

3.3 Mysql 部署

Rainbond 开源应用商店是由 Rainbond 提供的在线商店,商店内聚集了各个中间件、开源软件等,供大家一键安装,快速体验。

通过开源应用商店一键部署 Mysql

  • 在团队视图选择 基于应用市场创建组件 -> 搜索 Mysql -> 安装。

3.4 服务编排

  1. 在应用视图内切换到 编排模式 ,将Java 连接到 Mysql 并更新 Java 组件。
  2. 访问 Java 组件,切换到 Mysql示例 (域名/mysql.html)即可看到 Mysql 的连接信息,这就代表 Java 服务正常连接到 Mysql 了。

3.5 应用发布

  1. 进入发布页面,发布到组件库,创建 应用模版 ,填写版本号等其他信息。
  2. 编辑发布组件信息 (可选)
  3. 提交发布。

3.6 应用安装

发布到内部组件库的应用我们可以导出应用包,也可以在当前集群 基于应用市场安装

  1. 在团队视图内新增 基于应用市场安装,一键安装刚刚发布的应用。

到这里就介绍完了 Rainbond 的基础使用,当然 Rainbond 还有更多的功能没有介绍,可以查看官方文档 https://www.rainbond.com/docs/ 了解更多相关信息。

❝ Github 仓库: https://github.com/goodrain/rainbond


参考链接:https://www.zhihu.com/question/510869808/answer/2597203869
Logo

长江两岸老火锅,共聚山城开发者!We Want You!

更多推荐