微服务架构离线交付
离线交付的痛点
在传统行业,如政府、能源、军工、公安、工业、交通等行业,为了防止数据泄露和运行安全考虑,一般情况下网络会采取内外网隔离的策略,以防范不必要的风险,毕竟在安全防护方面,网络物理隔离是网络安全防御最有效的手段,而网络隔离在软件交付过程中,对于外部软件开发厂商来说将会带来一系列的交付难题,也增加大量成本投入。例如:
环境网络限制,影响交付效率
在交付过程中不能方便查找资料,网络限制会影响协作工具的使用,有些客户环境甚至不能带手机,会影响解决问题的效率,环境越复杂影响越大;交付完成后,应用需要持续运维,保障运行稳定性和功能持续可用,在网络无法联通的情况下,出任何问题都需要安排人员现场支持,甚至需要安排人员长期驻场。
客户基础设施差异,需要适配过程
在私有化场景,不同客户的安装环境也不一样,有些使用物理服务器,有些使用虚拟机,不同的虚拟机厂商也有差异。操作系统也各有不同,例如常见的操作系统有CentOS/Debian/Ubuntu/Redhat,当前还有很多国产化操作系统。CPU架构也可能不同,有X86、ARM等;因此交付的应用需要很重的适配过程,要么在公司适配,要么在客户现场适配。由于环境差异很大,应用交付完需要完整测试和验证,需要大量的人力和时间投入;
交付人员的技术门槛高
交付人员需要懂底层硬件和网络、操作系统和系统运维,需要懂服务治理、高可用、安全、性能分析、备份恢复、交付开发等。
交付技术发展历程
交付技术大致有以下三个发展阶段:传统应用交付->云原生技术应用交付->面向未来的云原生应用模型交付
。从传统软件包的交付模式,逐渐过渡到以 Docker、Kubernetes 为代表的云原生技术交付阶段。
而未来,一定是以应用为中心的交付模式,在应用级抽象和包装底层复杂的技术,使得应用模型跟底层基础设施完全解耦,根据对接和交付的基础设施不同,自动转换和适配,真正实现一次开发,处处自动化部署。
1. 传统应用交付
2. 云原生技术应用交付
3. 面向未来的云原生应用模型交付
使用 Rainbond 实现微服务架构的离线交付
使用 Rainbond 交付流程如下图所示,当在开发环境开发好不同的微服务架构应用后,经过完整测试验证功能没有问题后。即可以应用模版的形式一键发布至本地应用市场,形成 1.0 版本。接下来可以将其导出完整的 Rainbond 应用模版包。其中包含了复杂微服务架构交付的所有要素。
接下来在客户环境一键导入该应用模版包,通过一键安装即可完成交付。当在客户环境出现问题时,还可以在开发环境修改后,发布 1.1 版本。重复以上流程,用户即可完成应用的一键升级。后续也可以基于该应用模版实现整个应用的回滚。
操作步骤
准备工作
拥有两套 Rainbond 集群,模拟开发环境及交付环境(开发环境为在线环境,交付环境为离线环境)。
在开发环境已有正常运行的应用,可参考快速入门。
制作应用模版
在应用拓扑图页面左侧,选择
发布->发布到组件库
, 即可进入模版设置页面。各个参数详细说明参考附录1: 模版设置页面参数说明新建一个应用模版,可选择发布范围为企业,设定好发布的版本,点击
提交
,接下来将会同步所有组件的镜像,推送到本地镜像仓库中。同步完成后,点击确认发布
,即发布完成。接下来在平台管理->应用市场->本地组件库
,即可看到发布好的应用模版。
caution
注:仅有企业管理员可以看到平台管理按钮。
导出应用模版
平台管理->应用市场->本地组件库
中,在刚刚发布完成的应用模版最右侧,选择导出应用模版
,你可以选择需要导出的版本,和导出哪种类型的包。这里我们选择应用模型规范
,点击导出
。这个包将包含应用完整的运维特性,用于持续交付和升级。导出完成后,将应用模版下载到本地,保存至U盘/光盘等移动存储设备中,带到离线交付环境中去。
离线环境中交付应用
在已经部署好 Rainbond 的离线环境中,我们先打开
平台管理->应用市场
,选择离线导入
,上传刚刚下载好的应用模版。上传完成后,点击确认导入
。等待导入完成后,会自动跳转回
应用市场
。在导入完成的应用模版后,点击安装,即可一键部署该业务系统,该环境业务运行环境与开发环境完全一致,到此完成离线环境下的软件交付。