由 DevOps 展开

虽然 DevOps 很热,但是自己一直没有弄清楚。他是谁?他从哪里来?他到哪里去?

DevOps 是什么?

DevOps 是如何定义的呢?我感觉也没有一种确切的定义,其中 Dev 是开发, Ops 代表运维。开发运维工程师?开发兼运维? 非也。 DevOps 不是一种角色,不是一类人员,更不是某个个体。 在一个软件的生命周期中,Dev 作为重要的开始,Ops 作为后期的重点,将这两个词放在一起其实是代表了一个软件的重要过程,所以我认为 DevOps 是一种软件快速交付的能力,是一种团队工作的文化理念。

传统的开发模式以及现代的敏捷开发中,有时候阻止我们并不是软件本身的难度,而是人,是人与人之间的隔阂,部门与部门之间的沟通不畅。产品部、开发部、测试部、运维部,每个部门都是独立的,都有自己的利益中心,势必会在沟通的过程中产生阻力。 DevOps 文化倡导打破这种壁垒,每个人思考问题不在局限于自己的一亩三分地,而是从整个流程上入手。程序员不在只关心编写代码,同时也会考虑到测试时、部署时的情况,他可能就会主动针对自己考虑到的情况与测试同事、运维同事进行沟通。这样就降低了后期出现问题的成本。所以 DevOps 是一种工作文化,是大家积极主动沟通,一起讨论一起工作的团队文化。

按照上面的理解,是不是 DevOps 的展开需要依赖全栈工程师?或者说全栈工程师有利于 DevOps 实践?同样不是。全栈工程师是能力很全面的工程师,是一个个体,也不是一个团队,并不代表一种文化。

全栈工程师是进来流行的一个职位,这样的工程师不当从前端到后台的一切技术,包括运维也不在话下,甚至自己能独立打造一个产品也是小菜一碟。这个工种的兴起跟现在的团队越来越小越来越精由关系。团队初期,由于资金或者其他方面的关系,不可能做到每个职位都有充足的独立人员,并且不可能每个职位都能做到由备份,全栈工程师就很适合这种团队,在精通于某一方面的同时,还能在必要的时候补充团队的其他短板。

说到底, DevOps 需要的是一个主动型的团队,在一个主动型的团队里,任何工作方法基本上都是有效和易实施的,因为大家在工作中都以团队利益为最高,考虑问题根本不会局限于自己的手头的工作,而是从整体出发,积极应对已经出现或者即将出现的问题。