王梦晓
1 概述
DevOps 集文化理念、实践和工具于一身,可以促进企业高速交付应用程序和服务能力的提高,与使用传统软件开发和基础设施管理流程相比较的话,能够帮助企业对产品进行更快地发展和改进。这种速度使企业能够更好地服务其客户,同时可以更高效的参与市场上竞争。
在 DevOps 模式下,在整个生命周期(从开发测试到部署再到运营)内开发团队和运营团队相互协作,QA 和安全团队也会与开发和运营工作更紧密地结合在一起。通过 DevOps 工具可以帮助工程师独立完成通常需要其他团队协作才能完成的任务(例如部署代码或预置基础设施),从而进一步提高团队的工作速度。
根据Puppet牵头DORA(DevOps Research Assessment)主导的2017年度的DevOps最新现状研究报告,在2017年实施了Devops的企业中2000人以上的大型公司占到41%,100-2000人中等公司占比35%,100-10的小型公司22%,10人以下的初创公司为2%。
在交付的系统规模方面,2000台服务器以上的大型系统占比29%,100到2000台服务器构成的中型系统占比38%,100台以下的小型系统占比33%。
在实施Devops的过程中,有两种不同的选择,一种是选择开源的Devops工具链,一种是选择已经厂商集约化的解决包。
2 Devops实施方案
2.1 开源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
微服务平台……