【51CTO.com快译】如今,产品开发和软件部署正在不断发展,以满足对速度(不断增长的需求)、可扩展性以及提高效率(产品质量)的需求。科技公司必须不断学习并适应不断变化的需求,以尽快将可行的产品推向市场。
在以往,IT部门通常是集中式团队,但流行的运营概念近年来已经开始用于企业的IT团队以更有效地满足用户的需求。基于这些概念,尽管仍然协作工作,但IT团队已被划分成具有不同角色和成果的专业部门。其中一些流行的概念包括TechOps、DevOps和NoOps。
TechOps、DevOps和NoOps并不是技术堆栈或编程语言的示例,它们是确定IT团队如何介入和交付的工作模型,是生产、部署和维护技术产品的不同方法。
以下了解一下这些概念。
TechOps
TechOps(技术运营)的范围广泛,并且其定义有时令人感觉到模糊,可能给人们的印象是它涵盖了与IT相关的所有内容。诚然,TechOps的实践因组织而异,但它们有交付和维护现有技术基础设施的责任。这涉及网络维护、数据库管理、安全维护与合规、灾难恢复、网络优化、软件安装和升级等功能,以及其他支持任务。
TechOps更像是一个角色。这个角色有助于减少开发团队的工作量,以便他们可以专注于软件开发,同时确保有效地处理其他关键技术任务。
TechOps不包括应用程序、系统或软件开发。它也不涉及软件实现。总之,TechOps概念有助于执行除了软件开发以外的所有IT相关角色。
TechOps的角色主要由拥有相关IT相关技能的计算机工程师担任,例如编码、项目管理、事件分析、解决问题等。TechOps经理的职位需求量大,根据美国劳工统计局的预测,从2018年到2028年,TechOps经理的职位数量预计将以平均6%的速度增长。而根据著名求职网站Zippia公司的统计,TechOps经理的平均年薪为114000美元。
开发运营
DevOps(开发运营)是一种文化、一种工作实践或一种工具,它将以前独立的开发、运营和质量保证单元组合成一个单一的协作力量,共同提高生产力,并优化软件开发价值链。它还涉及软件开发和IT运营之间的相互作用。但一些专家认为它不能替代TechOps。与其相反,它填补了TechOps在整个IT运营中留下的空白。
与TechOps不同,DevOps不是一个角色。DevOps是一种文化、一套实践和一种工作方式,可以增强IT运营,尤其是开发和部署。DevOps的总体目标是确保以尽可能快的时间和最有效的方式交付高质量的程序。DevOps的实践大多在开发过程中实施,以确保持续集成和持续开发。
这一概念加速了应用程序和程序的开发,同时也根据用户的利益改进了产品。DevOps还积极参与业务分析、编程、测试软件和Web应用程序。TechOps和DevOps之间的一个主要区别在于后者采取预防性和主动性的方法,而前者则更具反应性。
根据Atlassian公司在2020年进行的DevOps趋势调查,99%的实施DevOps的受访者表示,这对其所在的公司有好处。本报告还观察到,与其他未实施DevOps的公司相比,完全采用DevOps的企业具有更快的产品上市时间、更少的复杂性,并且是更好的问题解决者。
TechOps是DevOps的替代品吗?
在许多方面,TechOps与DevOps类似。许多开发人员认为TechOps是DevOps更传统的方法,但它远不止于此。该方法将软件开发和IT运营视为一个完全集成的流程,并寻求增强该工作流程并实现更高的灵活性。TechOps不强调敏捷性和速度,而是强调稳定性和可靠性。
TechOps将在工作环境中测试和监控已经完成的系统。它们的职责可能包括在服务器崩溃后重新启动服务器,以及自动化处理错误测试和错误报告的流程。这两个例子都发生在产品制造完成之后。而这些角色也不同于生产团队。
另一方面,DevOps消除了企业各部门之间的孤岛。DevOps从项目一开始就结合了TechOps。这些团队还通过协作来识别挑战并加快开发过程。
与TechOps相比,DevOps是适应性更强的概念。这种区别是由于这两个IT概念的可操作性造成的。在TechOps坚持一套法规体系以保持稳定性和降低风险的同时,DevOps积极创建自己的规则以快速开发软件。DevOps使用各种技术来找到更好的解决方案。
从各种迹象来看,虽然TechOps和DevOps在IT开发过程中发挥着重要作用,但它们不应被视为替代品。
要实现稳健且高效的工作运营,企业需要拥有能够处理维护、恢复和优化的TechOps。如果也有DevOps来确保敏捷开发当然会更好。在软件开发生命周期 (SDLC)的某个时刻,这两个概念必须协作才能进行扩展。
NoOps
NoOps的理论是IT运营可以完全实现自动化,因此不需要运营团队来管理和控制开发过程。NoOps设想了一个软件环境,在这种环境中,其功能的顺利运行不需要人类参与。因此,每项活动都是自动进行的。
在通常情况下,应用程序编程团队在编写代码之前确定并收集软件程序的需求。在将代码交付给实施和维护程序的运维团队之前,开发团队在单独的测试环境中进一步确认程序的效率,以确保开发质量。运营团队还需要确保该计划始终有效。
NoOps是从传统方法到IT运营的巨大转变。它建议通过利用自动化技术、机器学习甚至人工智能来重构IT流程,以消除员工当前管理的重复性和功能以及更复杂的功能。
通过简化和自动化操作,减少对广泛的内部技术操作活动的需求,NoOps可以完全消除与实施和监控项目相关的大部分责任。虽然它不是一刀切的解决方案,但通过帮助企业节省金钱和时间来提供卓越的价值。
总结
NoOps方法是IT运营的自动化,这样就不需要企业内部团队进行管理和控制。在这种方法中,运营团队的所有维护和相关任务都是完全自动化的,不需要人工干预。
虽然使用人工智能来自动化运营可以提高效率,但企业可以使用云计算服务和人工智能来消除所有IT运营的想法仍然遥不可及。NoOps可以部署,但只限于有限的操作。如果需要扩展,那么就不能严格依赖NoOps的概念。
尽管有人认为NoOps可以替代DevOps,但调查表明并不如此。在Statista公司的一项调查中,90%以上的技术专家并不认为NoOps是DevOps的完整替代方案。
技术专家认为,没有必要进行NoOps和DevOps之间的辩论。因为这是一个使用不同术语试图达到相同结果的问题。
NoOps在一开始就很有效,但从长远来看,需要更多才能确保高效交付和高质量输出。TechOps领域仍然相关,但它们也在随着自动化的日益普及而发展。最后,TechOps、NoOps和DevOps应该是互补的,而不是被视为替代品,至少目前是这样。
结论
如上所述,TechOps是一种角色,DevOps是一种工作实践或文化,NoOps是对云计算服务等自动化技术的严格应用,以增强企业的业务运营。而对这三个概念的研究表明,它们可以协同调整,而不是替代调整以提高效率。
原文Role of TechOps, DevOps, and NoOps in the SDLC,作者:Eugenia Kuzmenko
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】