出品 | CSDN(ID:CSDNnews)
以下为译文:
很抱歉这个标题看上去很像是骗点击量。我讨厌使用这样的手段,但我需要引起读者的注意。在如今的IT发展趋势中,开发运维(DevOps )这个词非常流行。这个词是几年前随着单页应用程序(SPA)的盛行而开始火爆起来的。
我认为从技术接受的角度来看这毫无问题。突然间,有人采用了某种新技术,然后所有人都开始采用并传播。
在过去的几年中,开发运维就是这样一种情况。然而,在接下来的几年中,你将听到一个新的流行语:无运维(NoOps)。
开发运维与无运维之间有什么区别?
开发运维是结合了开发和运维,是开发和运维工程师互相配合以定义驱动服务生命周期(从设计到交付)的流程的实践。
而无运维则表明没有运维。它的理念是移除所有平台管理的工作,并减少开发人员与基础设置之间的摩擦。
为什么我们需要开发运维?
技术和业务的需求难度越来越大,IT服务变得越来越复杂。这就是为什么交付如此重要,以及为什么我们需要协调整个过程的原因。
在云的帮助下,我们不再需要大量的系统管理员,但是对开发运维的技术和业务技能的需求却很高。为了实现开发运维,并创造更多利益,我们需要考虑的不仅仅是技术交付。
为什么以前我们没有开发运维?
这个问题有很多答案。你可以认为没有这种必要,因为当时的情况很简单或文化还不健全。
我同意这些说法,但我认为还有其他的根本原因。根据我的经验,技术才是最关键的问题。交付的自动化很难实现。
十年前,大多数系统都没有自动化的构建过程,也没有定义良好的工作流程(如git-flow)。当时没有物美价廉的CI解决方案,因此很难实现。
我记得2009年,我打算部署一个.net门户网站。这是我的第一个作品。某个星期六的早晨,我花了一上午的时间尝试使用开源工具创建一个自动部署系统,最后我放弃了。
我知道维护这样的系统比手动部署更昂贵。而如今,我们可以使用Azure DevOps,只需通过Web浏览器就可以在十分钟内完成这些操作。时代已经变了。
为什么我们需要的不仅仅是开发运维?
不难理解为什么在经过大量的努力将开发运维引入到公司后,每个人都感觉自我良好。然而,问题在于,IT是一个瞬息万变的世界。
如今的市场需求非常苛刻,而你却无法简单地说一句:“我厌倦了变化,让我休息片刻。”
云的到来加速了情况的复杂性。我们可以通过云实现复杂的解决方案并解决许多难题,但是我们也需要掌握更多技术。
云的所有服务均以可伸缩的方式出售,但你始终需要一些开发运维。这意味着你仍然无法摆脱部分手工作业。在这个过程中,大部分时候你仍然需要一个人在背后默默地工作。这意味着你仍然在按照旧的方式工作。
无运维的目的在于定义一个过程,在此过程中,无需将开发与运维结合到一起也可以让系统正常工作。无运维的目标是:无需手工作业就可以通过设计部署系统。
基本上,无运维的方法如下:开发人员将代码提交到代码库中,所有的部署就会自动完成。似乎这是一个连续交付的过程,但无运维的范畴远不止于此。我们这里所说的部署不仅指应用程序,还包含基础设施。
实现无运维的可能性
从技术的角度来说,无运维完全可以实现。具体的实现有很多选择,但是,我们基本上可以总结如下:
• PaaS解决方案:例如Heroku,或托管在Azure、AWS和所有其他供应商上的云服务;
• 从大型供应商(AWS、Azure等)购买的无服务器计算;
• 建立可复制的基础设施(第一次建立基础设施时需要运维)。
上述这类解决方案非常适合解决基础设施,而传统的部署工具可以驱动流程并交付应用程序。
闪光的未必都是金子
我承认移除基础设施管理的想法很诱人。就像拔掉一颗蛀牙一样。基础设施管理的成本非常高昂,而且总会在开发人员和运营之间产生摩擦。
然而,重点在于有问题的不是基础设施,而是流程。如果流程设计合理,就不会有摩擦,也不会有延误,一切都会正常进行。
你担心管理的成本?那么就考虑整体的成本,而不仅仅是管理。也许基于非PaaS云的基础设施在管理上的成本更高,但最终的成本仍然是相同的。说到底人才是决定性因素,不是吗?
我告诉你一个秘密。有些应用程序可以部署在PaaS上,而有些则不能。
如果你的应用程序很简单,那么PaaS会是一个很好的解决方案,开发运维人员很乐意削减工作量。但如果你想创造另一个Netflix,那么可能就需要更多控制权。
这就是为什么有人始终未能实现开发运维和无运维的原因。实现方法只有一个:创建智能的基础设施,尽量减少维护工作,并自动化一切。你可以研究一下Google Cloud等大型云服务或其他服务,找到适合自己的最佳解决方案。
那么,从这个角度来看,什么是无运维?无运维只不过是向云过渡的过程中出现的又一个流行语。
原文:
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: wxii2p22