前言
时间先回退到2011年,那时候我刚加入猪八戒,加入公司之前我还不知道svn、git是什么东西,连发布代码也是用的最传统的FTP上传方式。而早在2009年,来自Flickr员工在一场会议中所揭露了如何改善Dev和Ops的合作,达到了单日10次发布的高速度,催生了后来的DevOps运动。(题外话FTP的方式几秒就能发一次代码)所以DevOps到底解决了什么问题呢?接下来结合猪八戒的不同阶段给大家介绍一下我们的DevOps演进之路。
猪八戒devops演进之路
1、初创期
虽然2009年就提出了DevOps,但国内很少人听说过这个名称,但是这并不代表我们没有去解决dev和ops的协作问题。
那一年猪八戒网仅有4台物理机,托管在某IDC机房,总的工程数20左右,均为PHP工程,技术人员20左右,由于迭代的频率很高,每天发布30+次,公司仅有2个运维人员,所以如果没有自动化的方式是很难完成这么高频率的发布的,所以有了公司第一版的“DevOps”。
如下图:
上图的流程特别简单,使用svn管理代码,有两个固定的分支,一个用于发布到测试环境,一个用于发布到线上环境。研发提交代码后,通过svn自带的hooks功能配合rsync将代码分发到对应的服务器,由于当时所有应用都是部署在一台物理机,所以只需要全量pull即可完成发布。通过这套简单的流程即可实现研发合并并提交代码即可发布上线。解决了快速发布的问题。
2、业务增长期
时间到了2013年,业务也快速增长服务器、应用、研发人员都出现了很大规模的增长,伴随着很多问题也出现了,随意的发布让线上环境变得很不稳定,配置文件变更不当导致全站500频频出现。虚拟机的引入也让之前的发布方式变得难以支持。所以此时急需对之前的发布方式进行升级,来满足现阶段的需求。
如下图:
这个阶段最大的变化是大量使用虚拟化,并对应用进行了独立部署,同时为了控制发布取消了svn hooks引入了SYN系统(我们内部取名)。
SYN主要解决以下几个问题
1、权限控制(可以控制到工