当前位置: 首页 > 科技观察

DevOps真实失败案例及解决方案

时间:2023-03-22 00:08:41 科技观察

也需要结合真实案例,确保DevOps带来的潜在回报最大化。DevOps在原理层面堪称技术领域的乌托邦。它强调软件开发人员、其他IT人员和管理人员之间的协作和沟通,提倡通过自动化任务处理的方式实现软件交付和基础设施更新。借助DevOps,可以显着加快软件的开发、测试和发布速度,可靠性也将得到提升。然而,尽管有很多成功的案例,但事实证明,DevOps也可能因为各种原因误入歧途。为了防止这种情况再次发生,今天的文章我们就通过实例来分析一下。缺乏项目开发远景IBM自2003年以来一直从事DevOps——甚至在该术语正式存在之前。蓝色巨人希望实现新产品的敏捷软件开发。尽管投入了大量资源,但显然其努力并未取得预期的回报。IBM北美云与DevOps服务线负责人MustafaKapadia表示,“开发速度非常好,但运维团队跟不上,导致客户仍然无法快速得到开发成果。”作为DevOps计划的一部分,IBM随后决定自动化代码部署,同时继续坚持敏捷方法。但是,这也未能提高软件交付的速度。IBM进行了“价值链分析”,发现最大的障碍不是敏捷或自动化,而是整体开发和运营环境。虽然手段有所更新,但原有陈旧不振的环境仍然落后于项目。最终,IBM的DevOps尝试失败了。Kapadia说,“如果我们不知道工作将如何完成以及哪些问题值得解决,那么它不会有助于任何改变。”而这也证明,只要管理者真正了解工作流程及其对速度的影响,就可以有针对性地调整DevOps,达到预期的效果。太多的可访问性,太少的培训早在2006年,专业内容共享网站SlideShare(现已被LinkedIn收购)是一家员工不到20人的小型初创公司。但他们雄心勃勃,希望使用DevOps模型来加速并在竞争中保持领先地位。DevOps的目标是最大化工程团队的效率和传播技术知识,以便当企业的任何成员休假或离开公司时,其他人可以接手。此外,DevOps的一大设计原则就是要求员工对自己的工作有更强的责任感。“这意味着开发人员可能需要接触他们以前不需要知道的基础设施部分,”前SlideShare成员Kalache说。在SlideShare,工程师需要访问生产服务器和生产数据库。一位软件工程师试用了一款MySQL数据库的图形化操作工具。“他决定重组该工具以提高其性能,”Kalache说。“但他没有意识到的是,他的修改对生产数据库的执行顺序产生了影响,最终导致数据库锁定并导致SlideShare.net网站无法访问。”修改导致了这种情况。“这次中断对我们有两个警告。第一,虽然DevOps是关于失去每个人对产品/服务周期所有阶段的参与,但这种广泛的访问可能是极其危险的。在小型企业中,影响可能很小,但对于一家声誉良好的大公司来说,这可能是致命的。”其次,开发人员需要接受更好的培训以了解生产基础设施。Kalache指出,“DevOps是一种高度重视人机交互的工作方式。我们不能预先判断参与者了解某些技能。因此,必须以强制的方式进行培训。”DevOps覆盖面不够有时,失败的结果可能是因为DevOps的方向性太强。一家汽车租赁公司在美国有大量的合作伙伴。每个想要在合作伙伴租车的用户都会通过定制的应用程序获取相关信息并申请服务。但是,由于涉及金融交易,该应用程序还包括第三方服务进行验证。“该软件的DevOps方法围绕该公司的软件顾问纳撒尼尔·罗(NathanielRowe)说:“围绕服务器指标,以确保一致的应用程序性能。但几周前,由于监控结果出现问题,我们不得不关闭整个系统。”方验证服务出现网络中断,直接导致我们的基础设施瘫痪。”出现这个问题的原因相当复杂,包括设计缺陷和外包为了在开发价格期间节省成本。总之,到头来本来不需要的系统指标变成了经营的必要条件,着实让公司措手不及。问题出现后,开发团队立即介入并分享了具体的验证码,几乎杜绝了这种情况发生的可能性。“为了防止以后再次发生这种网络故障,我们建立了全球重路由机制,一旦出现服务问题,第一时间通知合作伙伴。”时间和金钱的前期投资被证明是必要的。执着于眼前的小利而忽视DevOps的适用范围,只会带来更大的损失。忽略人员和流程BrianDawson是CloudBees目前的DevOps布道者,他曾在美国政府的合同供应商工作,当时他们正在帮助政府开发Web应用程序。“我们的工作是构建工具和流程以涵盖所有定义和规则,以协作开源启发式的形式构建、提交和发布代码,”Dawson回忆道。DevOps工具的部署和配置是非常成功的,但遗憾的是,DevOps不能单纯通过工具来实现。他强调“人、文化、流程和工具在DevOps中同等重要”。然而,政府只想快速完成平台建设,而忽略了人、流程等环节。“这意味着虽然我们提供了一个DevOps平台,但它的实际使用方式仍然很陈旧,”道森指出。“整个敏捷流程根本没有得到有效实施,也没有真正进行实际的生产负载测试。”最后,Web应用刚刚发布就遇到了大量的故障。此外,由于涉及多个政府部门,解决问题的周期也相当长。当该站点最终运行时,人们发现响应时间慢得令人难以忍受。几个月后技术问题消失了,但文化冲突依然存在。道森指出,“没有科学人、流程和工具的合作,DevOps无从谈起。”毫无疑问,DevOps是一个非常有效的软件交付加速解决方案,同时它也可以为我们的团队提供一种非常有凝聚力的文化氛围。如果失去了这一点,那么DevOps根本无法掀起这场新的技术变革浪潮。