发布于:2021-01-12 14:50:04
0
53
0
没有人喜欢失败的实现。但是,从错误中吸取教训可以防止错误变成真正的DevOps噩梦。我来向大家解释开发人员可以摆脱可怕错误并返回梦想的DevOps实现的五种不同方法。
应用程序不应崩溃。系统不应停机。在DevOps的世界中,并不完全鼓励失败。尽管我们已经将各种迭代定位失败视为积极的事情(失败,失败,经常失败,您可以这样称呼),但事实是,“失败”对实现我们的目标并没有特别的帮助或帮助。
但是,对于我们许多人来说,DevOps失败是不幸的现实,而且往往是不可避免的。也许,重新定义什么是失败和什么不是失败是有用的。失败不能满足您的目标;这是缺乏表现。失败不是失败,而是要从错误中吸取教训,这将使您以后获得成功。
速度对软件开发至关重要,而从失败中恢复同样重要,因此,利用从错误中获得的见解的速度对成功至关重要。以这种理念为背景,这里介绍了一些最常见的DevOps故障,以及如何从中快速学习。
1.不合时宜
DevOps意味着必须以业务速度交付,这在当今快节奏的技术世界中尤其具有挑战性。因此,许多团队在持续集成和持续交付期间并行运行流程,从而使他们能够加快自动化测试速度并缩短反馈周期。
CloudBees工程总监劳拉·弗兰克·塔乔(Laura Frank Tacho)表示:“虽然这可能是一个好主意,但从理论上讲,它有时可能会导致严重的配置错误。因此,允许代码在测试运行的同时进行部署会破坏预部署自动化测试的目的。”
因此,至关重要的是要记住,在将代码部署到客户之前,必须通过所有适当的检查和制衡。尽管DevOps原则断言工程师应该在任何给定时刻准备就绪,但部署应该得到管理和有意为之。连续交付管道的构建必须使并行测试充当生产的大门,而不是自动进行部署的途径。相反,仅应在所有测试,验证,检查和批准均通过后,才在管道的最后阶段进行部署。
2.被锁定
在开发过程的每个阶段都必须有正确的保护层,这一点很重要。例如,无需验证配置,工程师就可以将自己拒之门外,并被迫进入繁琐的手动登录每台计算机以调解错误配置的过程。
“为了避免这类情况,工程师应及早且经常地验证所有更改,以确保不仅确保应用程序的质量,而且还确保环境甚至CD管道本身,” CloudBees的首席软件工程师Carlos Sanchez解释说。将粘性凭证和权限管理应用于DevOps和生产系统还将帮助工程师专注于问题预防而不是检测。
3.组织障碍
DevOps工程师面临的并非所有问题都是技术性问题。有时可能是其组织的文化和结构所致。当多个团队和部门集中在各个孤岛中时,很难将系统和软件开发作为一个整体来对待,尤其是追求持续改进。例如,在尝试促进跨部门协作时,对立团队的回答可能是“那不是我们的部门”或“他们不会与我们交谈”。即使在更具协作性的公司中,跨功能移交和上下文切换所需的时间也是实现速度的重大障碍。
组织围绕产品或软件功能的团队,并包括软件开发过程中的所有利益相关者,将使DevOps领导者提高利益相关者之间的协同作用。它还应该防止有时会困扰传统软件开发的“我们与他们对立”的心态。CloudBees的高级顾问Viktor Farcic表示同意,并指出:“在DevOps中,不可忽视文化。流程,实践,工具和技术无疑是实践的核心支柱,而文化同样重要。令人惊讶的是,这是更难改变的方面之一。”
4.不合适的KPI
随着新技术改善运营流程并转变数字时代的业务模型,业务的步伐只会越来越快。股东正在向组织施加巨大压力,以跟上这一快速步伐。结果,组织发现自己不得不报告多个关键指标以衡量其在所有领域的绩效。
鉴于此,CloudBees的产品营销人员Juni Mukherjee解释说,这些指标并不总是最合适的。“为了有效地证明性能,DevOps领导者必须首先建立一套原则,以帮助他们了解可以获取什么以及如何获取有意义的指标;例如,将交货时间视为生产时间,而不是完成时间。”
5.缩放或不缩放
使用开源软件时,至关重要的是要有经过专业培训的开发人员,他们可以确保软件仍然适合其组织的特定用例。确保充分利用开源社区必须提供的创新也很重要。
但是,为了选择合适的开源软件,CloudBees的首席执行官Sacha Labourey解释说,DevOps团队应该“首先对其组织的需求和业务优先级进行长期观察,并讨论该解决方案将如何在整个过程中扩展。接下来的几年。这样做将使组织能够了解扩展使用量所需的准备工作。”
团队还应该确定解决方案是否与他们现有的工具链保持一致。随着组织规模的不断扩大,他们将很难找到一种可以完成所有任务的工具。结果,沿途的整合是不可避免的。确保这些集成稳定对于其成功至关重要。了解该解决方案将如何适合现有工具并与之配合使用,这是扩展未来以及最终实现组织发展的重要因素。
结论
为了成功地实践DevOps,您必须建立无缝连接以链接人员,流程,工具和目标。但是,这需要艰苦的工作。一路上会有错误和沟通。如果将DevOps流程视为学习和改进的迭代过程,则这些问题虽然具有挑战性,但可以解决。通过正确使用DevOps,开发人员可以将短期失败转化为长期成功。
作者介绍