使用git+jenkins+docker+sonar+disconf+harbor+tomcat实现持续部署CD(上)

一、持续部署入门

在本例中,假设我们JAVA项目的名称为hello,简要的技术思路如下。

本文章中:通过以开放平台的项目作为案例来对整体的自动化部署进行解释,使用的组件有git,jenkins,maven,disconf,docker,harbor,sonar等。

二、jenkin+git+disconf+sonar集成管理代码

gitlab和git在之前的文章有过说明,这里就不再赘述,主要围绕jenkins和docker的持续部署进行详细的过程讲解。

2.1代码获取

后端and前端开发人员为公司代码贡献者,通过git来管理自己的分支,版本,master分支的代码作为生产使用,在这里通过jenkins(jenkins的安装部署请这里不再赘述)的gitlab插件获取git代码,安装插件。
登录jenkisn==>系统管理==>管理插件==>可选插件==>右上角搜索Git plugin此处支持在线安装和离线安装,安装后如下

现在就可以开始通过jenkins从你的git仓库中拉取代码了,首先通过配置jenkins的maven开始,此处需要拉取源码进行编译打成war包,分发的机器中,然后运行docker容器。好了,从创建项目开始:
登录jenkins==>新建==>构建一个maven项目==>输入自定义名字,此处使用package-platform==>OK保存



到此为止,已经可以拉取到git仓库的所有代码了,下面开始配置对代码进行编译打包,并通过sonar插件将代码内容检查管理,开始继续配置

2.2编译打包代码

配置maven之前,需要在本机安装maven,此处可以通过自动安装maven插件(Maven Integration plugin),关于插件安装和上文中git安装同理,不再重复。安装完毕后,需要对maven进行配置,系统管理==>系统配置==>找到Maven项目配置

然后在本机安装好maven,源码包解压,配置好java path后启动即可,注意maven版本。
到现在为止,编译打包就剩下最后的mvn过程了,通过maven打包,需要一个pom.xml文件来进行配置所需要的jar包和一些工具,关于maven私服的配置已经有现成提供了,开发人员也是必备的,剩下的就需要开发人员提供好的pom文件。

2.3disconf管理配置

现在关于maven的配置就完事了,build此project即可完成项目的编译打包过程,但是还差一点就是pom中要针对代码中关于测试、生产环境的配置进行java的prooerties配置,这里就要引入disconf了;关于disconf,简单介绍下:

Disconf 可以为各种业务平台提供统一的配置管理服务,其功能如下:

  • 支持配置(配置项+配置文件)的分布式化管理
  • 配置发布统一化
  • 极简的使用方式(注解式编程 或 XML代码无代码侵入模式)
  • 低侵入性或无侵入性、强兼容性
  • 需要Spring编程环境

Disconf的重要功能特点:

  • 配置发布统一化
  • 配置发布、更新统一化(云端存储、发布):配置存储在云端系统,用户统一在平台上进行发布、更新配置。
  • 配置更新自动化:用户在平台更新配置,使用该配置的系统会自动发现该情况,并应用新配置。特殊地,如果用户为此配置定义了回调函数类,则此函数类会被自动调用。
  • 配置异构系统管理
  • 异构包部署统一化:这里的异构系统是指一个系统部署多个实例时,由于配置不同,从而需要多个部署包(jar或war)的情况(下同)。使用 Disconf后,异构系统的部署只需要一个部署包,不同实例的配置会自动分配。特别地,在业界大量使用部署虚拟化(如JPAAS系统,SAE,BAE) 的情况下,同一个系统使用同一个部署包的情景会越来越多,Disconf可以很自然地与他天然契合。
  • 异构主备自动切换:如果一个异构系统存在主备机,主机发生挂机时,备机可以自动获取主机配置从而变成主机。
  • 异构主备机Context共享工具:异构系统下,主备机切换时可能需要共享Context。可以使用Context共享工具来共享主备的Context。
  • 极简的使用方式(注解式编程 或 XML代码无代码侵入模式):我们追求的是极简的、用户编程体验良好的编程方式。目前支持两种开发模式:基于XML配置或才基于注解,即可完成复杂的配置分布式化。
  • 需要Spring编程环境

    本案例的中disconf使用在多个项目中,由开发人员提供配置,运维负责配合环境配置

2.3sonar代码质量管理

上面一切操作已经完成了基本的过程,但是jenkins的强大之处就在于支持太多的插件功能,下面将介邵sonar插件,插件(按照之前的方式安装)安装就不多说了

开始对sonar插件进行配置

如果上面使用了svn进行代码管理,需要在sonar中配置svn的账号和密码

在jenkins的project中实现sonar的管理

返回project当前页并执行build,同时观察log输出,看到success时,就会看到maven和sonar相关配置内容,如下图

目前为止关于所有代码打包,编译,配置管理,代码质量检查全部完毕了。接下来就是具体的关于docker run的过程了。

7
未经许可,不得转载,否则将受到作者追究,博主联系方式见首页右上角

该文章由 发布

这货来去如风,什么鬼都没留下!!!
发表我的评论
取消评论
代码 贴图 加粗 链接 删除线 签到

(2)条精彩评论:
  1. 匿名
    大神,请收下我的膝盖。
    匿名2017-06-09 15:52 回复
  2. 神一样的男人
    写的不错,赞一个 :eek:
    神一样的男人2017-06-12 10:43 回复