如今,DevOps已经被越来越多的企业认可,DevOps不仅仅停留在开发和运维的范围,如今的DevOps是软件研发全生命周期管理的一整套方法论和最佳实践,是DevOps文化建设和人才培养。如果只涉及开发和运维人员,下面从实施DevOps之前和之后做个比较。
1、强化共同目标
之前,对于开发和运维来说,开发人员只负责编码,运维人员则确保其正常运行。Ticketmaster的首席技术官Jody Mulkey在过去25年时间里,将开发(Dev)和运维(Ops)比作美式橄榄球比赛,其中,Ops是防守组,视图阻止对方得分;Dev则是进攻组,其目标是尽全力得分。当有一天,他意识到这个比喻并不恰当,因为Dev和Ops从来没有同一时间出现在球场上,因为他们实际上并不属于同一个团队。
如今,DevOps强调的是共同的目标,是通过建立彼此的信任共同完成目标。因此,此时的比喻是,Dev的工作是持球冲锋,而Ops的工作是保证Dev有足够的时间向前冲,他们同时出现在球场上,他们属于同一个团队。
2、对开发人员的改变
DevOps使得开发人员的任务更井然有序且快速交付。
之前,开发人员都是按照需求说明书开发软件,需求说明书里需要提供什么功能,开发人员就开发什么功能。在开发之前,还需要编写概要设计文档和详细设计文档,这些文档都被评审通过后,才能进行开发。功能开发完成后,还需要等待运维人员耗时一周左右的环境部署,最可怕的是,这些功能交付到用户手上或许并不是他们想要的,延期返工现象非常严重。
如今,DevOps开发采用敏捷开发模式,基于Scrum、看板方法等工具,以MVP(最小可交付单元)作为价值单元交付给用户,用户试用后及时反馈,一起辅助开发人员设计系统。正如敏捷宣言所提到的,个体和互动高于流程和工具,工作的软件高于详尽的文档,客户合作高于合同谈判,响应变化高于遵循计划。另外,DevOps持续集成,持续交付自动化工具链,使得开发人员只关心业务代码编写,提交后的代码自动进行构建、打包、部署,不需要依赖于运维人员,大大提高了软件部署的频率,快速交付用户价值。
3、对运维人员的改变
DevOps对于运维人员的改变是最关键的,大大提高了他们的工作效率,甚至明显改变了现代敏捷运维团队的职责范围。
之前,运维人员负责保证各个应用程序的正常运行。包括部署环境搭建,数据库服务器和web服务器安装和设置,应用软件的部署,应用软件的监控等。特别是当紧急需要一套环境时,当大规模安装、部署服务器软件和应用软件时,对于运维人员是一场噩梦。
如今,随着Chef、Ansible等工具的出现,DevOps实现了高标准化,仅需要几个简单的工具,就能通过自动化的方式安装、部署大批量的环境和服务。运维人员的职责也转变为部署和维护这种自动化的DevOps服务。
DevOps使得开发和运维人员联系更加紧密,通过建立和强化彼此的信任关系,基于DevOps自动化服务,共同实现高效,高质量,稳定的交付用户价值的目标。
领取专属 10元无门槛券
私享最新 技术干货