随着 DevOps 越来越被认为是数字化转型的支柱,CIO 们对 DevOps 和开源如何改变企业文化越来越感兴趣。DevOps 指的是一组概念,虽然并非都是新的,但它们已经催化成一场运动,并在技术社区中迅速蔓延。只需看看有多少书籍和资源可供您将 DevOps 计划和实践提升到新的水平。
尽管如此,许多人并不完全理解 DevOps 的含义。并且在没有正确的知识和理解的情况下,许多 DevOps 计划都无法启动。以下是您在开始 DevOps 之旅时常犯的六个错误——以及如何避免它们。
1. 创建一个单独的 DevOps 团队
组织常犯的最大错误是创建一个全新的团队,负责处理 DevOps 计划的所有负担。对于开发和运维部门来说,与一个必须与所有人协调的新团队打交道已经够复杂的了。DevOps 最初的想法是改善参与软件开发(如安全、QA 和 DBMS)的团队之间的协作;它不仅仅是关于开发和运维。如果您创建一个新团队来处理 DevOps,您只会使事情变得更加复杂。
这里的秘诀是简单。通过培养自动化、质量和稳定性的心态来关注文化。例如,您可以让所有人参与关于您的架构的对话,或者关于生产环境中发现的常见问题,所有相关的参与者都需要了解他们的工作如何影响他人。DevOps 不仅仅是关于一个专门的团队,而是关于组织作为一个 DevOps 团队共同发展。
2. 过于关注工具
有很多工具可以帮助您实施 DevOps 计划。不要通过争论和选择一堆不同的工具来启动您的 DevOps 策略。您很快就会发现很难为团队和组织流程找到合适的工具,因为即使这会使与其他团队的协作更加困难,每个团队(开发人员、IT 运维、安全等)都希望使用特定的工具来进行他们的 DevOps 实践。此外,新工具层出不穷——甚至有一个工具可以帮助集成其他工具。
当然,您需要拥有合适的工具来进行敏捷软件开发、持续集成、部署、版本控制等等。没有合适的工具可能会阻止团队从他们的 DevOps 工作中获得最大收益。但是,仅仅购买持续部署工具或部署应用程序容器不足以将您的组织转型为 DevOps。
您可能会听到一些供应商声称拥有适用于您的 DevOps 实践的完美工具,但请采取不可知论的方法,并记住,没有一个单独的工具可以涵盖您需要的一切。
3. 关注速度而不是安全和质量
许多组织采用 CI/CD 策略作为其 DevOps 计划的一部分,因为他们需要减少开发和部署新应用程序代码所需的时间。然而,DevOps 从业者表示,以牺牲安全和质量为代价来提高速度是一个很大的错误。即使您在生产环境中更快地构建、测试和部署新应用程序,如果这些应用程序无法按预期运行怎么办?
为了保持高安全性和高质量,开发团队应尽可能在开发过程的早期进行测试。更重要的是,在部署之前证明候选版本已准备好进行持续交付。
4. 允许过多的分支
在敏捷软件开发和 DevOps 实践中,软件(主干)应始终可部署,以便开发人员能够每天至少签入主干(而不是功能分支)。如果构建中断,可以在十分钟内修复,并且可以在一天内让新开发人员上手,并在其开发人员工作站上获得类似生产的环境。
如果开发人员习惯了传统瀑布环境,则可能很难让他们摆脱使用分支的习惯,但限制分支可能非常有益。如果您倾向于基于主干的开发,请让开发人员始终在您的代码库的绝大多数一致的单一版本中工作。
根据 Puppet 2017 年的DevOps 状态报告:“我们发现,在合并到主干之前,分支或 fork 的生命周期非常短(少于一天),并且总共少于三个活动分支,这是持续交付的重要方面,并且都有助于更高的性能。每天将代码合并到主干或 master 也是如此。”
DevOps 自动化了您在开发人员机器和生产环境之间处理代码的许多方面。保留代码库的许多不同的概念风格会使 DevOps 关注的问题变得更加复杂。
5. 不让安全团队参与
DevOps 不仅仅是将开发和运维团队放在一起;它是一个持续的软件开发和自动化过程,包括安全、审计和合规性。许多企业犯了没有提前很好地遵循其安全实践的错误。
事实上,CA Technologies 的一项调查发现,安全问题是 DevOps 的首要障碍,38% 的受访者提到了这一点。同样,Puppet 的调查发现,高性能 DevOps 团队“修复安全问题的时间比低性能团队少 50%”。显然,这些高性能团队已经找到了沟通其安全目标的方法,并在其开发过程的早期阶段构建了安全性。
DevOps 从业者应了解流程,评估控制措施并识别风险。最终,安全始终是 DevSecOps 等 DevOps 实践的一部分。例如,如果您的生产环境中存在任何安全问题,您可以通过安全团队已使用的工具在您的 DevOps 管道中解决这些问题。DevOps 和安全实践必须严格遵守。不应有任何妥协。
6. 没有为文化变革做好准备
一旦您拥有了 DevOps 实践的合适工具,您可能会面临一个新的基础性挑战:尝试让您的团队使用这些工具来实现更快的开发、自动化测试、持续交付和监控。您的开发或运维文化是否已为变革做好准备?
例如,敏捷方法通常要求您每周甚至每天发布新代码一次。这可能会导致许多笨拙、停顿和失败的敏捷采用。您在 DevOps 中面临相同的概念性问题。这可能就像用一辆没油的车驶上一条漂亮光滑的新路。
为了避免这种情况,请计划一个过渡期。留出足够的时间让开发和运维团队适应您的新实践。确保他们有机会亲身体验新流程和工具。在采用 DevOps 之前,请确保您已经成熟了您的开发和运维文化。
结论
一旦您克服了挑战并采用了 DevOps 实践,您的组织将享受到更高的敏捷性、更高的客户满意度和员工士气以及更高的生产力——所有这些都应有助于您的业务增长。
评论已关闭。