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

DevOps已死,NoOps永存

时间:2023-03-12 06:59:51 科技观察

抱歉,我用了这个奇怪的标题来吸引注意力。在当前的IT趋势中,DevOps是一个流行词。它起源于几年前SPA(SinglePageApplication)的前端应用。我觉得正常的IT技术适配就是当一个新技术爆发的时候,马上就会被敏锐的人所采用,然后迅速传播开来。近年来,DevOps就是这种情况。但几年后,您会听到另一个流行词:NoOps。DevOps和NoOpsDevOps的区别在于开发运维一体化。是开发和运维工程师共同定义从设计到交付的全生命周期过程的一种实践。NoOp表示不需要操作。它的想法是删除所有平台管理部分,从而减少开发人员和基础设施之间的摩擦。为什么需要DevOps?随着技术和业务要求变得更具挑战性,IT服务变得更加复杂。这使得交付变得越来越重要,并迫使我们投资于协调整个应用程序交付过程。有了云平台,对系统管理员的需求开始下降,但对DevOps技术和业务技能的需求仍然很高。实施DevOps并适当使用它。这使我们需要超越技术交付的思考。为什么以前没有DevOps?有很多答案。你可能会说以前的业务场景比较简单,或者说技术文化不够。我同意以上几点,但我认为这些不是根本原因。以我的经验,更大的原因应该是技术。交付的自动化其实是很难实现的。十年前的大多数系统默认情况下都没有一步构建或定义明确的工作流程,如git-flow。当时没有性价比高的CI方案,很难实现自动化交付。我记得在2009年,我打算部署自己的.net门户。我花了一个星期六的早上试图使用开源工具创建一个自动化部署系统,但最后我放弃了。因为我知道维护一个自动交付比手动部署它要昂贵得多。现在,借助AzureDevOps服务,我只需使用Web浏览器即可在十分钟内完成。果然,时代变了!为什么我需要的比DevOps能做的更多?这个理由很好理解。当你历经波折将DevOps引入到你的公司后,你可能会认为状态很好。但事实是,在IT世界中,事物的变化比人快。现在市场需求越来越火热,不断的需求带来不断的变化和调整。稍等片刻。”云时代的到来,让事情变得更加复杂。它使我们能够实施复杂的解决方案并解决许多挑战,但它也要求我们拥有更多的技能。云的所有组件都是可扩展的,但它涉及一些DevOps配置,这总是需要一些人工干预,并且在大多数流程的幕后仍然需要人的参与。可以理解,这还是旧的工作模式。NoOps的目的是定义一个不需要开发和运维一体化的流程,让流程顺利运行。NoOps有一个目标:设计一切,以便在没有任何人参与的情况下进行部署。NoOps的一般方法是:开发者向代码库提交代码,所有的部署都已经完成。它看起来很像持续交付,但它包含的范围更大,不仅是应用程序,还包括基础设施的部署。NoOps是如何实现的?与DevOps相比,NoOps需要技术支持。这种支持有很多选择,但基本上,我们可以总结如下:天蓝色。创建了一个可复制的基础设施(几乎是第一步)。类似上面的方案非常适合解决基础设施部分的工作,同时让传统的部署工具来驱动流程处理和交付应用。发光的不一定都是金子。我承认取消基础架构管理的想法非常诱人。感觉就像拔一颗坏牙。因为一般来说,基础设施会占用大量的管理成本,并且会带来开发和运维之间的摩擦。但另一种观点认为,问题不在于基础设施,而在于流程。如果流程设计得好,就没有摩擦,没有延迟,一切都可以顺利进行。您是否担心管理成本?事实上,你应该考虑整体成本,而不仅仅是管理成本。也许你在云上的基础设施管理成本更高,但最终成本是一样的。但这不是绝对的。使困惑?这里的秘诀在于,一些应用程序可以部署在PaaS上,而另一些则不能。就这样。如果您的应用程序很简单,那么PaaS是一个很好的解决方案,DevOps人员会很乐意减少工作量。但是,如果您要启动下一个Netflix,您将需要更多的控制权,而PaaS并不那么重要。这就是根源所在。最后,真的没有DevOps或NoOps这样的东西。最根本的驱动力是:创建智能化的基础设施,维护工作尽可能少,并使一切自动化。使用谷歌云或其他公共云服务,您可以找到适合您的应用场景的最佳解决方案。那么,从这个角度来看,什么是NoOps?本质是云化趋势中的另一个流行语。