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