DevOps是一项用于连续软件交付的企业功能,可以使组织抓住市场机会,对客户反馈做出更快React,并平衡速度,成本,质量和风险。 通过在整个软件交付生命周期中应用精益和敏捷原则,DevOps可以帮助组织交付差异化且引人入胜的客户体验,缩短实现价值的时间,并提高创新能力。 IBM提供了多种软件产品来支持DevOps实施。 在本文中,我们将从设计方面到实现细节来描述如何使用IBM UrbanCode Deploy来实现连续交付解决方案。
本文基于我们在SoftLayer上实施DevOps for Workload Automation as a Service项目的案例研究。
设计您的连续交付解决方案
设计阶段对于创建连续交付解决方案很重要。 在此您可以将功能支持和培训要求转换为初步和详细的设计。
在此阶段,您:
- 识别组件。
- 定义连续交付工作流程。
- 定义环境。
识别组件
在解决方案生命周期的设计阶段,您将设计一个体系结构,该体系结构显示解决方案各组件之间的相互关系。 这些组件是您将包含在连续交付解决方案中的所有软件组件。
在我们的案例研究中,我们确定了工作负载自动化即服务(WAaaS)体系结构中的两个主要组件: 工作负载自动化主设备和动态工作负载控制台 。
对于每个已标识的组件,设计可以在特定组件上运行的所有部署,配置和操作流程。
在我们的环境中,我们确定了以下过程:
- Workload Automation Master组件流程
- 部署过程以更新组件
- 将工作负载从主主服务器组件转移到备用主服务器的操作过程
- 将工作负载从备份主服务器转移到主服务器的操作过程
- 部署后执行运行状况检查的操作过程
- 动态工作负载控制台组件流程
- 部署过程以更新组件
- 将组件加入集群配置的操作过程
- 使组件脱离集群配置的操作过程
- 部署后执行运行状况检查的操作过程
设计所有流程。 指定组成每个过程的所有逻辑步骤。
部署流程
通过在本机部署或临时部署之间进行选择来开始部署过程设计阶段。
- 本机部署使用官方产品安装。 这种方法可以实现快速简便的实现。 缺点是部署非常耗时,并且所使用的工件很大。 在连续交付解决方案中,通常,在组件上进行的更新基于很少的更改,并且不需要完全升级产品。 我们建议这种方法用于复杂的更新过程。
- 临时部署实现了将更改部署到组件上所需的所有步骤。 与本地部署相比,此方法花费更少的钱来部署更改。 在此部署期间使用的工件要小于在本机部署中使用的工件。 您在UrbanCode Deploy中构建的流程使您可以更好地控制要执行的步骤。 这种方法需要复杂的设计和实现。
要选择正确的方法,请评估不同方面的利弊。 您要考虑:
- 就部署中新流程的开发而言,本机安装的可用性。
- 分解安装的可能性较小,可以减少构建和部署时间。
- 要安装的工件的大小。 在我们的案例中,组件的图像必须通过Internet传输到SoftLayer云。
在WAaaS项目中,我们分析了Master(参见表1)和Dynamic Workload Console(参见表2)的不同方法。
表1. Workload Automation Master组件的安装方法比较
工作负载自动化主组件 | 本机安装 | 临时部署 |
---|---|---|
实施时间 | 3天 | 30天 |
部署时间 | 15分钟 | 10分钟 |
工件尺寸 | 1.6 GB | 约800 MB |
表2. Dynamic Workload Console的安装方法比较
动态工作负载控制台 | 本机安装 | 临时部署 |
---|---|---|
实施时间 | 3天 | 5天 |
部署时间 | 40分钟 | 10分钟 |
工件尺寸 | 1.2 GB | 400兆字节 |
由于Workload Automation Master组件的安装过程中涉及的步骤数和复杂性,我们认为本机安装更加方便。 但是,对于Dynamic Workload Console部署,我们选择了临时方法。
确定安装方法后,必须创建逻辑流程的设计,并标识组成每个逻辑流程的所有步骤。
我们基于IBM Installation Manager进行Workload Automation Master组件的本地安装。 更新(部署)的步骤是:
- 下载软件包(工件)。
- 停止Workload Automation Master进程。
- 配置响应文件。
- 使用配置的响应文件运行静默安装。
使用临时方法更新(部署)Dynamic Workload Console的步骤是:
- 下载程序包。
- 停止动态工作负载控制台进程。
- 部署WARs文件。
- 解压有效载荷。
- 启动动态工作负载控制台进程。
运作程序
操作过程用于定义在部署新版本的组件之前和之后要执行的操作。 在我们的WAaaS项目中,我们确定了Workload Automation Master和Dynamic Workload Console的几个操作流程。
操作流程设计阶段是您为每个已标识的流程定义步骤时。 例如,将工作负载从主工作负载自动化主节点移动到备份(辅助节点)的操作过程需要四个步骤:
- 识别主节点
- 将工作负载从主要转移到次要
- 在主节点上停止进程
- 在辅助节点上启动过程
定义环境
在设计阶段,定义连续交付解决方案中将包括的所有环境非常重要。
在此阶段,确定您的测试和生产环境。
在我们的WAaaS项目中,我们确定了三个主要环境:
- 质量保证(QA)环境
- 暂存环境
- 生产环境
对于每个环境,请确定包括哪些节点,然后为每个节点部署哪些组件。
您还必须