什么是DevOps
?
随着微服务及容器化技术的普及至大众视线后DevOps常被提及,关于DevOps似乎并没有一个标准的定义,如果说从基于目标导向去给它做一个定义,DevOps是一套实践方法,即在保证高质量的前提下,缩短系统由变更、提交、部署更新到生产环境的时间,DevOps的核心由此可见体现在“保证高质量”, “缩短时间”,“部署”。
如上图,传统开发和运维之间存在一堵墙,开发人员想改变而运维人员想要稳定。另外,传统开发工具与运维工具也存在一堵墙,并没有打通成为一条工具链。
从字面上来理解DevOps ,Dev(开发人员)+Ops(运维人员),DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。
缓慢而繁琐的瀑布模型演变成敏捷,开发团队在短时间内完成软件开发,持续时间甚至不超过两周。如此短的发布周期帮助开发团队处理客户反馈,并将其与bug修复一起合并到下一个版本中。
虽然这种敏捷的SCRUM(迭代式增量软件开发)方法为开发带来了敏捷性,但它在运维方面却失去了敏捷实践的速度。开发人员和运维工程师之间缺乏协作仍然会减慢开发过程和发布。DevOps就是基于对更好的协作和更快的交付的需求而产生的。
从2009年提出DevOps的概念,时至今日已经有十余个年头,在此之前DevOps为什么没有迅速走红,总结主要原因为以下几点:
● 之前的云计算还属于小众产品,虚拟化、虚拟机还是重量级的IT基础设施。
● 容器相关技术(Docker为代表)没有横空出世,导致DevOps无法迅速走红。
● Micro Service即微服务尚未广泛的推广使用。
DevOps开始深入人心,和云计算、容器/Docker、微服务、敏捷等相关概念和实施的发展离不开,互联网迅猛的发展,需要更快的业务试错与业务创新,让软件的生产、交付、获取、升级变得自动,DevOps在传统企业也开始备受关注开始走红。