关于云原生-cloud-native:云原生赋能传统行业软件离线交付
一.离线交付的痛点在传统行业,如政府、能源、军工、公安、工业、交通等行业,为了避免数据泄露和运行平安思考,个别状况下网络会采取内外网隔离的策略,以防备不必要的危险,毕竟在平安防护方面,网络物理隔离是网络安全进攻最无效的伎俩,而网络隔离在软件交付过程中,对于内部软件开发厂商来说将会带来一系列的交付难题,也减少大量老本投入。例如: 1. 现场装置部署和验收测试,效率低下 交付过程中须要将应用程序及依赖的所有资源装置到离线客户环境,而客户环境有可能是物理服务器、虚拟机、公有云及K8s容器等各种环境,加上离线环境网络的限度,就会导致离线环境装置和部署效率低下。因为装置配置过程简约,容易出错,在最终交付环境中须要从新进行验证测试工作,也须要节约很多工夫。如果部署的是微服务架构的利用零碎复杂性更高,工作量还会加倍。 2. 离线环境定制开发和产品升级,老本高 定制开发须要开发人员投入,老本原本就高,在离线环境须要依据客户反馈继续迭代,迭代过程产品一直降级,每降级一次就要走一次装置部署和验证测试过程,老本很高。如果有些工作必须驻场开发,老本更高。 3. 网络不通,无奈近程运维 交付实现后,利用须要继续运维,保障运行稳定性和性能继续可用,在网络无奈联通的状况下,出任何问题都须要安顿人员现场反对,甚至须要安顿人员长期驻场。 二.技术选型上述问题的根本原因是因为,利用零碎的多环境适配、利用装置部署、利用降级、利用运维等操作自动化水平不高,须要大量人员手工操作,所以效率很低,解决问题的重点在解决利用治理的自动化。以后,云原生技术曾经越来越成熟,而云原生技术次要解决的就是利用治理的自动化问题,具体有两种开源实现计划 :1. Rancher+Helm Rancher是一款K8s管理工具,他提供K8s的治理UI,包治理应用Helm。对应离线交付的问题,Rancher能够装置在多种运行环境(物理服务器、虚拟机、公有云),并且提供局部利用自动化运维性能,它能够解决 多环境适配和 利用运维问题,而 利用装置部署和 利用降级问题能够通过Helm包解决。 2. Rainbond+利用模版 Rainbond是“以利用为核心”的利用治理平台,利用模版是Rainbond对利用打包的计划,Rainbond提供利用的全生命周期治理(利用开发、利用编排、利用交付和利用运维)。Rainbond能够部署到各种运行环境上(物理服务器、虚拟机、公有云),还能够部署到已有K8s集群和Ranchar上,解决客户多环境适配问题;Rainbond提供利用运维面板解决利用运维问题,应用比较简单,不须要懂容器概念;Rainbond的利用模版是一个亮点,只有在Rainbond上运行起来的利用就能够一键公布成利用模版,简化了利用模版的制作,而且利用模版能够导出离线包,特地适宜离线环境的 利用装置部署和 利用降级。 上面别离比拟一下两个计划 Rainbond相比Rancher最大的长处就是易用性,不须要学习K8s和容器相干技术和概念,另外,Rainbond提供的一体化开发环境和模块编排性能,能大幅度提高定制开发的效率。Rancher最大的长处是齐全兼容K8s体系,如果理解K8s能很快上手。 Helm和利用模版比拟 比照项Helm利用模板装置和降级大量配置全自动制作流程人工编写全自动导出和导入离线包不反对反对配置调整反对预约义的配置调整反对模块定制不反对反对兼容其余K8s版本兼容须要事后装置RainbondRainbond的利用模版 跟 OAM的设计思路完全一致,“以利用为核心”的设计理念,屏蔽掉容器基础设施的复杂性和差异性,为平台的使用者带来低心智累赘的、标准化的、统一的利用治理与交付体验。 综合比照,在离线交付场景Rainbond+利用模版的计划劣势显著,上面咱们结合实际例子,来解说Rainbond+利用模版交付离线客户的整个过程。 三.应用Rainbond利用模版进行离线环境的利用交付基于Rainbond进行离线环境的利用交付,只需将开发环境已开发好的业务公布至利用市场,基于利用市场导出利用模板的离线包,在交付环境中进行导入操作,导入后基于利用市场一键装置即可主动运行。 事后筹备环境 领有两套Rainbond集群,模仿开发环境及交付环境(开发环境为在线环境,交付环境为离线环境)。开发环境装置,参考 在线装置 文档;交付环境装置,参考 离线装置 文档;领有U盘、光盘等离线环境下利用模板离线包传输介质。1.业务部署整个流程始于开发环境,咱们首先须要将业务搬迁至Rainbond之上。在开发环境基于部署本人的业务,能够反对源代码或是镜像。以后以Spring Cloud微服务框架 Pig 为例,部署参考SpringCloud Pig 在Rainbond部署及利用制作。 2.利用公布 将开发测试环境已开发实现的利用公布至外部组件库:点击利用左侧导航栏 公布 按钮,抉择 公布到组件库 ,该过程须要 新建利用模板,利用模板定义了以下信息: 选项名阐明名称定义利用名称(必填)公布范畴利用模板的可见范畴,以后团队为以后团队可见,企业所有团队可见(必选)分类标签利用标签,可依照架构、行业、部署形式进行分类简介利用形容,帮忙使用者理解此利用Logo利用的Logo图片创立利用模板后定义利用公布版本: 选项名阐明版本号当同利用屡次公布时,如果版本号雷同,则会笼罩已公布的版本,如果不同,将公布为新版本,利用降级或回滚时,平台依据版本判断(必填)版本别名利用别名,例如 高级版,高级版版本阐明以后公布版本的阐明,可辨别不同版本的性能差别等信息公布组件模型配置: 选项名阐明连贯信息当连贯信息中呈现明码类的信息,可抉择每次部署时主动生成随机值环境变量编辑该组件默认的环境变量伸缩规定定义该组件可伸缩的最大最小节点数,及节点伸缩步长,最小装置内存限度。公布插件模型信息: 要公布的利用中其组件携带有插件时,会进行展现并在公布过程中追随组件公布。 所有信息配置结束后,点击公布按钮进行公布,业务开发过程中定义的组件间依赖关系、环境配置、长久化存储、插件、运行环境及上述定义的所有信息都将会被打包公布。 3.利用导出 将利用模板进行本地化导出,在首页利用市场中找到已公布的利用,点击最初方扩大按钮,抉择导出利用模板,抉择利用版本后点击利用模板标准下的导出按钮,导出过程齐全自动化,待导出实现后点击下载按钮即可将利用模板下载至本地,保留至U盘等挪动存储设备中,带到离线交付环境中去。 接下来进入离线交付流程,交付人员携带着装有离线包的U盘等挪动存储设备,开始导入利用模版。 4.利用导入 应用已导出的利用模板在交付环境中导入,点击利用市场界面的离线导入按钮,抉择本地的利用模板上传,上传完毕后抉择导入范畴: 企业或团队,企业为以后交付环境所有人可见,团队为指定团队下的人员可见;点击确认导入即进入自动化导入步骤。 5.一键部署 利用导入后点击装置按钮在以后交付环境即可一键部署该业务零碎,该环境业务运行环境与开发环境完全一致,到此实现离线环境下的软件交付。 6.增量降级 ...