Custom development and continuous iteration for offline environments
离线环境定制开发的痛点
在应用交付给客户后,客户看到效果后会反馈问题,再持续迭代,直到客户满意,过程中需要频繁升级产品。在这种场景下,又会遇到以下问题。
定制化交付迭代效率低
定制化交付场景中,针对客户反馈的问题,如果开发人员在公司定制开发,升级过程复杂,沟通低效。而如果开发人员在客户现场驻场开发,没有好的开发工具和环境,开发效率低,人力投入大;
后期维护难度大
应用交付完成后,后期需要保障应用运行的稳定性,离线环境远程没办法运维,报警没办法发出来,运维难度大;当产品有bug、一些预期内的变更或产品升级都需要出差客户现场,支持的成本比较高。
使用 Rainbond 实现定制开发和持续迭代
定制开发
如下图所示。开发人员在开发环境进行开发,可以通过源码、镜像以及应用市场沉淀的通用模块将业务拼装起来。经过测试人员验证完成后,即可以发布 1.0 版本。借助应用市场的能力,可以将该应用的能力沉淀下来。交付人员导出应用模版,在客户环境导入后。即可在客户环境一键部署起来。Rainbond 为你屏蔽了底层的差异,消除了环境的不一致性,使你的应用与开发测试环境的应用完全一致。这解决了开发人员驻场开发效率低以及后续升级困难的问题。
持续迭代
当应用交付到客户环境后,客户体验后往往会提出一些个性化需求,开发人员得到这些反馈后,只需要在开发环境继续创建新的业务模块D
与原应用进行拼装即可。最后再次发布 2.0 版本到应用市场。交付人员导入到客户环境后,可以由用户来决定什么时候升级。升级时会展示出所有变更,并实现滚动升级。避免了业务中断,同时保证了业务应用的一致性。
其中,Rainbond 的应用模版具备版本控制机制,这意味着在同个应用模版的不同版本之间可以快速的升级与回滚。
对于开发人员而言,在源应用一侧作出需要的变更,无论是代码的改动后构建,还是新加入其他组件,都会在下一次应用模版发布过程中叠加到新版本的应用模版中去。开发人员务必注意发布时定义的版本号,Rainbond 通过它来确定是否进行升级。
对于交付人员而言,只需要将不同版本的应用模版导入到交付环境中,Rainbond 就会自动识别同个应用模版的不同版本,并可以进行一键升级操作。
操作步骤
准备工作
拥有两套 Rainbond 集群,模拟开发环境及交付环境(开发环境为在线环境,交付环境为离线环境)。
已完成应用的第一次交付,可参考微服务架构离线交付。
制作新的应用模版
完成第一次应用交付以后,可以按照客户需求继续在开发环境中开发。如上图所示,增加
业务模块D
,将该业务与原有应用继续拼装,当开发测试完成后,即可再次进行发布。在应用拓扑图页面左侧,选择
发布
,此时发布记录中会展示出发布历史,继续选择发布到组件库
, 即可进入模版设置页面。此时只需要选择之前发布的模版,再输入新的版本号,确认发布即可。各个参数详细说明参考附录1: 模版设置页面参数说明接下来在
平台管理->应用市场->本地组件库
,即可看到发布好的应用模版。点击进入,可以看到该模版下所有版本,如下图所示。
caution
注:仅有企业管理员可以看到平台管理按钮。
导出应用模版
平台管理->应用市场->本地组件库
中,在刚刚发布完成的应用模版最右侧,选择导出应用模版
,你可以选择需要导出的版本,和导出哪种类型的包。这里我们选择应用模型规范
,以及刚刚发布的版本,点击导出
。这个包将包含应用完整的运维特性,用于持续交付和升级。导出完成后,将应用模版下载到本地,保存至U盘/光盘等移动存储设备中,带到离线交付环境中去。
离线环境中升级应用
在已经部署好 Rainbond 的离线环境中,我们先打开
平台管理->应用市场
,选择离线导入
,上传刚刚下载好的应用模版。上传完成后,点击确认导入
。等待导入完成后,会自动跳转回
应用市场
。此时我们回到微服务架构离线交付中已经交付完成,正在运行的应用页面中,在左侧边栏
升级
选项中。可以看到 Rainbond 识别到了最新的版本,而升级操作也是一键触发,非常好用。
caution
注:升级过程中不会变动环境配置类信息,环境变量的值、配置文件的内容、持久化存储需要人为改动才会生效。
一键回滚
- 在升级版本上线后出现异常情况需要回滚时,平台提供了一键回滚功能,在
升级->升级记录
界面选择对应记录点击回滚
按钮即可对升级操作进行回滚。
caution
注:在回滚的过程中,新增组件并不会被删除,如需变更,需要人为操作。