如果你或你的公司正在寻找向DevOps的过渡,我建议你应该更多地关注洞察力的战略性前瞻性思维,至少它可以帮助构建敏捷实践和自动化流程。

如今的IT部门是企业快速应对市场、获取竞争优势的主要动力。IT专业人士开始改变自己在行业内管理项目的方式,管理方法本身也在不断完善。想象一下,互联网正在颠覆各个行业。我们试图从一个高层次的角度来看待这个问题。作为信息行业的领导者/跟随者,IT项目管理怎么可能弱?

DevOps起步于发达国家,他们的互联网起步比我们早。在这一理论的影响下,敏捷性和持续交付成为软件开发和测试领域的新热点,因为它描述了一些能够有效处理现代工作流的核心原则和过程。

DevOps的整个画面并不是立即以黑白呈现的。想要落地,就要接受一个循序渐进的步骤和阶段。换句话说,世界上最不会改变的就是改变。DevOps不是老板一拍脑袋就能迅速落地的东西,在实施过程中也没有一劳永逸的具体实施。翻译成IT术语,DevOps是通过简化组织的工作方法,打破组织筒仓,有效促进合作来实现的。

这篇文章讲的是典型的组织为了跟进DevOps要走的弯路,以及为什么大部分的组织还是找不到自己的DevOps之路。除了devops,我们还讨论了不同级别的敏捷性和组织需要克服的障碍。

敏捷的四个阶段

现代软件交付链涉及许多重要的工具和流程,许多组织正在升级并进入DevOps的下一阶段。虽然不能一口吃胖,但是DevOps中有四个主要的敏捷阶段可以作为一定的参考标准。

瀑布流:瀑布交付是很多企业使用的交付模式,其内涵包括一些手工流程,比如测试。代码是以特定的速度编写、测试和交付的。所有的整体团队,包括开发人员、运营和质量保证,都是孤立运作,很少合作。

初始敏捷性:一般来说,具有一定敏捷性的组织都处于瀑布式的快速阶段。然而,由于灵活性,重新定位或修复bug的机会是有限的,最终产品可能是...咳咳,我们继续。在实际操作阶段,GitHub上的很多工具很可能会给工作流带来一定程度的自动化和可扩展性。然而,即使在此基础上有一些自动化测试,基本的过程决策约束仍然存在,比如一些并行测试。

持续集成:DevOps通过使用詹金斯、CircleCI、TeamCity等有利于楼宇自动化的持续集成平台,已经到了一定的阶段。在这里,识别交付模式中的深层次问题,并将开发和运营角色的功能集合在一起,从而可以在不占用额外资源的情况下实现快速诊断和快速解决。

持续投放:至此,DevOps基本成型。实现连续交付的组织采用几乎完全自动化的开发过程,甚至包括高频率和精确的自动化测试。此外,开发、运营和QA团队也形成了战斗力,不断同步。在这个阶段,调整业务需求、IT项目、开发团队、IT运营人员等曾经麻烦的动作变得更加顺畅,从而不断提供新的应用版本。

提高测试灵活性

通过采用与开发、交付和产品相关的工具来启动DevOps的组织很可能会发现自己在敏捷性方面受到高效和自动化测试过程的限制。我知道说起来容易,但是破解的方法就是提高测试效率。

以前的DevOps工具和方法已经提高了一些测试效率,比如自动测试、云测试、并行测试……但是这些让测试更高效、提高敏捷性的策略至今还没有成为DevOps对话的核心部分,而是构成了简单、低成本、更灵活的方法来实现全面、可持续交付的目标。

为什么自动化测试对DevOps很重要

在实现连续交付方面,自动化测试的本质不同于其他DevOps工具。当目标是实现整体敏捷性时,自动化测试的重要性就凸显出来了。

在我的印象中,开发Web应用的企业在过去的很多年里,充分利用了DevOps启发的工具和技术。从GitHub仓库到Jenkins,他们已经实现了几种方法来构建一些自动化流程。爬行探索的这些流程,很大程度上可以保证开发能够轻松愉快的与QA和运维沟通。另一方面,其中一些特定的企业在很大程度上吸收了DevOps文化。

但是应该指出的缺点是他们缺乏自动化测试的DevOps资源,或者说他们赤手空拳空打世界。虽然可以编写测试脚本,但是大多数测试都是在临时构建的基础上进行的,团队在构建过程中没有包含自动测试。

缺乏完整的测试自动化过程意味着仍然难以产生高频率和可靠质量的应用程序。此外,这很可能会破坏组织已经实施的其他新变更的管道价值,即开发和交付。虽然这些变化优化了开发和部署,但是如果没有实际的自动测试,持续交付仍然是困难的。因此,即使工作流更加敏捷,仍然没有达到持续交付的效果。

这个阶段对于持续交付来说不是没有价值的。既然有缺失的环节,就可以理解为它的价值在铺垫,继续为下一步的DevOps铺垫。使自动化测试成为持续集成工作流的一部分将极大地有助于现有流程的敏捷性。

企业文化和德沃普斯文化如何共同发展

DevOps,你也可以把它当成一种交付心态,一种大家都为我,我为大家的合作心态。团队中的每个人都肩负着业务指标,一起工作以满足需求,并考虑开发、构建、测试和部署到集成环境中。跨团队合作,创造性的挑战和勇气,越来越多的迭代进步,都蕴含着DevOps的概念。

DevOps是高效软件交付的核心。大多数已经超出用户预期的公司,他们的IT模式已经不是你我随便能追上的方式了。他们正在尽最大努力,精通德文。抛开这个大神文明,为了达到持续交付的实质性阶段,尽可能的全面敏捷,我们不仅要使用几个DevOps工具,还要使用DevOps涉及的语言。

组织需要彻底改革瀑布开发时期建立的实践,让工作流完全敏捷,完成DevOps,这样才能更接近你我可能都不太清楚的DevOps概念。启动工具因公司而异,但有一些东西是岗位必须要实现的:在运维方面,想想自己想要什么样的自动化;测试人员,请想想你想要什么样的自动化;发展不需要考虑。能够帮忙,才是最大的幸福。毕竟听说你玩OT的水平最高。

1.《easyops EASYOPS系列 | 老司机解读DevOps很好却难落地?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《easyops EASYOPS系列 | 老司机解读DevOps很好却难落地?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1693882.html