什么是DevOps?这个将开发和运维结合起来的词,代表了一种文化,那就是大家共同协作。狭义上的大家,指的是开发和运维,广义上,指的是所有软件生命周期里参与的角色。
“共同协作”是个富有正能量的词。感觉上,随便往哪儿一套都是正确的。那为什么要在DevOps里着重强调呢?DevOps到底解决了什么问题?归根结底,就是提高产品质量。爱思考的你,可能心里已经有千万个提高产品质量的方案从脑海里呼啸而过——代码审查、自动化测试、持续集成、代码质量管理工具、程序员鼓励师……对对对,这些方案都能在某种程度上解决一些层次的问题。但是,产品质量的根源在哪儿呢?在于人。如果开发者对自己要做的事情不负责,甚至压根儿不知道后果,怎么能指望这样的人能够生产出来高质量的代码呢?举个例子:作为开发者,我知道自己写的代码会由测试部门来进一步测试,在有进度压力的时候,我就会更倾向于去想:“那就先这么凑合着吧,反正有问题QA们会说的”。如果我不知道部署和维护产品是怎么一回事,我就不会主动地在产品里写上日志的代码。对于运维人员来说,由于处于软件生命周期的下游,相信对类似的场景感触更甚。DevOps能够做到的事,就是让人有这个意识:需要对产品的质量负责。DevOps能够提供一个平台或机制,让我能够从中找到所需的资源。