- sunyurun@agoravoice.io
- 2015-2-3 23:23:08
1. 需求描述
1.1 后台开发者的体力劳动
- 互联网公司的后台工程师每天大部分时间都是对着黑黑的屏幕敲命令,敲代码、编译、部署到测试环境、测试、部署到生产环境、灰度升级、临时停掉服务、临时重启服务、发现问题回滚到上一个版本等等
- 如果你是在做一件服务全球用户的事情,如果你的IDC就有四五十个、机器几百台,还搞的定麽?
- 你可能想到写脚本来解决这个问题,不幸的是写脚本会把你拉向另一个深渊。具体原因以后有时间再说
- 后台开发者必须用这样一个系统:能够一键部署、灰度、升级、回滚。之前在YY和QQ都有专门的运维团队做的又鲁棒又fancy的运维系统,现在没有这样的系统了怎么办
1.2 相关开源工具列表
http://en.wikipedia.org/wiki/Comparisonofopen-source_configurationmanagementsoftware
上边链接汇总了相关开源工具,我用了一整天时间几乎把所有的工具都尝试了一遍,经过方方面面的对比,最终选择了老牌unix运维工具:Ansible
1.3 系统
- bash脚本: