比如两个团队的目标是不一样的,开发人员希望赶紧测试完成快速上线,上线后系统有问题,运维顶在前面;运维人员希望系统平稳运行,最好一个BUG别出;这两个目标实际上是冲突的。
想要敏捷开发但是敏捷不起来,无法快速响应用户的需求,甚至当系统出现问题时,还会发生互相甩锅的问题。
针对这种问题,行业内提出来DevOps,这个单词是Development和Operations的组合,突出了软件开发人员和运维人员的沟通合作,甚至开发和运维都是一个人(一组人),DevOps的提出是为了抹掉开发和运维之间的分界,改善团队的协作关系。不过这里要重点提及:DevOps不仅仅是开发和运维,其实测试也是其中的一部分;完整的敏捷开发,连需求都是要变成一个团队的。
总结来说,DevOps的目标就是一个字【快】,减少团队之间沟通的时间损耗和信息衰减,提高团队的工作效率,增加团队产出。
那么是不是把开发、测试、运维人员都放在一个团队中,就完成DevOps了呢?当然不可能这么简单,DevOps还需要管理和技术手段进行辅助,比如:
敏捷管理:在产品(项目、需求)的提出、需求分析、设计、开发、测试阶段主要采用敏捷开发的方法论,确保快速迭代和提高代码质量;
持续交付:在开发、测试、部署环节,采用持续交付的方法,自动完成系统的发布和升级工作;从技术角度来说,容器、微服务、持续集成都是DevOps不可或缺的技术手段;
总之,DevOps可以提高员工的工作效率和质量,从而提高公司的产出;当然,DevOps在企业中的落地,也不是一朝一夕就可以完成的。
偶将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。