本系列主要分为以下六大部分,正在更新中,尽请期待!
点击关注本专栏
提示:已经更新的或正在更新的文章前面打勾了哈!
你有没有想过可以不用手动进行测试,模拟环境中进行自测、可以不用手动发布、部署,自动化实现发布部署、可以不用管开发/测试环境,只用专注代码的开发?
学习持续集成,通通帮你实现。
持续集成(Continuous integration,简称CI):是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
也就是说,持续集成指的是,我们可以频繁地(一天多次)将代码集成到主干,这样做的好处主要有两个:
可以说这样对于我们进行团队开发是有极大帮助的。
小结:
与持续交付(CI)相对应的肯定就是CD了,接下来我们来看看什么是持续交付和持续部署。
持续交付(Continuous delivery,简称CD):完成 CI 中构建及单元测试和集成测试的自动化流程后,持续交付可自动将已验证的代码发布到存储库。为了实现高效的持续交付流程,务必要确保 CI 已内置于开发管道。持续交付的目标是拥有一个可随时部署到生产环境的代码库。
在持续交付中,每个阶段(从代码更改的合并,到生产就绪型构建版本的交付)都涉及测试自动化和代码发布自动化。
在流程结束时,运维团队可以快速、轻松地将应用部署到生产环境中。
比如:我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。
小结:
持续部署(Continuous deployment,简称CD):是通过自动化的构建、测试和部署循环来快速交付高质量的产品。某种程度上代表了一个开发团队工程化的程度,毕竟快速运转的互联网公司人力成本会高于机器,投资机器优化开发流程化相对也提高了人的效率,让 engineering productivity
最大化。
对于一个成熟的 CI/CD 管道来说,最后的阶段是持续部署。作为持续交付——自动将生产就绪型构建版本发布到代码存储库——的延伸,持续部署可以自动将应用发布到生产环境。
由于在生产之前的管道阶段没有手动门控,因此持续部署在很大程度上都得依赖精心设计的测试自动化。
小结:
要实现持续集成首先我们需要:
在准备好这些先决条件之后,我们就可以开始构建持续集成:
Jenkins:是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"
编译、打包、分发部署。
Jenkins有以下特征:
docker pull jenkins/jenkins:lts-jdk11
mkdir -p /usr/local/server/jenkins
chmod 777 /usr/local/server/jenkins
#端口:8081
docker run -d \
--privileged=true \
-p 8081:8080 \
-p 50000:50000 \
-v /usr/local/server/jenkins:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
--restart=always \
--name=jenkins \
jenkins/jenkins:lts-jdk11
#查看密码有2种方式
#挂载目录查看,因为目录挂载了,所以数据会同步到宿主机中
cd /usr/local/server/jenkins/secrets
#查看
cat initialAdminPassword
#或者进入容器查看
docker exec -it jenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
http://主机IP:8081/
到这里Jenkins的安装就完成了,关于Docker构建持续集成后面会专门出一期来进行演示的!
看看本专栏文章有哪些吧!
本系列文章目录:
点击关注本专栏
可以看出来本系列文章将会带你从-1到1的学习云原生的,一起加油吧!
看完之后,我们就可以利用当前的开源技术实现持续集成,运行自己的私有云平台,加速企业的系统集成效率,缩短部署时间,提高成功率。