论文总字数:23854字
摘 要
在软件开发的过程中,许许多多的问题会影响到软件开发效率以及质量,比如需求的频繁变更,人员的调动,系统架构的更新等一系列问题。如何能够有效的提高软件开发效率,缩短软件开发周期,提高软件开发质量,成为了一个重要的问题。
本文首先结合当前软件开发过程中所存在的种种问题,引入持续集成这一概念,并探讨了持续集成的现实意义,即如何能够让软件开发更高效以及持续集成的实现思路。
其次介绍了基于devops思想的持续化集成云平台的设计与实现的思想,采用了基于Jenkins的持续集成第三方软件,以gitlab作为代码仓库进行相关的代码存储,网站平台的设计基于springboot框架,实现了软件项目持续集成的基本功能。本人在该项目中完成开发的基本的功能点包括流水线代码包的上传,基于Jenkins服务器的自动构建自动编译,与主机相关部署接口的编写调通,做到能够在特定主机环境上进行相应的项目的部署重启操作。同时调用第三方评估软件进行项目代码质量的评估及安全扫描报告,生成项目的构建部署等报表提供给用户。根据着一些基本的功能点,进行相关的数据库设计以及处理逻辑的设计。
关键词:持续集成,流水,Jenkins
Abstract
In the process of software development, a lot of problems will affect the efficiency and quality of software development, such as frequent changes in requirements, personnel transfer, updating of system architectures and so on. How to effectively improve the efficiency of software development, shorten the software development cycle, and improve the quality of software development, has become an important issue.
Firstly, the concept of continuous integration is introduced by combining the problems of current software development process. The practical significance of continuous integration is discussed, that is how to realize software development and continuous integration in a more efficient and sustainable way.
Secondly, the design and realization idea of devops-based continuous integration cloud platform is introcuded, which uses the Jenkins-based third party software of continuous integration, Gitlab, acting as the code warehouse, is included for code storage. A web design platform, based on the springboot framework, achieves the basic functions of continuous integration in a software project. The main part of the student work includes the upload of pipelining code package, the automatic construction of an automatic compiler based on Jenkins server, coding and compiling of host-related deployment interfaces. In the host specific environment, deployment restart operation can be prepared. At the same time, the third party evaluation softwares are used to evaluate the quality of the project code and to report the software security. The reports, such as the construction and deployment of the project, can be provided to users. According to some basic function points, the related database design and processing logic design are conducted.
KEY WORDS: Continuous integration, pipelining, Jenkins
目 录
第一章 绪论 1
1.1 前言 1
1.2 持续集成相关简介 3
1.2.1 持续集成概念 3
1.2.2 持续集成相关工具选择 3
第二章 Devops项目简介 5
2.1 总体建设目标 5
2.2 架构设计 6
2.2.1 功能架构设计 6
2.2.2 分层架构设计 8
2.2.3 组件架构设计 9
2.2.4 系统边界设计 11
第三章 个人完成的主要工作 12
3.1 流水线上传部署功能实现 12
3.1.1 方案设计 12
3.1.2 方案实现 16
3.2 构建报表的实现 23
3.2.1页面设计 23
3.2.2页面实现 24
第四章 测试总结 25
4.1 代码包上传部署 25
4.2 报表管理功能展示 32
总结与展望 33
谢辞 33
参考文献 34
第一章 绪论
1.1 前言
在现在的软件项目开发过程中,许许多多的问题不断的暴露了出来,例如软件功能漏洞、软件需求缺陷、软件兼容性问题等,因此软件的质量也越来越成为业界所关注的一个重要的话题。很多人认为最简单有效的提高软件质量的方法就是对软件进行测试,然而软件测试以及后期的问题修复所消耗的时间以及人力等资源在整个开发过程中占比巨大。甚至在正式上线很久了的功能还会随着时间的推移而产生一系列的问题。如何降低测试成本,进行更有效的测试成为了现在软件测试这一行业的前进目标。回过头来,反观现在的软件开发流程,很多软件项目都是按照传统的瀑布模型进行开发,项目组制定出一系列的开发计划,用甘特图的形式展现出来,预估项目的开发进度与耗时,然后项目组成员就按照计划进行相应的开发工作。但是随着开发的过程的推移,传统的瀑布模型就会慢慢暴露出许多的问题。例如在开发的过程中,原有的架构的漏洞,需求的不明确或者错误,亦或者是市场的变更导致需求的否决或是新需求的提出,这一系列的变数都在一定程度上影响着软件开发的进程以及质量。而开发进程的影响进一步加剧了软件测试的工作量,如何缩短软件开发周期并保证软件的质量成为了行业关注的中心。很多人认为很多项目的失败在于不能快速的集成,低质量的产品源于测试的缺乏或者软件本身无法进行测试,另一方面,传统的手工测试耗时耗资巨大也成为了一个重大的问题。随着传统软件工程技术的发展,敏捷开发得到迅速的发展,基于需求子模块的敏捷开发也得到了普及,其中,持续集成作为敏捷开发的一项实践得到了很多项目开发团队的采用,同时为了解决在持续集成中的测试问题,提高持续集成的效率,自动化测试也得到了广泛的采用,用来代替传统的手工测试。[1]
1999年Kent Beck首次提出了持续集成这一概念,这一概念的核心思想是经常对代码进行集成能够对整个软件开发过程产生有益影响,任意开发人员在任意时候提交代码至中央版本控制库都会立即出发版本集成工作。这一概念的提出也为敏捷开发的发展方向指明了一条路,如何在开发复杂度不断增加的情况下,在需求不断变化的情况下仍然保持软件开发的效率以及质量。[2]
剩余内容已隐藏,请支付后下载全文,论文总字数:23854字
该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;