经过此前的文章介绍,相信大家都对DevOps有了简单的了解。(回顾DevOps是什么、生命周期点这里:《DevOps生命周期,你想知道的全都在这里了!》)DevOps的概念和工具在近些年呈现如火如荼的趋势,且根据预测将持续增长。但DevOps并非一朝一夕就能实现,而是需要在循序渐进的使用中愈发熟练、完善。
您可能已经注意到,人们决心在他们的环境中实现DevOps,并期望从中获得更大的好处。诚然,DevOps可以让软件开发之旅走上快车道,但在本文中将展示DevOps的另一面,即将DevOps视为一种哲学。事实就是,仅仅依赖工具并不能帮助实现目标,还需要有心态上的改变。
是的,DevOps并不完全是为了更快的软件开发和交付。事实上,它促进了协作环境,在这种环境中,软件可以更高效、更少Bug、更快速,而且更重要的是,以用户为中心。
DevOps的定义指出DevOps弥合了开发和运维之间的鸿沟。DevOps的最终目标是缩短软件开发生命周期,但是不应该忽视软件的质量。许多关键的技术组织,如亚马逊、Netflix、NASA、IBM、微软、谷歌、Facebook等,都在他们的开发环境中使用DevOps作为方法论。
但是你真的理解DevOps这个词及其整套理念吗?
不能仅仅通过减少软件交付的时间就说你在做DevOps或敏捷。如果你的组织正在做DevOps,那么团队中的每个人都必须参与到整个DevOps规程中,该规程注重于强大的协作和早期的反馈。
从无到有的DevOps旅程
根据Gartner的调查,到2023年,90%的DevOps计划是由于领导方法的限制而不是技术原因而失败。DevOps从无到有的旅程将需要每个人的努力和关注,因为DevOps着眼于整个团队而非个人。这就是观念在采用成功的DevOps流程中可以发挥重要作用的地方。
当你考虑理念问题时,以下几点是必须具备的:
●能够理性思考特定问题
●能够独立清晰地思考
●以更广阔的视角分析和解决问题
当你接受“DevOps作为一种哲学”以及有效的DevOps工具时,软件开发方法将被转移到深远且快速的软件交付上,并与每个阶段的用户反馈保持一致。
有许多传统的软件开发模型,比如瀑布模型、螺旋模型、迭代模型、极限编程模型等等。另一方面,DevOps是一种基于敏捷原则的新文化,它在较短的时间内重视软件的方法、过程和质量。
为什么DevOps的转变对组织来说会如此困难?DevOps之旅对大多数组织来说都是痛苦的,因为:
●人们抗拒转变
●团队不协调及精力有限
●对自动化不切实际的期待
●专注于上述因素,就可以逐步在组织中为DevOps营造一个建设性的氛围。
自动化被误解了
我们经常听到DevOps使用CI(持续集成)和CD(持续交付)来自动化软件开发管道。但这只是部分真相。
毫无疑问,DevOps指的是软件开发、测试和部署的自动化,但这并不意味着不需要人工智能和协作。虽然有些流程可以毫不费力地实现自动化,但有些流程需要高级功能。记住“导致devops失败的往往是人,而不是流程”,Gartner研究总监George Spafford如是说。
为了在竞争中获得优势,应该关注软件开发的质量。自动化是必不可少的,并且通过消除冗余任务节省了您大量的时间和精力。
但是,更重要的是质量标准,通过人和机器共同维护。在这里,人们可以帮助将提议的开发图与开发的系统相匹配,这样他们就可以更加关注客户的满意度。
改变不是一朝一夕发生的,要循序渐进
你不能指望在一两天内就能成功实现DevOps。它可能需要几天、几周甚至几个月的时间才能成熟。在这里,“将DevOps视为一种哲学”可以帮助建立一种心态——以缓慢而坚定的心态帮助企业实现根本改变。
软件不再只停留在网页端和移动端范围内。它正在超越机器学习、人工智能、大数据分析、物联网的崛起。
在数字时代,需要持续的联系和以质量为导向的心态。在这样的场景中,DevOps之类的概念可以让您获得同步的好处,从而通过以客户为中心的软件解决方案交付价值。
不要仅为了更快的交付而实施DevOps,需要做的是:
●确认DevOps的真正优势
●依靠“DevOps哲学”来带来文化变革
●为组织定义自动化和协作
●在进行下一步工作之前,注意整体基础设施
●确定目标和衡量标准
●不要害怕失败
●开发整个工具链并培训员工
人员和流程必须按照共同的思维方式工作,以便向最终用户交付价值。这个原则适用于任何类型的软件开发。
作者:陈琦,资深敏捷测试顾问,作为国内知名项目管理软件——禅道的团队成员,主要负责开源自动化测试管理框架——ZTF的开发工作。拥有十多年的敏捷过程实践经验,现致力于测试自动化和DevOps相关领域的实践和研究。