这篇文章主要是来聊一聊jenkins,可说道jenkins,我没有办法不把它与持续集成(Continuous integration,简称CI)联系到一起,所以我先来谈谈什么是持续集成以及为什么需要持续集成?

我举个生活中的直观例子,最近家里刚刚搞完装修,就发现这装修的过程中,暗含着很多持续集成的思想,比如说地板,你家的房子50平,80平,100平,又有卧室客厅,可是地板块的大小就是统一的,而且都很小块,小而灵活就是持续集成的一个关键,其次呢,无论在哪里,地板要从一个边开始,一块一块的铺,铺完一块敲一下让地板块紧密排布在一起,再铺另一块,如果发现这块是残次品,赶紧换另一块,而不是全部铺完,再一起检查。你可以把每一块地板看作是一行代码,持续集成就是你写一行代码就会集成一次检测一次。再比如家里要安装水管和电路,地板铺完了要测试下是不是把水管敲坏了,线路铺完了,,水管装好了 都要用一用。如果全部装完了再测,出现问题可能会互相影响,比如电路不行咋办呢?可能要把地板撬开……。那么每完成一部分就测试,这也是持续集成的一部分。全部装修完了,你去验收,发现地砖颜色和墙纸颜色不匹配,水池有裂痕,马桶漏水,返工吗,那成本可太大了,所以不如每完成一部分,你就去用一下试用验收,这还是持续集成的一部分。你可以把电路,水管,地板看作是一个一个特性,没完成一个特性就要进行一次集成验收,而不是全部都弄完了再来集成验收。如此持续集成的价值便不然而喻了。

互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分便是那持续集成。持续集成说的通俗点就是,快节奏地,频繁地,进行代码合入和测试。如今云计算平台日臻完善,容器技术广泛普及,微服务化改造进行如火如荼,小步快跑的敏捷开发发布流程越来越深入每一个企业和开发人员的日常工作中,这一切都衍生出了当前互联网模式的一个显著特点,那就是极其快速的产品迭代与交付、7*24小时在线以及问题响应修复及时。这与传统的瀑布等开发模式大相径庭,而持续集成正是这一切的基础保障。持续集成的核心措施是,你编写的每一行代码在合入和发布的时候,必须通过自动化测试。只要有一个测试用例失败,整个流程就会终止,持续集成并不能消除Bug,而是让它们非常容易发现和改正。这里强调了一个关键词“自动化”集成,我们来感受下如果没有自动化会发生什么呢?

话说没有对比就没有伤害,如果没有自动化持续集成,第一个矛盾点会集中在,Dev与Ops之间,即一个要变化,一个要稳定。对于一个服务上线发布,测试,升级部署是不可避免的,作为ops人员经常存在的一个场景就是:不懂业务,对着开发人员每一步都写得清清楚楚的操作指南,一步步执行,不问为什么,出了问题找开发,全都是你的锅。开发人员一定很气愤,这种ops要来有什么用,机器人吗? 而且ops人员最讨厌的就是变化,恨不得你先开发十年的特性,十年变更一次才好。测试也是存在类似的问题,你新写的每一行代码合入后如果不全量测试一遍,谁又能保证没有问题呢? 如果按照持续集成的思想,那测试会抱怨,因为你的小步快跑而不得不把同样的测试用例反复执行,说到这自动化的好处就呼之欲出了,而jenkins便是这自动化集成的利器。终于开始正文了

Jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,如:自动化,性能,打包,部署,发布&发布结果自动化验证,接口测试,单元测试等等等等。jenkins可以很好的支持各种语言(比如:java, c#, php等)的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接集成。简单点说,Jenkins其实就是大的框架集,可以整个任何你想整合的内容,实现公司的整个持续集成体系!各种你能想到的,和不能想到的 ,而且Jenkins可自由部署在各种平台:Windows, Linux, Mac。这么优秀的工具如果获取安装部署使用呢?使用AOS示例模板,你无需下载软件,无需配置,真,完成自动化,给你持续集成般的畅快体验!

本示例模板 Jenkins服务 (jenkins-with-cluster)帮助您部署Jenkins服务,部署成功后,通过outputs界面展示的Web URL,可以访问Jenkins服务,堆栈创建的资源包括VPC(虚拟私有云)、Subnet(子网)、Cluster(集群)、Deployment、StatefulSet、Service和Secret。使用本模板前,你需要保证至少有一个可用的密钥对,如果你还没有key pair,请先点击这里创建。

【部署结果展示】

  1. 浏览器打开获得如下初始化界面,按照jenkins流程进行初始化即可

【部署流程详解】

  1. 使用jenkins服务示例模板创建堆栈,点击创建堆栈

  1. 填写堆栈名称与描述。

  1. 填写输入参数。
    (1)基础资源配置:填写可用区,cce集群规格,节点规格,密钥对。

(2)jenkins配置:jenkins镜像地址,访问端口服务号

注意事项:jenkins服务端口填写范围为1~65535。

  1. 点击下一步,审核配置信息,查看计费信息,点击创建堆栈。
  2. 确认是否开通CCE服务

  1. 等待创建成功。

  1. 查看堆栈输出参数,获得jenkins服务访问地址http://49.4.92.105:32129,

使用应用编排服务一键式部署,持续集成利器--jenkins的更多相关文章

  1. 【持续集成】jenkins安装部署从git获取代码

    一:持续集成的概念: 1.1:总体的概括 持续集成Continuous Integration 持续交付Continuous Delivery 持续部署Continuous Deployment 1. ...

  2. 持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本

    持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本 一:本文通过jenkins调用shell脚本的的方式完成从Git服务器获取代码.打包.部署到web服务器.将web服务器从负 ...

  3. Rancher2.x 一键式部署 Prometheus + Grafana 监控 Kubernetes 集群

    目录 1.Prometheus & Grafana 介绍 2.环境.软件准备 3.Rancher 2.x 应用商店 4.一键式部署 Prometheus 5.验证 Prometheus + G ...

  4. Android持续集成之Jenkins 部署

    Android持续集成之Jenkins 部署 [TOC] 0x00安装 准备工作如下: Tomcat8.5下载地址 Jenkins下载链接 1 将下载的jenkins.war包放至tomcat下的we ...

  5. Jenkins部署持续集成远程机节点的问题

    工作需要把工作电脑作为持续集成的执行机,最近研究Jenkins,在工作电脑上搭了一套环境,期间把原来的JDK删除掉了,导致持续集成的Jenkins节点slave-agent.jnlp打不开.解决方法是 ...

  6. 研发协同平台持续集成之Jenkins实践

    导读 研发协同平台有两个核心目标,一是提高研发效率 ,二是提高研发质量,要实现这两个核心目标,实现持续集成是关键之一. 什么是持续集成 在<持续集成>一书中,对持续集成的定义如下:持续集成 ...

  7. 持续集成之Jenkins+Gitlab实现持续集成 [二]

    持续集成之Jenkins+Gitlab实现持续集成 [二] 项目:使用git+jenkins实现持续集成 开始构建  General  源码管理 我们安装的是Git插件,还可以安装svn插件  我们将 ...

  8. 持续集成:jenkins集合

    持续集成:jenkins集合 jenkins(一):   持续集成和Jenkins简介 jenkins(二):   Jenkins的安装 jenkins(三):   Jenkins的应用场景和job ...

  9. 有手就行2——持续集成环境—Jenkins安装、插件、用户权限及凭证管理

    有手就行2--持续集成环境-Jenkins安装.插件.权限及凭证管理 持续集成环境(1)-Jenkins安装 持续集成环境(2)-Jenkins插件管理 持续集成环境(3)-Jenkins用户权限管理 ...

随机推荐

  1. WINDOWS远程控制LINUX终端XSHELL

    WINDOWS远程控制LINUX终端XSHELL 笔者购买的腾讯云CENTOS7,通过腾讯云的控制台登录,每次都要打开相关网页.输入密码,感觉操作非常不方便. 使用XSHELL远程控制LINUX终端, ...

  2. BAT 电脑名 用户名

    @echo offecho 当前盘符:%~d0echo 当前登陆用户:%username%echo 当前盘符和路径:%~dp0echo 当前盘符和路径的短文件名格式:%~sdp0echo 当前批处理全 ...

  3. R绘制韦恩图 | Venn图

    解决方案有好几种: 网页版,无脑绘图,就是麻烦,没有写代码方便 极简版,gplots::venn 文艺版,venneuler,不好安装rJava,参见Y叔 酷炫版,VennDiagram 特别注意: ...

  4. [java.lang.NoSuchMethodError: org.hibernate.Session.createQuery(Ljava/lang/String;)Lorg/hibernate/query/Query;]

    jar包冲突 maven导入的jar包和自己将lib目录的jar同时加入了项目里面了

  5. linux下查看指定进程的所有连接信息(转)

    定位某个进程的网络故障时经常需要用到的一个功能就是查找所有连接的信息.通常查找某个端口的连接信息使用 ss 或者 netstat 可以轻松拿到,如果是主动与别的机器建立的连接信息则可以通过 lsof ...

  6. Js-事件分发与DOM事件流

    原文地址:https://www.jianshu.com/p/dc1520327022 Js事件分发与DOM事件流 对JavaScript分发事件不熟悉,网上查阅相关资料整理后,记录一下对Javasc ...

  7. 【转】45个实用的JavaScript技巧、窍门和最佳实践

    原文:https://colobu.com/2014/09/23/45-Useful-JavaScript-Tips,-Tricks-and-Best-Practices/ 目录 [−] 列表 第一次 ...

  8. JEECG MiniDao优劣

    Minidao 1.5.1 - 我认为这是一个不严谨的错误 - andotorg的个人空间 - OSCHINAhttps://my.oschina.net/antsdot/blog/1800832 M ...

  9. shell按月循环取数

    这里有个需求,按月查询,并且要输出每月的开始日期,结束日期. shell脚本如下: #!/bin/sh echo "0个参数时, 按月执行,默认当前月份 " echo " ...

  10. 【转载】 180623 Conda install 本地压缩包文件tar.bz2

    原文地址“ https://blog.csdn.net/qq_33039859/article/details/80785535 ----------------------------------- ...