持续集成持续部署持续交付_通过将行业解决方案部署到云平台来确保持续交付

本文探讨了在云环境中确保持续交付行业解决方案所面临的挑战,包括文件替换、资源更新和数据库配置。通过真实案例,展示了如何解决持续交付过程中的常见问题,如文件更新和数据库配置错误,提出了一种优化的SQL脚本运行模式。文章还强调了自动化、重复部署能力和故障排除的重要性,以提高DevOps流程的效率。
摘要由CSDN通过智能技术生成

随着云计算技术的发展,云环境被认为是向客户提供行业解决方案的最有前途的方式。 为了确保持续交付软件,开发,测试和运营团队必须协作并有效地协同工作。 云环境适合这种类型的交互。 但是,由于部署阶段涉及复杂的分布式拓扑,因此容易出错,通常需要手动进行故障排除。 在许多情况下,部署设计支持单个部署,而不是连续部署。 应用连续交付原理的产品部署阶段通常会遇到瓶颈,并对DevOps流程的效率产生负面影响。

使用真实的客户场景,探索挑战以及如何解决挑战以确保持续部署。

致力于行业部署自动化的软件工程师会发现本文对帮助实现在云上的持续交付很有用。 这些说明假定您具有部署行业解决方案和开发脚本的技能。

持续交付过程

连续交付的目标是确保可以使用最有效,最安全的方法来开发,测试,部署和交付软件。 从基础结构级别,应用程序级别或定制数据级别对软件系统的任何部分进行的更改,都会通过特定的交付管道连续应用于生产环境。 这种方法在用户之间建立了信心,使生产环境可以访问最新的可发布代码。

通用模型和框架

图1中所示的通用模型已广泛应用于大多数IBM行业解决方案的交付中。

图1.常见的连续交付模型
用于持续交付的通用模型的体系结构

图1展示了连接解决方​​案开发和生产环境的端到端自动化通道。 它使用Jenkins作为自动化引擎,可以:

  • 检测代码更改并触发连续构建。
  • 将内部版本安装到“ Blue区域。 Blue区域被视为DevOps团队在本地进行验证的过渡环境。
  • Blue区域上启动自动化测试并验证测试结果。
  • Blue区域准备就绪并经过验证后,将登台环境切换到实时生产环境( Red区域)。

持续交付的复杂因素

步骤2是本文的重点。 在连续交付过程中,最具挑战性的方面是如何有效地实施连续部署。 部署阶段必须适应复杂的分布式拓扑,不断变化的基础架构以及配置更改。 这些复杂的因素使丢失客户数据变得容易。 传统的解决方案部署设计支持单个部署,而不是连续部署。

为了减少错误,提高流程效率,节省DevOps的时间和精力,最大程度地实现解决方案部署和故障排除的自动化。 第一步是了解实际解决方案部署方案中遇到的挑战。

示例行业解决方案部署案例

考虑每月在云平台上交付行业解决方案的场景。 由于DevOps团队必须在生产环境上部署每个月度构建,因此安装程序需要能够在部署过程开始时在生产环境上运行。

持续交付过程中的常见问题

以下示例从安装角度说明了常见问题:

  • 文件替换
  • 资源更新
  • 数据库配置
文件替换

通常,配置文件需要更新或替换。 在清单1中,安装程序在安装时替换了第3行中的占位符。 第4行中的URL根据运行时的用户输入进行设置。

一项新要求要求安装程序在安装时在以后的迭代中添加新的URL someURL 。 传统的解决方案是将< someURL >@ url @< someURL >附加到第4行,并完全替换占位符,但是这种方法会导致错误并丢失用户对customizationURL输入。

清单1.带有示例占位符的脚本,用于主机和URL
1 <servers>
2 <server id="appServer">
3  <host>@host@</host>
4  <customizationURL>@cusUrl@</customizationURL>
5 </servers>
资源更新

假设您有一个使用Java命名和目录接口(JNDI)创建的应用程序服务器调度程序,名称为test/schedulerA 。 相关表以前缀testA_创建。 一段时间后,您需要将此调度程序的表前缀重命名为testB_ 。 通常,您可以调用WebSphere Application Server API AdminControl来更新调度程序对新表的引用。 但是,对于连续交付,已经创建了旧表,即使这些旧表无用,也不会删除它们。 当另一个调度程序在将来使用testA_前缀时,将导致错误。

数据库配置

数据库配置更改造成了最具挑战性的问题类型。 随着解决方案的更新,数据库将经历表结构,用户权限,存储的数据和其他更改的更改。 容纳更改的一个选项是SAMPLE.TEST_TAB表,然后在其中插入新的COL_C列。 但是,在下一次迭代中,表结构将发生变化。 例如,需要删除COL_B列。 传统部署通过向清单2中所示的数据库脚本添加第6行来适应更改。

清单2.带有用于在数据库表中删除一列的新行的脚本
1 CREATE TABLE SAMPLE.TEST_TAB (
2 "COL_A" INTEGER NOT NULL , 
3  "COL_B" VARCHAR(100) ) 
4 IN "USERSPACE1" ; 
5 ALTER TABLE SAMPLE.TEST_TAB
6 DROP COLUMN COL_B
7  ADD COLUMN COL_C INTEGER;

但是,在连续交付中,添加一行会导致错误,原因是:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值