有关开发、测试、部署、操作和维护企业应用的决策并不是孤立地做出的。 在过去,网络运营人员可能是掌控一切的人,他们是任何重大事件发生前的最后一站。 老实说,大多数人可能都喜欢这样。
但情况已经改变。 现在,NetOps 不再实行严格控制,而是受到那些喜欢独立完成工作的人(老实说,是 DevOps 人员)的轰炸。 NetOps 希望您不要做的事情(例如绕过新应用程序的安全协议或弄乱该应用程序更新的负载均衡设置)。
现在,可以说,DevOps 人员只是在努力让事情变得更好。 更具适应性。 更多地进行自我管理,减少微观管理。 更加敏捷(大写 A)。
问题是,在当今的企业环境中,如果 DevOps 要保持其敏捷的工作方式,就需要 NetOps。 DevOps 根本无法独自完成这项工作(毕竟,所有这些应用都在底层基础设施上运行)。 他们不能指望 NetOps 退居次要地位并放弃所有传统职责。 你也不希望他们这么做。 NetOps 在维护 DevOps 创建的所有应用程序的安全性和性能方面发挥着重要作用,并且它们为 CI/CD 工作流程带来了重要的技能和能力。
如果您从事 DevOps 工作并试图让您的 NetOps 同事更深入地参与 CI/CD 工作流程,那么您首先需要让他们愿意参与并看到改变现状的价值。 这其实很容易做到,因为自动化可以轻松解决所有繁琐、耗时、必须一遍又一遍进行的常规任务。 任何理智的工人都会乐意将这些任务交给机器人。
变更单就是一个很好的例子。 从一堆订单中挑选出合适的订单,手动输入每一个更改,然后仔细检查你是否做对了,因为毕竟这是你今天早上收到的第九个订单,而且它们都开始混在一起运行,而你为什么一开始就进入这个领域呢? 每天整天都在填写变更单? 我不这么认为。
有一个更好的方法。 这就是将所有那些冗余的、经常重复的任务自动化,这些任务会让原本有趣而富有成效的一天变得停滞不前。
公司高层希望我们能引领这一潮流,因为这一切都与产品有关,对吧? 谁会在乎那些从事这份工作的男男女女是否热爱自己的工作呢,对吧? (错误的!)
尽管如此,应用程序的强大性能和安全性实际上是一个非常好的副作用,可以让您的工作变得不那么令人麻木的冗余。
通过自动化使您的应用可靠且安全的服务,您不仅可以腾出时间来进行更有趣、更少重复的项目,还可以提高这些服务的质量。 这是因为精心设计的自动化工作流程不会自行产生。 NetOps 工程师的职责是创建每个自动化工作流程运行的最佳模型,从而一次又一次地产生最佳结果。
自动化的美妙之处在于,如果你第一次就做对了,那么你知道以后每次都会做对。
在自动化的工作流程中,NetOps 不仅可以控制其专业领域(这使得您的应用程序更快、更可靠、更安全),还可以生成易于使用的自动化流程,DevOps 将永远不会再考虑违规(这再次使您的应用程序更快、更可靠、更安全)。
几乎总是存在这样的情况:DevOps 和 NetOps 团队都无法独自找到维护组织关键应用程序和数据所涉及的所有解决方案。 这两个团队始终需要共同努力。 当今的自动化功能在很大程度上减少了这些交互产生的摩擦。
DevOps、NetOps、SecOps......没有一个 Ops 是一座孤岛。 在现代 CI/CD 工作流程中,成功来自于开发明确定义、经过验证的方法,这些方法可以在复杂的系统中快速、轻松(即自动)复制。 为这些自动化工作流程奠定坚实的基础需要 DevOps、NetOps 和 SecOps 之间建立牢固的合作伙伴关系,各方都需要提供专业知识来支持对方。
无论环境如何(云、容器等),您的应用程序都依赖于底层应用服务、网络服务和安全服务。 NetOps 的作用是保持数据在网络中流动,确保应用程序的可扩展性和响应性,以及确保数据在需要时可用且始终安全。 每个运营团队都应在降低风险方面发挥作用 — — 无论是应用程序无法按预期运行的风险、网络不堪重负的风险,还是外部威胁试图攻击您的资产的风险。 值得注意的是,根据Puppet 发布的 2019 年 DevOps 状况报告,推动软件开发取得良好成果的 DevOps 原则(文化、自动化、测量和共享)恰好与推动良好安全成果的原则相同。
各个运营团队之间的互动是持续不断的。 这是互联网时代 IT 的运作方式。 但总有改进的空间,例如当敏捷软件开发流程出现时,它就突破了应用程序开发和部署速度的界限。 当时,DevOps 开始做出重大改变,转向更敏捷的开发方法,采用更快捷的方式“从代码到客户”。
速度的提升正在推动 DevOps 正在经历的巨变。 它有好的一面,因为 DevOps 能够行动得更快、更积极主动;它也有坏的一面,因为当其他部门的流程没有以相同的方式设置时,它可能会产生摩擦。
简单地忽略其他部门或无视那些尚未适应新工作方式的同事是一个坏主意。 当 DevOps 尝试自己完成所有工作时,既低效又不充分。 这就是流程被破坏的原因(无论是否无意),而破坏的流程可能会导致各种各样的问题。 这不仅仅针对 DevOps,针对所有人,包括你的客户,他们是你最不想受到负面影响的人。
为了让 DevOps 真正做好您的工作,您需要 NetOps 作为合作伙伴,而不是敌人。 任何稳固的合作关系的关键在于沟通。 DevOps 需要与网络团队沟通如何获取支持应用程序所需的服务。
通常,DevOps 团队是自动化、总体框架以及基础设施即代码方面的专家;但网络团队则是了解需要配置的实际架构资源以及可用于该配置的工具的专家。 通过对话和相互尊重,DevOps 和 NetOps 可以确定需要自动化的地方,以及如何最好地实现自动化。
通过帮助您的 NetOps 同行在整个 CI/CD 工作流程中扩展自动化的作用,您不会有任何损失,DevOps,而且可以获得很多好处。 关键是要认识到,正如您是开发代码的专家一样,您的一位或多位同事也是配置网络和安全服务以支持该代码的专家。 不要错过帮助他们成为最优秀专家的机会。