随着软件业务复杂度增加,以及行业竞争日益激烈,无论是客户还是公司自身,都要求软件能快速发布,频繁修改,快速迭代,往往需要开发、测试和运维,三个团队之间需要紧密配合,沟通和交付耗费了大量的精力,团队之间的技术隔阂,阻碍了开发团队的生产力,成了企业亟待解决的难题。
DevOps 是 Development和Operations的简称,是一种软件工程的模式,这种模式使得三个团队不再孤立,通过自动化技术将软件生命周期中的开发、测试、部署到运营的每一个过程整合成一套整体的解决方案,提高了生产效率。DevOps打通了开发、测试、运维等环节的的IT工具链,使得各个团队减少时间损耗,更加高效地协同工作。
良好的闭环大大提高了软件研发的整体的产出。以下是DevOps能力图。
DevOps中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等,补充了一些国内的服务,可以让你更好的执行实施 DevOps 工作流。
-
版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar
-
自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit、Nexus
-
持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go
-
容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)
-
配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible
-
微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere
-
服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat
-
日志管理:Logstash、CollectD、StatsD
-
监控,警告&分析:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana