万信金融 项目部署
目标:
-
理解DevOps概念
-
能够使用Docker Compose部署项目
-
理解持续集成的作用
-
会使用Jenkins进行持续集成
1 DevOps介绍
1.1 什么是DevOps
DevOps是Development和Operations两个词的缩写,引用百度百科的定义:
DevOps是一种方法或理念,它涵盖开发、测试、运维的整个过程。DevOps是提高软件开发、测试、运维、运营等各部门的沟通与协作质量的方法和过程,DevOps强调软件开发人员与软件测试、软件运维、质量保障(QA)部门之间有效的沟通与协作,强调通过自动化的方法去管理软件变更、软件集成,使软件从构建到测试、发布更加快捷、可靠,最终按时交付软件。
2 使用Docker Compose部署项目
详见"万信金融-生产环境-部署文档.pdf"
3 持续集成
3.1 持续集成介绍
3.1.1问题描述
传统的软件开发流程如下:
1、项目经理分配模块给开发人员
2、每个模块的开发人员并行开发,并进行单元测试
3、开发完毕,将代码集成部署到测试服务器,测试人员进行测试。
4、测试人员发现bug,提交bug、开发人员修改bug
5、bug修改完毕再次集成、测试。
问题描述:
1、模块之间依赖关系复杂,在集成时发现大量bug
2、测试人员等待测试时间过长
3、集成部署耗时耗力,软件交付无法保障
解决上述问题的思考:
1、能否把集成测试提前进行?能否放在平时每隔几天甚至每天都进行?
2、人工集成部署耗时耗力,能否使用自动化工具代替人工集成部署的过程?
3.1.2 什么是持续集成
持续集成,即Continuous Integration,简称CI,随着软件开发复杂度的不断提高,团队开发成员间如何更快更好的协同工作以确保软件开发的质量已经成为一个不可回避的问题。尤其是近年来如何能在不断变化的需求中快速适应和保证软件的质量显得尤其的重要,持续集成就是针对此类问题的一种软件协同实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成, 而每次的集成都是通过自动化的构建来实现的,包括自动获取仓库代码、自动编译、自动发布和测试,从而尽可能早的发现问题,让团队能更快的开发高质量的软件。
持续集成的好处:
1、自动化集成部署,提高了集成效率。
2、更快的修复问题。
3、更快的进行交付。
4、提高了产品质量。
3.1.3 P2P项目持续集成流程
3.2 搭建持续集成环境
3.2.1 安装Git/Gogs
Git是一个版本控制系统,Gogs是一个远程的Git仓库,Gogs与GitHub、GitLab及国内的码云类似,用户在Gogs上注册账号,上传项目到Gogs,通过Gogs对项目进行版本控制。通常企业使用Gogs在局域网搭建自己的Git代码管理仓库,不过随着云计算的发展,很多企业也开始使用提供Git仓库管理公共服务的平台,比如:码云、GitHub等。
Gogs相比GitLab的优势在于:Gogs 能打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
在Linux服务器上安装Gogs,安装方法见“Gogs安装文档.pdf” 。
3.2.2 安装 Jenkins
Jenkins是一个开源的持续集成工具,使用Jenkins搭建持续集成环境,可以进行自动构建、自动编译和自动部署,非常方便。它提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更重要的业务逻辑实现上。简单的说,Jenkins就是一个Web应用程序,这个程序的作用就是提供持续集成所需的所有功能 。官网地址:Jenkins 。
=============安装 Jenkins:Start
Jenkins安装文档
一. 安装Jenkins
docker pull jenkins/jenkins:2.440.3
mkdir -p /mydata/jenkins_home
chown -R 1000 /mydata/jenkins_home/
docker run -di --name=jenkins -p 8091:8080 -v /mydata/jenkins_home/:/var/jenkins_home jenkins/jenkins:2.440.3
本教程在docker下安装Jenkins:
-
拉取镜像:
docker pull jenkinsci/blueocean
-
创建容器:
docker create --name jenkins -u root -p 8091:8080 --privileged=true -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /home/jenkins:/home docker.io/jenkinsci/blueocean
-
启动容器:
docker start jenkins
-
通过浏览器访问http://ip:8091
初次运行Jenkins会经过一个安装过程,一般情况使用默认配置,一直下一步安装即可,其中一步需要输入密码,如下图所示:
分别执行如下命令即可得到初始密码(账户名默认是admin)
docker exec -it jenkins /bin/bash cat /var/jenkins_home/secrets/initialAdminPassword
建议首次登录成功后,修改密码。
二. Jenkins常用插件安装
要想让Jenkin更好的和其他工具集成到一起工作,就需要安装一些常用的插件。
搜索如下插件并安装:
三. Jenkins全局工具配置
Jenkins在进行持续集成工作时依赖Jdk1.8、Git、maven,所以需要进行一些全局工具配置,如下图所示:
1、Maven安装:
可以采用“自动安装”,在上图中勾选自动安装,选择maven版本即可。或将maven程序目录拷贝到宿主机/home下,按上图进行配置即可。
2、Jdk安装配置
与maven安装相同,也可以采用自动安装或手动安装的方法。
3、Git安装方法同上
git安装完成配置如下图:
4、配置git凭证
此凭证用于远程从git仓库获取工程源代码,输入git仓库的账号和密码
有了该凭证后,Jenkins即可以从Gogs仓库中获取项目源码。