DevOps(Development和Operations的组合词)。
出现的原因:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。
出现的目的:使软件的构建、测试、发布能够更加地快捷、频繁和可靠。
涉及的部门:开发+测试+运维。
DevOps定义: 一句两句,多少句我也说不清楚,我也还没有参透。而且目前也没有权威性的定义。
但是我特别不同意的一个观点:“软件开发模式发展三阶段是瀑布、敏捷和DevOps"。我认为DevOps包括了敏捷开发。
既然如此我学习的方法是看看DevOps到底都有什么。就像盲人摸象,多摸几次总会摸遍全身,那时候你心里自然对这个事物有了整体的轮廓,至于管它叫象也好叫驴也罢,已经不再重要。哈哈
其实我认为DevOps是一种项目管理的方法论+方法论的落地工具。
方法论:
链状 code->build->test->release->operate,在build、test、release和operate之间有堵墙,每个房间内有不同的环境和 思维方式。
演变到环状:统一环境和认知。
![](https://i-blog.csdnimg.cn/blog_migrate/6248279122b80b366d50661f0cc1ca9e.jpeg)
至于方法论涉及到的工具如下:
网上有人整理了DevOps涉及到的模块,我记录下来,留在后期慢慢琢磨。等我把这些模块了解清楚后,我就知道了啥是DevOps。
代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion
构建工具:Ant、Gradle、maven
自动部署:Capistrano、CodeDeploy
持续集成(CI):Bamboo、Hudson、Jenkins(gitlab+gerrit+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