Skip to main content

Environment and version management

开发、测试环境管理

应用开发过程中,同一个业务系统开发者可能需要重复多次的进行开发环境搭建。比如以下几类情况:

  • 多个新功能在不同的分支进行同时迭代,那么不同的分支代码需要独立的部署;
  • 团队中多个开发者进行开发,每个开发者都需要自己独立的一套开发环境;
  • 开发环境应用开发完成,希望快速部署到测试环境或预发布环境;
  • 生产环境灰度发布,希望快速部署指定组件使用指定的源代码版本;

遇到以上的情况,如果应用只有一个组件,或许从头开始创建并不复杂。那如果应用包括 5 个甚至更多组件的时候呢,创建过程将耗费大量时间且是在做重复的事情。这个时候基于已经部署好的应用直接进行复制则可有效解决效率问题。

前提条件

  1. 准备一个部署好的应用,可以包括使用源码、镜像创建的多个组件。
  2. 准备至少两个团队,验证跨团队应用复制。
  3. 组件对应的源码可以准备多个分支或者镜像可以准备多个 Tag,验证复制时便捷修改构建源版本。

操作流程

  1. 进入 应用视图 -> 总览拓扑 页面,点击右上方 快速复制 按钮;
  2. 弹窗中上方区域显示复制的目标应用,默认是当前应用,可以根据需求选择不同的团队或应用,也可以直接在指定团队中创建新的应用。
  3. 弹窗中下方区域显示当前应用的所有组件信息及其构建源信息,默认选中所有组件进行复制,可根据需要选择部分组件。且可根据需要更改组件的构建源版本,比如代码分支或镜像的 Tag。
  4. 点击确定则开始进行复制,复制完成后自己构建并启动所有复制的组件,页面跳转到目标应用中。

了解原理

应用模型的关键性体现

Rainbond 中默认基于应用模型对各类型软件进行抽象管理,因此复制其实就是模型属性的复制,可以保障复制出来的组件与源组件属性保持一致。这再一次说明了一点,在 Rainbond 中部署组件的过程其实是在组装应用模型的过程,一旦部署完成即完成了业务模型的定义。

组件复制时依赖关系的处理

组件之间目前有两个属性具有关联性,包括组件依赖和存储依赖。复制组件时会存在两种情况,组件和依赖的组件双方一起被复制和只有依赖方被复制。若是双方都同时被复制,那么它们之间的依赖关系将保持,在新的组件双方之间进行建立,不管是否跨团队复制。若只有依赖方被复制,将会出现两种处理模式。复制的目标应用在当前团队下,则复制出的新组件依然依赖源依赖的组件,若复制的目标应用不在当前团队,那么依赖关系在复制时进行解除。

版本管理​

组件的每一次构建都会根据任务进行时的时间生成组件版本号,如果是由源码创建的组件,每个版本记录对应的源码提交 Commit 信息,方便开发者对应检查代码。 在组件总览页面中显示当前运行的版本信息,点击版本信息下发的入口即可进入组件版本列表查询页面。Rainbond 默认保留 30 天内版本记录,历史版本自动进行清理动作。

组件版本主要包括运行镜像版本,目前组件属性暂不支持版本化控制。

组件版本回滚

进入 组件总览页面 -> 点击查看更多版本 -> 进入构建版本历史

  • 编辑:给版本打上标签
  • 日志:查看已构建的版本日志
  • 回滚:选择回滚到哪个版本
  • 删除:删除此次版本记录,删除后不可恢复。