devops认识了解&使用流程

1.devops是什么

DevOps是一种软件开发方法,涉及软件在整个开发生命周期中的持续开发,持续测试,持续集成,持续部署和持续监控。 这些活动只能在DevOps中实现,而不是敏捷或瀑布,这就是为什么顶级互联网公司选择DevOps作为其业务目标的前进方向。 DevOps是在较短的开发周期内开发高质量软件的首选方法,可以提高客户满意度。
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。
devops认识了解&使用流程_第1张图片

2.devops作用

DevOps的一个巨大好处就是可以高效交付
DevOps另外一个好处就是会改善公司组织文化、提高员工的参与感

3.实现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
    

在工具的选择上,需要结合公司业务需求和技术团队情况而定。

4.devops环境如何搭建

作为测试端:
准备好服务器
在服务器中安装jdk环境
在服务器中安装tomcat环境
在服务器中安装jenkins环境
配置jenkins
创建工程,配置git/svn代码仓库
jmeter编写脚本
jmeter+ant构建脚本
jmeter+ant+jenkins 构建后去执行脚本并利用jenkins查看构建日志,生成报告,发送邮件等

5.devops如何使用

开发新功能:

基于master创建新的本地分支feature-[新功能]
本地开发、测试
开发完毕,使用git rebase master避免冲突, 然后推到远程分支,请求合并到master并删除该远程分支
合并master并删除完毕,发布到测试环境
测试不通过,则回到第1步;测试通过则结束

最后,待本次迭代内的所有特性均完成了测试,那么在master上面打TAG,准备发布新版本。

修复线上BUG:
基于线上版本的TAG创建新的分支hotfix-[BUG]
本地开发、测试
修复完毕,推到远程分支
将该远程分支发布到测试环境
测试不通过,则回到第2步;测试通过,则合到master并删除该分支,打TAG,准备发布补丁版本

版本发布/回滚:

迭代开发完毕,基于新版本的TAG,发布到生产环境
回滚时,基于上个版本的TAG发布到生产环境
热修复时,基于热修复版本的TAG发布到生产环境

6.devops架构图

devops认识了解&使用流程_第2张图片

你可能感兴趣的:(jenkins,devops)