DevOps有哪些常见的7大认知误区?

2023-06-27 10:46:00
翰德恩咨询
原创
570
认知误区1:DevOps只适用于创业公司

澄清:尽管谷歌、亚马逊、Netflix和Etsy等互联网独角兽公司是DevOps的先驱者,但这些公司在过去也曾面临巨大风险。与传统企业相比,他们遇到的问题其实并无二致:高风险代码可能导致灾难性故障,新功能发布不够迅速,安全合规性问题存在,服务扩容困难,开发和运维之间缺乏信任等。

然而,这些公司能够及时调整架构、技术实践和文化,并创造出了惊人的DevOps成果。正如信息安全高管Branden Williams博士所说:“不要关注DevOps是否适合独角兽或传统企业,只要能够快速奔跑就能达到目的地。”


误区2:DevOps将取代敏捷

澄清:DevOps的原则和实践与敏捷方法一致,因此许多人认为DevOps是自2001年敏捷之旅开始以来的合理延续。敏捷方法通常是DevOps效率的保障,因为它专注于让小团队向客户持续交付高品质的代码。

如果我们将每次迭代的目标扩展到让代码始终处于可发布状态,并鼓励开发人员每天都将代码提交到主干,并在类生产环境中演示功能,那么许多DevOps相关的实践就会浮现出来。这种方式可以保证代码质量,并且有利于快速、高效地部署新功能。


误区3:DevOps与ITIL不兼容

澄清:许多人认为DevOps与1989年发布的ITIL(Information Technology Infrastructure Library,IT基础架构库)或ITSM(IT Service Management,IT服务管理)背道而驰。ITIL对数代运维实践者产生了广泛影响,至今仍在不断演进,旨在稳定地支撑世界级的IT运维,并涵盖服务战略、设计和支持等流程和实践。

实际上,DevOps可以与ITIL流程兼容。然而,为了支持DevOps所追求的更短的发布周期和更频繁的部署,ITIL流程的许多方面需要完全自动化,以解决配置和发布管理流程相关的问题,例如保持配置管理数据库和最终软件库的最新状态。由于DevOps需要快速定位和恢复服务事件,因此这些自动化的流程其实与ITIL的服务设计、事件和问题管理原则相一致。


误区4:DevOps与信息安全及合规活动不兼容

澄清:传统的控制手段,如职责分离、变更审批流程和项目结束时的手动安全审查,可能会令信息安全和合规审计人员感到失望。然而,这并不意味着采用DevOps的公司缺乏有效的控制措施,只是这些控制措施不一定体现在项目结束时的安全和合规性活动中,而是集成到了软件开发生命周期的每一个日常工作中,从而提高质量、安全性和合规性。

通过将安全性和合规性作为软件开发过程的关键组成部分,并采用自动化工具来支持和执行这些任务,DevOps可以帮助开发团队更快地交付高质量的软件,并减少出现问题的风险。此外,DevOps还倡导团队之间的紧密合作和透明度,这有助于识别和解决潜在的安全和合规性问题。因此,即使没有传统的控制手段,DevOps也能够保证软件开发生命周期中的安全性和合规性。


误区5:DevOps意味着消除IT运维,即“NoOps”

澄清:许多人错误地认为DevOps会完全消除IT运维的职能,但这种情况很少见。尽管IT运维工作的性质可能会发生改变,但它仍然像以前一样重要。在软件生命周期的早期,IT运维团队就需要与开发团队展开合作。而在代码部署到生产环境后,开发团队也需要与运维团队持续合作。

IT运维的角色不仅仅是处理工单和手动操作,而是可以通过自助服务平台和API来提高开发人员的生产效率,使他们能够自主创建开发环境、测试和部署代码、监控业务运行状态等。通过这种方式,IT运维人员更像是开发人员、QA或信息安全人员,融入到产品开发过程中。而该产品则是开发人员用于在生产环境中安全快速地测试、部署和运行IT服务的平台。


误区6:DevOps只是“基础设施即代码”或自动化

澄清:虽然许多DevOps模式需要自动化,但实现共同目标的IT价值流还需要文化规范和架构的支持,这远远超越了自动化的范畴。DevOps最早的拥护者之一Christopher Little也是一名技术主管,他曾写道:“DevOps不仅仅是自动化,就像天文学不只是望远镜一样。”

成功的DevOps实践需要整个组织的文化、流程和工具的变革,要求开发人员、运维人员和其他利益相关方之间进行紧密合作,在快速交付高质量软件的同时保证可靠性、安全性和合规性。这需要建立一种共同的理解和信任,并采用适当的架构和工具来支持DevOps实践。因此,尽管自动化是DevOps的重要组成部分,但只有在文化规范和架构的支持下,才能在IT价值流中实现共同目标。


误区7:DevOps仅适用于开源软件

澄清:尽管许多成功的DevOps案例发生在使用LAMP栈(Linux、Apache、MySQL、PHP)等技术栈构建软件的公司,但实现DevOps与所使用的技术无关。即使是使用Microsoft .NET、COBOL、大型机汇编语言或SAP等编写应用程序的公司,以及嵌入式系统(如惠普LaserJet打印机固件程序)等领域,也能够通过采用DevOps进行改进并取得成功。

关键在于理解DevOps的原则和实践,并将其应用到公司的特定上下文中。无论所使用的技术是什么,DevOps都可以支持团队快速交付高质量的软件,并帮助企业实现更高的效率和竞争力。因此,不管你正在构建什么样的应用程序,DevOps都是一个通用的方法,可以帮助你实现成功。

联系我们
联系人: 田老师
电话: +86 135 5227 9573
Email: clientservice@hardenx.cn
地址: 北京市朝阳区福码大厦B座17层1705

加微领1G资料