持续集成和交付

目录
一、 背景 3
二、 实施方法 4
2.1. DevOps总体架构 4
2.2. 功能介绍 5
2.3. 持续集成 5
2.4. 持续部署 6
2.5. 技术、工具、角色、能力梳理 7
三、 收益 8

一、背景
随着架构的不断演进以及以Spring Cloud体系的微服务技术的深入应用,应用部署发布的复杂性大大增加,简单的代码配置管理模式、人工的版本记录及手工部署等发布操作和管理的模式,效率低、操作风险较大,因此急需从整体上提升软件持续交付的能力,降低应用部署发布的操作风险。
通过引入构建自动化及可视化的软件交付流水线,整合从开发、构建、测试、部署、发布、运维等多个环节,加强各职能团队协助和沟通,全面实现项目构建持续自动化管理。
二、实施方法
2.1. 总体架构
DevOps是一组能够帮助软件开发团队极大的提高其软件交付的速度和质量的模式和最佳实践组成;DevOps的整体架构如图:

从使用层次主体关联:开发、测试和运维团队,配套对应的权限控制体系。
从交付流程方面:涵盖从代码到应用交付的全流程管理。
DevOps 平台既包括了项目管理、产品管理、交付中心、组织机构等宏观维度的各项,同时在也纳入了编译、部署、代码管理及pass平台部分,同时,平台机制应该支持灵活的扩展(如工具集成扩展、部署能力扩展等),面对复杂的场景或者特殊需求的时候,平台也可以提供更加灵活的能力。

2.2. 功能介绍
我们实现了流水线管理、质量管理、告警管理、制品管理、项目信息管理、系统管理、个人工作台等模块,达到交付自动化,可视化的目标。
2.3. 持续集成
持续集成模块功能主要有代码库管理、构建定义管理以及构建实例管理等,DevOps平台中构建任务可以分为以下类型:
 需求类任务:jira、ones等
 编译类任务:Maven、Ant、前端构建等
 静态扫描任务:Sonarqube
 功能测试类任务:postman、selenium等
 性能测试类任务: Jmeter等
 打包类任务:npm、maven等
 容器类任务:k8s、mesos
 部署类任务:ansible、chef、shell
 其他工具类任务:shell、介质提交到nexus仓库、JFrog制品库等。
每个构建定义上可选择若干个需要构建的任务,通过原子步骤编排,组装成一个完整的构建流程,代码提交时触发构建(支持gitlab、github、svn等常用代码库版本管理工具),结合诸如jenkins、docker等工具,提升编译速度和增强资源的灵活调度能力,将持续集成的完整链路打通。

2.4. 持续部署
软件团队通常需要将发布后续推送到不同部署环境进行上述讨论的不同类别的测试。
例如,常见的情况是将软件部署到测试环境进行人为的质量检查测试,然后部署到性能测试环境,进行自动化负载测试。 如果构建通过该测试阶段,则应用程序可能稍后部署到用于 UAT 或 beta 测试的独立环境中。
理想情况下,将任意发布候选制品以及与之通信的其他系统可靠地部署到任意环境中的这个过程应尽可能实现自动化。
如果企业希望按照计划的速度持续交付,那可能需要每天或每周多次执行,因此它的工作速度和可靠性至关重要。
用自动化方式在环境之间移动软件是作为DevOps的团队的主要特性之一,因此这也是DevOps的关键重点。
示例如下:

2.5. 技术、工具、角色、能力梳理
Devops实施时,涉及到的技术、工具、角色、能力梳理如下:

三、收益
我行一期完成了Jfrog制品库采购、上线、高可用建设并围绕Jfrog制品库进行了工具链的打通;实现了持续集成与持续部署功能、制品提升功能、软件包不同仓库流转功能、软件包依赖关系管理、软件包元数据可视化管理及试点项目的接入;
主要得到的收益统一制品库管理:软件包统一由制品库管理,改变原来散落在各处,无法跟踪追溯的问题。简化操作步骤:使用前,开发人员部署需要手工操作10步;使用后,可以一键部署到相应环境。缩短等待时间:测试人员可按需部署,无需等待。改变了以往测试人员需等待开发人员部署的情况。

Jenkins是一个开源的持续集成交付工具,它可以帮助开发团队自动化构建、测试和部署软件。下面是Jenkins实现持续集成交付的一般步骤: 1. 安装和配置Jenkins:首先,你需要在服务器或本地机器上安装Jenkins,并进行基本的配置,如设置管理员账号和插件管理等。 2. 创建项目:在Jenkins中,你可以创建一个或多个项目来管理你的软件开发过程。每个项目都有自己的配置和构建脚本。 3. 配置源代码管理:在项目配置中,你需要指定你的源代码存储库(如Git、SVN等),并设置访问凭证。 4. 设置构建触发器:你可以设置触发器来决定何时触发构建过常见的触发方式包括定时触发、代码提交发、其他项目构建完成触发等。 5. 构建过程:在构建过程中,你可以定义一系列的构建步骤,如编译代码、运行单元测试生成文档等。这些步骤可以通过Jenkins提供的插件来实现。 6. 测试和质量控制:在构建过程中,你可以集成各种测试工具和静态代码分析工具,以确保代码的质量和稳定性。 7. 构建部署:一旦构建成功,你可以将构建产物部署到目标环境中,如测试环境、预发布环境或生产环境。你可以使用Jenkins提供的插件来实现自动化部署。 8. 监控和报告:Jenkins提供了丰富的监控和报告功能,你可以查看构建历史、构建日志、测试结果等信息,以便及时发现和解决问题。 9. 扩展和定制:Jenkins具有强大的扩展性,你可以根据自己的需求安装和配置各种插件,以满足特定的集成和交付需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值