一、DevOpe
devop工作流敏捷开发
- 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
持续集成
- 持续集成(Continuous Integration)简称CI,持续集成强调开发人员提交了新代码之后,立刻自动的进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
- 持续集成过程中很重视自动化测试验证结果,对可能出现的一些问题进行预警,以保障最终合并的代码没有问题。
持续交付
- 持续交付CD(Continuous Delivery)基本概念持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
- 持续交付并不是指软件每一个改动都要尽快部署到产品环境中,它指的是任何的代码修改都可以在任何时候实施部署。
持续部署
- 持续部署(Continuous Deployment)是指当交付的代码通过评审之后,自动部署到生产环境中。持续部署是持续交付的最高阶段。
- 持续部署是自动的持续部署是持续交付的最高阶段。
- 持续交付与持续部署的关系有时候会混淆。持续部署意味着所有的变更都会被自动部署到生产环境中。持续交付意味着所有的变更都可以被部署到生产环境中,但是出于业务考虑,可以选择不部署。如果要实施持续部署,必须先实施持续交付。持续交付表示的是一种能力,而持续部署则是一种方式。
DevOps 工作流
DevOps 能力环- DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
- 它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。 它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。
- 通过在共同的业务目的情境中让开发和运维角色与流程变的一致,DevOps 有助于促进 IT 的统一。开发和运维都需要明确,自己是统一业务流程的一份子。DevOps 思维确保了无论组织结构是怎样的,个体决策与行为需要尽力为统一的业务流程提供支持和促进作用。
实现DevOps需要工具
工具链的打通,那么工具自然就需要做好准备。现将工具类型及对应的不完全列举整理如下:
代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion
构建工具:Ant、Gradle、maven
自动部署:Capistrano、CodeDeploy
持续集成(CI):Bamboo、Hudson、Jenkins
配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
容器:Docker、LXC、第三方厂商如AWS
编排:Kubernetes、Core、Apache Mesos、DC/OS
服务注册与发现:Zookeeper、etcd、Consul
脚本语言:python、ruby、shell
日志管理:ELK、Logentries
系统监控:Datadog、Graphite、Icinga、Nagios
性能监控:AppDynamics、New Relic、Splunk
压力测试:JMeter、Blaze Meter、loader.io
预警:PagerDuty、pingdom、厂商自带如AWS SNS
HTTP加速器:Varnish
消息总线:ActiveMQ、SQS
应用服务器:Tomcat、JBoss
Web服务器:Apache、Nginx、IIS
数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库
项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker
二Jenkins简易安装使用
1、Jenkins是什么
- Jenkins是一款开源CI&CD软件,用于自动化各种任务,包括构建、测试和部署软件.Jenkins支持各种运行方式,可通过系统包,Docker或者通过一个独立的Java程序.
2、安装Jenkins
- 因为Jenkins是java研发,所以安装时候首先安装jdk
#安装jdk8
[root@node-60 ~]# yum install java-1.8.0-openjdk-devel -y
Jenkins下载地址https://jenkins.io/download/
- 这里我们使用rpm安装方式,也可以下载使用war包,但要部署tomcat,把war文件放到tomcat目录中部署。
部署方法一:rpm方式
#下载Jenkins,安装文件比较大
[root@node-61 ~]# wget https://prodjenkinsreleases.blob.core.windows.net/redhat-stable/jenkins-2.150.1-1.1.noarch.rpm
#安装
[root@node-61 ~]# rpm -ivh jenkins-2.150.1-1.1.noarch.rpm
#启动Jenkins
[root@node-61 ~]# systemctl start jenkins
[root@node-61 ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 50 :::8080 :::*
部署方法二:war+Tomcat方式
#安装tomcat
[root@node-61 ~]# yum install tomcat -y
#下载war文件到tomcat目录中,war文件会自动展开
[root@node-61 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.150.2/jenkins.war -P /usr/share/tomcat/webapps/
#启动tomcat
[root@node-61 ~]# systemctl start tomcat
[root@node-61 ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 :::8080 :::*
登录管理页面,并在提升路径找到解锁密码
解锁Jenkins选择安装
[图片上传失败...(image-c25602-1550412947501)]
插件管理
系统管理中报错
修复报错
#编辑配置文件
[root@node-61 ~]# vim /etc/tomcat/server.xml
..........
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/> #添加
#重启tomcat
[root@node-61 ~]# systemctl restart tomcat
全局工具配置
全局工具配置#安装maven和docker,也可以在Jenkins管理页面中选择自动安装
[root@node-61 ~]# yum install maven docker git -y
#查询版本和路径
[root@node-61 ~]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
[root@node-61 ~]# which java
/usr/bin/java
[root@node-61 ~]# mvn -v
Apache Maven 3.0.5 (Red Hat 3.0.5-17)
Maven home: /usr/share/maven
Java version: 1.8.0_191, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.1.3.el7.x86_64", arch: "amd64", family: "unix"
[root@node-61 ~]# docker -v
Docker version 1.13.1, build 07f3374/1.13.1
[root@node-61 ~]# which docker
/usr/bin/docker
jdk手动设置路径
git已经安装,所以自动使用默认路径
手动设置maven和docker路径
安装一个插件
插件的安装
3、使用Jenkins构建一个简单的任务
选择新建一个任务名字
git的url
项目源代码的管理,需要账号密码
构建触发器
自定义脚本
在另一台节点安装tomcat,并修改访问权限
[root@node-60 ~]# yum install java-1.8.0-openjdk-devel -y
[root@node-60 ~]# yum install tomcat -y
[root@node-60 ~]# yum install tomcat-admin-webapps -y
#添加管理用户
[root@node-60 ~]# vim /etc/tomcat/tomcat-users.xml
<tomcat-users>
................
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-script"/>
[root@node-60 ~]# tomcat version
Server version: Apache Tomcat/7.0.76
Server built: Oct 16 2018 09:15:49 UTC
Server number: 7.0.76.0
OS Name: Linux
OS Version: 3.10.0-693.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_191-b12
JVM Vendor: Oracle Corporation
#启动tomcat
[root@node-60 ~]# systemctl start tomcat
构建后的操作
执行构建
构建成功 构建完成,太阳代表构建成功,多云代表所有构建中有几次是失败的,阴雨是构建错误失败
构建的war文件就会传递到目标主机的目录下,并自动展开 构建成功后访问目标主机测试网页
4、使用参数,进行回滚操作
- 使用参数来标记每个版本,便于版本控制,利用参数进行回滚操作
#克隆下来
[root@node-61 ~]# git clone https://github.com/mageedu/spring-boot-web-jsp.git
[root@node-61 ~]# cd spring-boot-web-jsp/
#查询github上的版本
[root@node-61 spring-boot-web-jsp]# git tag -l
0.2
0.4
0.5
1.0
1.1
1.2
8.0
8.1
修改构建设置
选择参数化构建
选择参数
参数构建设置
源码管理的高级设置 image.png 回滚到1.2版本
参考链接:
DevOps 详解参考:https://www.infoq.cn/article/detail-analysis-of-devops
https://blog.csdn.net/CrankZ/article/details/81545439
https://www.cnblogs.com/liufei1983/p/7152013.html
网友评论