使用应用编排服务一键式部署,持续集成利器--jenkins
这篇文章主要是来聊一聊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,请先点击这里创建。
【部署结果展示】
- 浏览器打开获得如下初始化界面,按照jenkins流程进行初始化即可

【部署流程详解】
- 使用jenkins服务示例模板创建堆栈,点击创建堆栈

- 填写堆栈名称与描述。

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

(2)jenkins配置:jenkins镜像地址,访问端口服务号
注意事项:jenkins服务端口填写范围为1~65535。

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

- 等待创建成功。


- 查看堆栈输出参数,获得jenkins服务访问地址http://49.4.92.105:32129,
使用应用编排服务一键式部署,持续集成利器--jenkins的更多相关文章
- 【持续集成】jenkins安装部署从git获取代码
一:持续集成的概念: 1.1:总体的概括 持续集成Continuous Integration 持续交付Continuous Delivery 持续部署Continuous Deployment 1. ...
- 持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本
持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本 一:本文通过jenkins调用shell脚本的的方式完成从Git服务器获取代码.打包.部署到web服务器.将web服务器从负 ...
- Rancher2.x 一键式部署 Prometheus + Grafana 监控 Kubernetes 集群
目录 1.Prometheus & Grafana 介绍 2.环境.软件准备 3.Rancher 2.x 应用商店 4.一键式部署 Prometheus 5.验证 Prometheus + G ...
- Android持续集成之Jenkins 部署
Android持续集成之Jenkins 部署 [TOC] 0x00安装 准备工作如下: Tomcat8.5下载地址 Jenkins下载链接 1 将下载的jenkins.war包放至tomcat下的we ...
- Jenkins部署持续集成远程机节点的问题
工作需要把工作电脑作为持续集成的执行机,最近研究Jenkins,在工作电脑上搭了一套环境,期间把原来的JDK删除掉了,导致持续集成的Jenkins节点slave-agent.jnlp打不开.解决方法是 ...
- 研发协同平台持续集成之Jenkins实践
导读 研发协同平台有两个核心目标,一是提高研发效率 ,二是提高研发质量,要实现这两个核心目标,实现持续集成是关键之一. 什么是持续集成 在<持续集成>一书中,对持续集成的定义如下:持续集成 ...
- 持续集成之Jenkins+Gitlab实现持续集成 [二]
持续集成之Jenkins+Gitlab实现持续集成 [二] 项目:使用git+jenkins实现持续集成 开始构建 General 源码管理 我们安装的是Git插件,还可以安装svn插件 我们将 ...
- 持续集成:jenkins集合
持续集成:jenkins集合 jenkins(一): 持续集成和Jenkins简介 jenkins(二): Jenkins的安装 jenkins(三): Jenkins的应用场景和job ...
- 有手就行2——持续集成环境—Jenkins安装、插件、用户权限及凭证管理
有手就行2--持续集成环境-Jenkins安装.插件.权限及凭证管理 持续集成环境(1)-Jenkins安装 持续集成环境(2)-Jenkins插件管理 持续集成环境(3)-Jenkins用户权限管理 ...
随机推荐
- ch341a编程器写操作超时失败
当点击自动编写‘提示写操作超时失败’要怎么样才能解决,下面我给大家分享一下! 方法/步骤 首先我们点击操作 选择操作选项 看看箭头所指的几个地方是不是都没打上勾 我们把这几个地 ...
- TextView: android:ellipsize="marquee" 跑马灯效果无效的问题
今天练习的时候想实现一个文字的跑马灯效果,本来想自己手动实现的,不过突然想起来android里的TextView属性似乎自带了这个效果,叫: android:ellipsize ,平时都是把它的属性值 ...
- ADT中创建Android的Activity
去创建Activity New->Other->Android->Android Activity->BlankActivity: 输入对应的信息: 创建完毕后,可以看到新建了 ...
- NET 4.5 中新增的特性调用者信息特性CallerMemberNameAttribute/CallerFilePathAttribute/CallerLineNumberAttribute
标题中所说的三个特性 CallerMemberNameAttribute / CallerFilePathAttribute / CallerLineNumberAttribute 我们统称为调用者信 ...
- layui的table中日期格式转换
我使用的layui的2.4.5版本,在util中已经带了格式转换的函数.这里主要记录如何使用. 未使用前在table中显示如下: 前端代码如下: {field:'createDate', title: ...
- mailgun php 邮件发送 实例
步骤如下: 通过 composer 获取代码库 获取 API Key 以及 domain 编写代码发送邮件 1. 首先通过 composer 获取依赖代码库,参考官网给的命令 https://docu ...
- postman内置脚本说明
1. 清除一个全局变量 Clear a global variable 对应脚本: postman.clearGlobalVariable("variable_key"); 参数: ...
- 我的一个PLSQL函数 先查询再插入数据库的函数 动态SQL拼接查询条件、通用游标、记录定义(封装部分查询字段并赋值给游标)、insert select 序列、常量【我】
先查询再插入数据库的函数 CREATE OR REPLACE FUNCTION F_REVENUE_SI(l_p_cd in Varchar2, l_c_cd in Varchar2, l_prod_ ...
- evo:评测slam参数设置
zn@buaa:~$ evo_ape euroc m1/state_groundtruth_estimate0/data.csv pl-svo-master2/trajout.txt -angle_d ...
- Spring cloud微服务安全实战-4-2微服务安全的新挑战
微服务的环境下,我的业务逻辑不再是在一个单一的进程里,而是分散了很多的进程里.订单.物流.库存.价格.每一个tomcat都是一个进程. 每一个进程,每一个tomcat都有自己的入口点.那么就导致我防范 ...