在DevOps概念出现之前,运维的工作主要集中在上线、解决日常突发问题等一些基本的工作上。在外人看来,运维就是一个管机器的,工作没有什么技术含量,所以在很多公司,运维的话语权是很低的。DevOps提出之后,开始追求自动化,持续集成、继续部署,这就开始让一些运维人员心中不安起来,这不就是我做的工作吗,我是不是要被替代了,我是不是以后就没有用了?本文就来简单探讨一下这个话题。
DevOps是一种软件开发方法,涉及软件在整个开发生命周期中的持续开发,持续测试,持续集成,持续部署和持续监控。 这些活动只能在DevOps中实现,而不是敏捷或瀑布,这就是为什么顶级互联网公司选择DevOps作为其业务目标的前进方向。 DevOps是在较短的开发周期内开发高质量软件的首选方法,可以提高客户满意度。
DevOps一种思想和文化的转变,结合自动化的理念及工具,重新定义开发和运维人员的合作方式。开发和运维之间界限正在慢慢模糊甚至消除,带来的结果是应用程序上线速度提升,QA周期变短,部署由一月几次提高至一天几次。这是一种趋势,是在过去十年逐渐发展,并且在软件和流程方面都已经非常成熟的结果。
早在2005年,当时作为Ruby的开发人员Luke Kanies厌倦了手动配置Linux和手动修改配置文件,他想通过一种可编程并且可重复的方式来替代手工操作,因此,他写了一个Ruby脚本,帮助他实现功能,并且将之命名为Puppet。后来,出现了许多类似的工具,包括Chef,Ansible,SaltStack等,都可以用来实现类似的方式来代替手工操作,而不需要考虑底层。
利用好这些工具,开发人员可以只运行一个脚本,就可以创建一个可以运行一个应用程序所包含的所有环境依赖,并且可以在各种Linux中配置和启动。过去需要专业人士花费很久才可以配置调整好的环境,在这些工具的帮助下,可能一天甚至几个小时就能完成。
开发人员可以不再依赖运维,并且可以比之前更快、更容易的部署他们的代码,自己负责,自己维护。
这也就促成了PaaS的发展,平台及服务。PaaS系统建立在DevOps自动化原则的基础之上。在DevOps中,开发人员可以创建一个工具来管理自己的应用程序,但是在PaaS中,工具都是已经准备好的。使用PaaS中的API,可以很容易的管理运行在其中的应用程序。
但是PaaS缺点也很明显,就是它严格预定义了应用程序的架构。如果开发人员想更好的控制自己应用程序所处的环境,那么可以使用容器。容器可以让开发人员在很短时间内,部署一套甚至几套完全一致的环境。
DevOps工具已经明显的改变了现代敏捷运维团队负责的工作范围。尽管DevOps革命是开发人员发起,但是运维工程师才是采用的关键,因为,工具不仅可以帮助开发人员提升效率,对运维人员也同样。
DevOps已经实现高度标准化,仅仅需要很少的几个工具就可以完全替代人工,并且减少了出错的可能性。
前面提到,DevOps中,开发人员已经可以单独部署环境了,是不是就不需要运维了,其实不然。DevOps平台和工具创建了一种环境,它允许开发和运维团队彼此独立工作。在此环境中,开发人员可以拥有配额,在一定被允许的范围内,开发人员可以按照需求来部署自己所需要的环境,运维人员不再关注部署单个的应用程序。但是硬件设备依然是运维来进行采购、配置和管理,并且规模远远大于单个应用程序,目的是为了让开发人员更容易的使用自动化DevOps服务。
这种技术环境将应用程序的生命周期分开,使开发人员和运维人员能够更紧密的协同工作。让开发人员在明确的系统中部署代码,而让运维团队管理该系统,确保开发人员有单独的职责。
DevOps时代,运维人员必须要深入了解复杂的软件系统,才可以更好的进行工作。
总之,DevOps对运维人员的影响最大,要改变之前的工作及思维方式,更多负责维护系统级,并且要为开发人员提供更自动化的按需部署选择。
个人改变
运维人员需要不断跳出舒适区,去跨界识别风险和提供优化方案;需要让自己变成善于整合资源的人,集中各团队的优势能力,让运维交付更快、服务更稳定。
越来越多的企业,开始招聘具有运维经验的程序员以及具有编程经验的系统管理员,这就需要运维人员不断补充新知识,加强自己的各方面能力,才可以在新的大环境下生存的更好。
工具改变
简单来说,就是把之前需要手工操作的工作,逐渐变成自动化执行。需要把持续集成自动化当作第一要务,有了持续集成平台之后,再去解决底层及上层应用调度的自动化,最终形成自底而上的全自动化调度平台。
按照大自然的发展规律,通常都是适者生存,社会在不停的发展一切事物都会经历从新到旧不断更替甚至是淘汰的过程。而对于运维行业来说,DevOps的出现解放了运维,让运维不再从事那么例行繁琐无价值的部署上线。但是,DevOps时代,运维还是一个必不可少的角色,因为运维的作用不仅仅只是上线部署,运维有更多丰富而多彩的职能:质量、成本、效率和安全。
但是,广大运维同胞也不要高兴得太早,DevOps时代,虽然对运维需求也是很大,但是并不是缺少传统运维,而是缺少新型DevOps运维。运维同学只能通过不断的学习,让自己摆脱那种人肉运维的曾经,才可能不被社会淘汰,如果拒绝这种成长,继续让自己待在舒适区,那么,等待自己的,只有被动式淘汰!