14

DevOps已死, NoOps长存

 4 years ago
source link: http://dockone.io/article/9802
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

认识DevOps的不足之处

Nov 11, 2019, by Daniele Fontani

Vz2Azif.png!web

很抱歉,我为了吸引注意力,用了这个诡异的标题。时下的IT趋势中,DevOps 正是一个热语。它起源于几年前SPA (单页面应用) 的前端应用.我认为常态的IT技术适应就是,在新技术爆发的那一时刻开始,立马就会被敏锐的人们所采用,然后被快速传播开来。最近几年的DevOps 就是这样的。但再过几年,你将会听到另外一个流行词:NoOps.

DevOps和 NoOps的差异

DevOps是开发和运维的融合,是开发和运维工程师共同协作,定义应用从设计到交付全生命周期过程的实践。

NoOp的意思是无须操作。它的理念是去掉所有的平台管理部分,从而降低开发人员与基础设施之间的摩擦。

为何需要DevOps?

随着技术和业务需求越来越具有挑战性,IT服务也变得越来越复杂。这使得交付变得越来越重要,也让我们不得不投入精力来编排整个应用交付过程。

有了云平台之后,对系统管理员需求开始下降,但对DevOps技术和业务技能的需求依然很高。要实现DevOps并恰如其分的使用它。这让我们需要考虑技术交付之外的情况。

为何以前没有DevOps?

答案有很多个,你可能会说以前的业务场景更简单或没有足够的技术文化氛围。我很认同上述观点,但我认为那些不是根本原因。根据我的经验,更大的原因应该是技术。交付的自动化其实是很难实现。

十年前的大多数系统,在默认情况下,都没有一步构建或如git-flow一样定义良好的工作流。当时也没有高性价比的CI解决方案,所以难以实现自动化交付。

我记得2009年,我打算部署我自己的一个.net门户。我花了一个周六的上午尝试使用开源工具创建一个自动部署系统,但最后我还是放弃了。因为我知道维护自动化交付比手动部署它的成本要高得多。到了现在,如果使用Azure DevOps服务的话,我只需使用web浏览器就可以在十分钟内完成。果然是时过境迁啊!

为何我所需的比DevOps能做到的要多?

这个原因很好理解,当你历经波折将DevOps引入到你公司后,你可能会认为状态良好啦。但是事实却是IT世界,事物的变化比人快,现在市场需求越发火爆,不断的需求带来了不断的变化和调整,而你不能简单的应对一句:“我已经疲于应付变化,需要歇一下。”

云时代的到来让事情变得更加复杂。它让我们得以实现复杂的解决方案并解决许多挑战,但也需要我们具备更多的技能。

云端的所有组件都是可伸缩的,但是它会牵扯到某些DevOps的配置,既总是需要一些手工干预,在大部分流程运转的背后,仍然需要有人参与。可以理解为这还是旧的工作模式。

NoOps的目的是定义一个不需要开发与运维相结合,就可以使流程顺利进行的过程。NoOps有一个目标:通过设计使所有东西都可以完成部署,而不需要任何人参与。

NoOps大致的方法如下:开发人员将代码提交到代码库就已经完成了全部的部署。看起来与连续交付非常相似,但它所包含的范围更大,这里面不仅有应用程序,还包含了基础设施的部署。

NoOps是如何做到的?

相对于DevOps, NoOps是需要技术支持的。这个支持有很多选择,但基本上,我们可以总结如下:

  • NoOps是一个PaaS解决方案,像 Heroku或由Azure, AWS等云服务商所提供。
  • 从AWS,Azure等服务商处购买的无服务器计算服务。
  • 创建了可复制的基础设施(这几乎是第一步的必要操作)。

上述类似的方案很适合解决基础设施部分的工作,而让传统部署工具能够推动流程处理,交付应用。

闪光的未必都是金子

我坦承,取消基础设施管理的想法很有诱惑力,感觉就像拔掉一颗坏牙。因为在通常情况下,基础设施占用了大量的管理成本,还带来了开发和运维之间的摩擦。

但另外观点是,问题不在于基础设施,而在于流程。如果流程设计良好,就不会有摩擦,不会有延迟,一切都可以有条不紊的进行。

你会担心管理成本吗?其实你应该考虑整体成本,而不仅仅是管理成本。也许您云上基础设施的管理成本更高,但最终的成本会是相同的。但这也不绝对。困惑吗?这其中的秘密就是有些应用程序可以部署在PaaS上,有些则不能。仅此而已。如果您的应用程序很简单,那么PaaS是一个很好的解决方案,DevOps人员将乐于减少工作量。但如果你要推出的是下一个Netflix,那你将需要更多的控制权利,PaaS服务就没那么贴切啦。这就是根源所在。

说到最后,其实无所谓DevOps或NoOps。最根本的驱动是:用尽可能少的维护工作,去创建智能的基础设施,并将一切自动化。使用如谷歌云或其他的公有云服务,您都能为你的应用场景找到最佳的解决方案。

那么,从这个角度来看,什么是NoOps?本质就是云化趋势中的另一个流行词。

原文链接:(翻译:易理林)


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK