运维的未来,传统运维也将被DevOps干掉

作者:Tyler Treat | 翻译:郝蕊 | 原文:-future-of-ops

Dev:我的集合崩了! Op:好的,我知道了,现在是我的问题了——等我来解决。 ——错误的模式!

运维已死,运维不朽!

事实上,运维的未来从很多方面来说都跟质量保证的未来走向相似。传统意义上的 QA 正从关注测试转向关注工具。工程师写代码、单元测试和集成测试。测试在 CI 上运行,代码通过 CD pipeline 和 canary 转出来生产。QA 团队正在缩小,但是构建工具的团队正在增长——测试框架、CI 环境和 CD pipeline 。QA能力现在已经嵌入发展团队中了。经由 Microsoft 和Amazon 等公司普及的SDET模式是这个方向的第一步。2014年,Microsoft 转向了联合工程模式,将 SDET 和 SDE合并成一个角色,软件工程师,负责产品代码、测试代码和工具代码。

图片 1

老派运维老是与精益理念相冲突。它纯粹是中断驱动的――到处灭火,解决一个又一个问题。与此同时,做到兼顾很重要。让开发团队能够通过SSH连接到设备,或者在集成环境下将调试人员与容器连接起来,这是否会打消他们以适当的方式检测应用程序的积极性?这会不会促进疼痛移位?兼顾运维理念和开发理念至关重要。

DevOps 在很多方面正让开发者跟运维人员感同身受。新运维正好相反。殉道者式的运维团队相当自以为是,他们根本没有做好足够的工作将权利和责任转给开发团队。用这种新的合成工程的方式,我们迫使开发人员从整体角度,系统地思考问题。常言道:只有工程师直接对自己所建造的系统负责时,他们才能建造出真正可靠的系统,也就是意味着工程师要随叫随到,而不是指望其他运行人员。

正确的模式是要把ops作为力量倍增器:创建自动化,使devs提供自己的集合和基础设施。

在许多方面,开发运维旨在让开发人员对运维表示同情。NewOps恰好相反。过于自以为是的运维团队在授权方面做得根本就不够,将责任推到开发团队的头上。有了这种新的组合工程方法,我们迫使开发人员以整体的方式来运用系统思维。常言道:工程师要构建真正可靠的系统,唯一的方式就是他们直接对系统负责――这意味着他们随叫随到,而不是另外某个运维人员。

因着这样的转变,老派的、西部狂野式的运维需要消亡。运维一般被看作是守门人,他们也是这么看待自己的。运维正尽可能多地嵌入进程,减缓开发速度,所以当他们开始生产时,开发人员会有近乎完美的可靠系统。一旦该系统历经千辛万苦,经受了严格指责,投入生产之后,老派的运维需负责运行该系统。

因着这样的转变,老派的、西部狂野式的运维需要消亡。运维一般被看作是守门人,他们也是这么看待自己的。运维正尽可能多地嵌入进程,减缓开发速度,所以当他们开始生产时,开发人员会有近乎完美的可靠系统。一旦该系统历经千辛万苦,经受了严格指责,投入生产之后,老派的运维需负责运行该系统。

开发团队常常让运维团队对创新或交付瓶颈负责。双方都要有同情心。很容易贬低运维人员,但他们常常只是想努力跟上步伐。你可以创新,不必采用登上Hacker News的每一项最先进技术。另一方面,现代运维组织需要意识到,几乎总是无法满足对自己提出来的要求。可持续的方法就是拆除孤岛,分担责任。这就是运维的未来。由于向云转移,运维团队需要通过授权和委托开发团队来重塑自我,而不是试图通过划清界限来保全自己。

开发团队通常认为运维团队阻碍了创新或者交付。双方都应该相互理解。贬低运维团队很容易,但是更多情况下,他们只是想跟上步伐。不用非得采用每个登上 Hacker News 头条的最前沿的科技,也能创新。另一方面,现代运维组织需要意识到他们几乎永远不可能满足人们的要求了。可持续的发展道路——也是传播同理心的道路——是打破孤岛,共担责任。这就是运维的未来。随着运维工作转移到云,它需要给予开发团队更多的权利和信任以重塑自身,而不是“闭关锁国”。

事实上,运维的未来从很多方面来说都跟质量保证(QA)的未来走向相似。传统意义上的 QA 正从关注测试转向关注工具。工程师写代码、单元测试和集成测试。测试在 CI 上运行,代码通过 CD pipeline 和 canary 转出(rollout)来生产。QA 团队正在缩小,但是构建工具的团队正在增长——测试框架、CI 环境和 CD pipeline 。QA 能力现在已经嵌入发展团队中了。经由 Microsoft 和 Amazon 等公司普及的SDET 模式是这个方向的第一步。2014 年,Microsoft 转向了联合工程(Combined Engineering)模式,将 SDET 和 SDE(软件开发工程师)合并成一个角色,软件工程师,负责产品代码、测试代码和工具代码。

NewOps模式而是应该实际上将运维当作其产品是基础设施的产品团队。酷似开发人员为服务提供API的方式,运维人员为基础设施提供API,具体表现为工具、用户界面、自动化、基础设施即代码、可观察性和警报等。

如果你让一个老派的运维人员理解说明整个存储栈,从裸金属到客户,并圈出他们所关心的,他们会把整个存储栈都圈起来,接着就会抱怨,就因为dev团队正在推出的破烂玩应,他们大半夜的得被叫起来。这种思维方式基本上已经过时了,正是思维方式使得人们都觉得干运维这一行的都是深深厌恶自己,一根接一根不停抽烟。这是由于缺乏同理心而产生的避重就轻、刻薄的想法。如果凌晨两点出现内存不足的异常,要不要去警告那些没有远见或者能力的运维人员去解决这个问题呢?还是说我们应该警告那些对系统相当熟悉的开发者呢?后一种做法似乎是明显的,但是关键在于他们需要被授权获悉状况,调试后自动解决。

运维长存!

运维的未来是,让开发人员能够借助工具、自动化和流程,并且让他们能够在运维干预极少的情况下部署和运营服务,从而实现自助服务。每个角色都应该努力使工作实现自动化。

老派运维总是同精益思维不一致。它完全是中断驱动——灭火后,一个接一个解决问题。同时,取得平衡非常重要。在集成环境中,使开发者团队能够SSH 登录进 box 中或者将调试器附加到集合上,会阻止他们正确地调试应用程序吗?会促进痛苦移位吗?在运维思维和开发思维间取得平衡是非常必要的。

从许多方面来看,运营的未来酷似质量保证的未来。传统的质量保证角色正由注重测试转向注重工具。工程师编写代码、单元测试和集成测试。测试在持续集成中运行,代码通过持续交付管道和金丝雀部署进入到生产环境。质量保证团队在日渐式微,而构建工具的团队日益壮大起来,这些工具包括测试框架、持续集成环境和持续交付管道。质量保证能力现在已嵌入到开发团队中。软件开发测试工程师模式是往这个方向迈出的第一步,微软和亚马逊之类的公司推广了这种模式。2014年,微软改用组合工程模式,将SDET和SDE合并为一种角色:软件工程师,软件工程师负责编写产品代码、测试代码和工具代码。

ops提供服务的模式已经穷途末路,并且也过时了。Devs 提出的要求总会超出他们的能力。

正确的模式是要把ops作为力量倍增器:创建自动化,使devs提供自己的集合和基础设施。

Dev:我的集合崩了! Op:好的,我知道了,现在是我的问题了——等我来解决。 ——错误的模式!

Dev:我的集合崩了! Op:好的,我知道了。作为领域专家,我来帮你,你来解决,或者是,你可以用工具重配一下。:)

ops 提供服务的模式已经穷途末路,并且也过时了。Devs 提出的要求总会超出他们的能力。

对于运维而言,情况变得一模一样。我在Workiva的基础设施及可靠性小组工作期间,我们将运营团队和基础设施工程团队合并为一个团队,这个团队实际上由网站可靠性工程师组成。该团队负责构建和维护基础设施服务、配置管理、日志管理、容器管理以及监控等。

你们有没有注意到 QA 起的作用似乎在悄然消失?跟我合作的或者是我了解的众多 dev 组织似乎不用 QA 也做得挺好。

DevOps 在很多方面正让开发者跟运维人员感同身受。新运维正好相反。殉道者式的运维团队相当自以为是,他们根本没有做好足够的工作将权利和责任转给开发团队。用这种新的合成工程的方式,我们迫使开发人员从整体角度,系统地思考问题。常言道:只有工程师直接对自己所建造的系统负责时,他们才能建造出真正可靠的系统,也就是意味着工程师要随叫随到,而不是指望其他运行人员。

如果你让一个老派的运维人员画出从裸机到客户的整个架构,并把他们关心的方面圈出来,他们就会围绕整个架构画一个圆圈。然后,他们会抱怨开发团队交付的拙劣产品害得自己在三更半夜接到反映故障的传呼。这种过时而破碎的思维方式导致了自我厌恶、不断抽烟的运维人员这个刻板的形象。这是一种缺乏同情心引起的苦恼。如果某个服务在凌晨2点出现内存不足异常,提醒缺乏洞察力或权力来解决问题的运维人员,那有意义吗?或者说,我们应该提醒非常熟悉该系统的开发人员吗?后者似乎显而易见,但关键是,他们需要获得授权,可以了解情况,进行调试,并独立解决。

同样的状况很快也会发生在运维人员身上。我之前在 Workiva 的基础设施和可靠性小组里工作时,我们将运行和基础建设工程团队并入一个单独的团队,该团队是由网站可靠工程师组成的,负责构建和维护基础设施服务,配置管理,日志管理,集合管理,监控等。

云服务的发展看起来让运维人员“丢”了工作,因为从传统意义上说,从本地(on-premise)转移到云平台意味着运维工作在相当大程度上外包给云提供商。这正应了那个流行词—— “无运维运动”(NoOps),许多人称之为 DevOps 的“继承者”,虽然这个词最近这些日子已经不是那么响亮了。这使得 Amazon 和开发团队创建的产品——包括基础设施自动化,部署自动化,配置管理,日志管理以及监控和检测——之间出现了隔膜,隔膜虽小,但却至关重要。

由于这一举动,原始落后的老派运维需要消亡。运维人员通常是把关人,他们认为自己扮演这种角色。老派运维在构建尽可能多的流程,减慢了开发速度,以至于等到进入到生产环境,开发人员拥有了近乎完全可靠的系统。

老派的运维通常是伪君子。他们主张严苛的 SDLC,然后在维护基础架构时却绕过了同样的 SDLC 。新运维意味着基础架构即代码。配置变化即代码。这两个哪个也没能免于开发人员必须遵守的 SDLC。我们编纂变更请求,使用不可改变的基础架构和 AMI。没经历此进程,我们不会把改变推送到真实环境中。同样地,我们需要对合规性和其他开发人员无法产生共鸣的 SDLC 要求进行编码,编到工具和进程中。进程记录并编纂价值。

图片 2

传统运维不会消失,它只是在改组。就传统意义而言,从本地转移到云端意味着运维基本上外包给了云服务提供商。这是当下蔚然成风的NoOps潮流,许多人称NoOps是开发运维的“后续者”,不过这年头这个词已淡化了许多。这留下的是亚马逊和开发团队构建的产品之间一块很薄又很重要的部分,涵盖基础设施自动化、部署自动化、配置管理、日志管理以及监控和检测。

云服务的发展看起来让运维人员“丢”了工作,因为从传统意义上说,从本地转移到云平台意味着运维工作在相当大程度上外包给云提供商。这正应了那个流行词—— “无运维运动”,许多人称之为 DevOps的“继承者”,虽然这个词最近这些日子已经不是那么响亮了。这使得 Amazon 和开发团队创建的产品——包括基础设施自动化,部署自动化,配置管理,日志管理以及监控和检测——之间出现了隔膜,隔膜虽小,但却至关重要。

图片 3

我是通过愿景来领导的忠实拥趸。令人信服的愿景能够让诸团队保持一致,尽量减小职能孤岛和组织孤岛带来的影响,并且从源头上激励和动员人们。它带来了高度一致、松散耦合的团队,有助于做出决策。对于作为一种组织竞争力的运维的未来,我认为组合工程是合乎逻辑的结果。就像质量保证一样,运维能力应该嵌入到开发团队中。事实上,要是没有运维技能,你在现代组织不可能成为高效的软件工程师。运维团队应该重新定义愿景。

我非常支持通过愿景实现对团队的领导。发展愿景令人信服,可以使团队之间达成共识,减少功能孤岛和组织孤岛的影响,并能够从内部激励员工。它能使团队高度一致又能松散耦合,能够更好地做出决定。我对运维未来作为组织能力的想法本质上是将合成工程看作是合理结论。跟 QA 一样,运维能力也应该被嵌入发展团队中。事实是,没有运维技能,你不可能在现代组织中成为一名合格的软件工程师。现如今的运维团队,应该重新定义他们的愿景。

编者按:本文作者 Tyler Treat 是一名软件工程师,他认为运维的未来从很多方面来说都跟质量保证(QA)的未来走向相似。未来,运维要使开发者能够通过工具、自动化和流程实现自助服务。传统的运维( Ops)没有消失,只是在重组。

老派运维人员往往是伪君子。他们主张奉行严格的软件开发生命周期,然后等到维护基础设施时,却绕过同样的SDLC。NewOps意味着基础设施是代码。配置更改是代码。这两个都受到开发人员要遵守的同一SDLC的制约。我们整理变更请求,我们使用不可变的基础设施和AMI。要是变更没有经过这个流程,我们不会将变更推送到工作环境。与之相仿,我们需要将开发人员不会感同身受的合规及其他SDLC需求编码成工具和流程。

运维的未来是要使开发者能够通过工具、自动化和流程实现自助服务,并使他们能够通过最小的运维干预来部署并运行服务。每个角色都应该朝着脱离它们的工作实现自动化的方向而努力。

你们有没有注意到 QA 起的作用似乎在悄然消失?跟我合作的或者是我了解的众多 dev 组织似乎不用 QA 也做得挺好。

其实新运维模式本质上应该把运维看作是一个产品团队,其产品就是基础设施。就像开发者把 API 作为他们提供的服务,运维把 API 以工具、UI、自动化、基础设施即代码、可观察性和警戒的形式作为他们提供的基础设施。

图片 4

@perterbourgon 关于这个话题,我有很多想法,tweet 版本是:我们所知道的 ops 已亡,做基础设施的人有五年的时间转移到产品上。

开发团队通常认为运维团队阻碍了创新或者交付。双方都应该相互理解。贬低运维团队很容易,但是更多情况下,他们只是想跟上步伐。不用非得采用每个登上 Hacker News 头条的最前沿的科技,也能创新。另一方面,现代运维组织需要意识到他们几乎永远不可能满足人们的要求了。可持续的发展道路——也是传播同理心的道路——是打破孤岛,共担责任。这就是运维的未来。随着运维工作转移到云,它需要给予开发团队更多的权利和信任以重塑自身,而不是“闭关锁国”。

—— Ops is dead, long live Ops!

同样的状况很快也会发生在运维人员身上。我之前在 Workiva 的基础设施和可靠性小组里工作时,我们将运行和基础建设工程团队并入一个单独的团队,该团队是由网站可靠工程师组成的,负责构建和维护基础设施服务,配置管理,日志管理,集合管理,监控等。

其实新运维模式本质上应该把运维看作是一个产品团队,其产品就是基础设施。就像开发者把 API 作为他们提供的服务,运维把 API 以工具、UI、自动化、基础设施即代码、可观察性和警戒的形式作为他们提供的基础设施。

图片 5

Dev:我的集合崩了! Op:好的,我知道了。作为领域专家,我来帮你,你来解决,或者是,你可以用工具重配一下。

我非常支持通过愿景实现对团队的领导。发展愿景令人信服,可以使团队之间达成共识,减少功能孤岛和组织孤岛的影响,并能够从内部激励员工。它能使团队高度一致又能松散耦合,能够更好地做出决定。我对运维未来作为组织能力的想法本质上是将合成工程看作是合理结论。跟 QA 一样,运维能力也应该被嵌入发展团队中。事实是,没有运维技能,你不可能在现代组织中成为一名合格的软件工程师。现如今的运维团队,应该重新定义他们的愿景。

【编辑推荐】

@perterbourgon 关于这个话题,我有很多想法,tweet 版本是:我们所知道的 ops 已亡,做基础设施的人有五年的时间转移到产品上。

老派运维总是同精益思维不一致。它完全是中断驱动——灭火后,一个接一个解决问题。同时,取得平衡非常重要。在集成环境中,使开发者团队能够 SSH 登录进 box 中或者将调试器附加到集合上,会阻止他们正确地调试应用程序吗?会促进痛苦移位吗?在运维思维和开发思维间取得平衡是非常必要的。

运维的未来是要使开发者能够通过工具、自动化和流程实现自助服务,并使他们能够通过最小的运维干预来部署并运行服务。每个角色都应该朝着脱离它们的工作实现自动化的方向而努力。

如果你让一个老派的运维人员理解说明整个存储栈,从裸金属到客户,并圈出他们所关心的,他们会把整个存储栈都圈起来,接着就会抱怨,就因为dev团队正在推出的破烂玩应,他们大半夜的得被叫起来。这种思维方式基本上已经过时了,正是思维方式使得人们都觉得干运维这一行的都是深深厌恶自己,一根接一根不停抽烟。这是由于缺乏同理心而产生的避重就轻、刻薄的想法。如果凌晨两点出现内存不足的异常,要不要去警告那些没有远见或者能力的运维人员去解决这个问题呢?还是说我们应该警告那些对系统相当熟悉的开发者呢?后一种做法似乎是明显的,但是关键在于他们需要被授权获悉状况,调试后自动解决。

图片 6

老派的运维通常是伪君子。他们主张严苛的 SDLC,然后在维护基础架构时却绕过了同样的 SDLC 。新运维意味着基础架构即代码。配置变化即代码。这两个哪个也没能免于开发人员必须遵守的 SDLC。我们编纂变更请求,使用不可改变的基础架构和 AMI。没经历此进程,我们不会把改变推送到真实环境中。同样地,我们需要对合规性和其他开发人员无法产生共鸣的 SDLC 要求进行编码,编到工具和进程中。进程记录并编纂价值。

本文由澳门威斯尼人平台登录发布于服务器&运维,转载请注明出处:运维的未来,传统运维也将被DevOps干掉

相关阅读