传统的软件开发、测试、运维需要三个团队在三个不同的环境中进行,而三个环境的不同引发了很多的问题。如:工作内容的重复;开发环境中可运行的程序在测试和运维环境下却未必正常;开发人员提交代码前的测试不充分而引入新的BUG,没有有效的机制进行提交前的充分测试;测试出的BUG因为环境的复杂使得开发人员难以复现等等。
Docker的出现让一切都不同以往,Docker可以将系统与应用打包成一个镜像,可以根据Dockerfile和一个简单的构建命令轻易的重现开发和测试的环境。将Docker引入持续集成构建系统中,保证了开发、测试、运维环境的统一。结合Github和Jenkins可以实现自动化测试和自动部署。现已有很多基于Docker容器技术的开发、测试、运维一站式解决方案。Docker相关产品应用的出现使得Docker的使用越来越方便。
开源项目Jenkins是一个开放易用的持续集成平台,可用于执行和监控重复性的工作,可以方便的安装第三方插件。其主要功能:
BuildPipeline:这是Jenkins的一个插件,它可以将多个需要协同工作的Jenkins任务按照流水线进行排序,将各任务间的关系变为可视化的图表,使得部署流程清晰可见。
通过Docker可以将每一个任务模块化,并通过Dockerfile制作有针对性的镜像来运行任务,并可以通过管道获取各任务的执行时间和结果,为产品的成功发布奠定基础。接下来就是根据自身情况合理的利用和调度Docker。
Docker的目标:Build,Ship,and Run Any App,Anywhere;即在任何地方构建、部署、运行任何应用程序。
但是Docker依然有它自身的局限性:
虽然某些旧版本内核也可以运行Docker,但是Docker官方对这类内核不提供支持,而这类内核很可能潜在诸多问题。另外,运行Docker对很多内核编译选项有要求,基于旧版本内核的Linux发行版不一定开启了这些编译选项,可能需要用户重新编译内核才能运行。
##搭建Jenkins环境##
wget -qO - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | apt-key add - && echo 'deb http://pkg.jenkins-ci.org/debian binary/' | tee /etc/apt/sources.list.d/jenkins.list && apt-get update && apt-get -y install jenkins
Gitlab类似于Github,是一个项目管理程序,可以浏览源代码、管理缺陷和注释,不同的是Github私有项目收费,而Gitlab则是搭建在自己的服务器上的。具体操作请参照 Gitlab官方网站 。当然你也可以选择Github,很多有名的开源项目都是放在Github上的,你也可以找到更多的帮助和说明文档。
需要的Jenkins控件(系统管理 - 管理插件):
如果需要更多的Jenkins控件请点击 这里 。
接下来需要配置Jenkins的从节点。在从节点主机上安装Java包:
apt-get -y install default-jre
Jenkins主节点是Jenkins Web Server所在的主机,负责测试任务的调度,不负责测试用例的执行。而从节点接受主节点的调度,负责测试用例的执行。