NetOps,也称为NetDevOps,是使用DevOps技术监控、管理、自动化和操作网络的实践,例如敏捷软件开发、持续集成/持续交付和广泛使用自动化。NetOps的目标是使用这些技术对网络进行快速准确的更改,以支持不断变化的业务应用程序。现在很多人都在利用DevOps 技术,而这正在导致一种新型工程师的兴起。
NetOps工程师与DevOps工程师一样,主要依靠自动化和编程脚本来实现可重复的流程。从应用程序开发方面的进步来看,网络自动化落后于DevOps主要是由于两个因素:
- 部署网络软件开发实践需要文化转变;
- 创建复制生产网络的开发和测试环境存在困难。虽然思科、瞻博网络和Arista等主要网络供应商的网络操作系统虚拟实例开始使这变得更容易,但在测试网络中复制生产数据流仍然是挑战。
NetOps工程师的出现
为解决这两个问题,NetOps工程师应运而生,这个职位主要来自两个不同的学科:
- 最常见的是最开始通过传统命令行界面了解网络的网络工程师。这些工程师可能会对手动更改设备配置的缓慢且容易出错的过程感到沮丧。这些候选人通过学习使他们更有效的软件技术开始过渡。
- 另一个来自对网络感兴趣的DevOps工程师。这些人有兴趣将软件开发技术应用于网络管理,可能是为了帮助一些友好的网络工程师。
NetOps工程师做什么?
NetOps工程师的主要职能是对网络运营部署可重复的自动化流程。NetOps工程师应用与DevOps等效的范例,其中标准化的服务器构建减少管理工作量。为了实现这一目标,网络设计必须最大限度地减少设计变化,以支持标准化设计,实现通用流程的自动化。
这需要与网络架构师合作,根据常见的最佳实践设计创建网络构建块。然后创建配置模板以在每个构建块实现中合并变量,例如设备名称、IP 地址或虚拟 LAN。这些变量将来自中央存储库,称为网络真实源 (NSoT)。
NetOps工程师与自动化系统合作,通过整合配置模板与NSoT变量,来创建网络设备配置。自动化用于将所产生的配置部署到生产网络。对NSoT变量的更改可以在整个网络中快速部署,例如更新访问列表规则或修改服务质量参数。
NetOps工程师的另一个职能是,构建尽可能匹配生产网络环境的虚拟测试/开发网络基础设施。测试/开发网络使工作人员能够在部署到生产网络之前测试提议的网络更改。
当测试网络到位后,NetOps工程师就可以创建持续集成/持续交付 (CI/CD) 的流程。网络工程师使用CI/CD流程来验证提议的网络更改,如果更改通过所有测试,则可以自动应用于生产网络。这类似于DevOps团队用于服务器和应用程序管理的流程。
NetOps工程师可以为自定义自动化开发脚本,以及使用商业工具来完成常见任务。无论哪种情况,网络标准化、模板和变量都是关键要素。
由于他们负责网络配置,NetOps工程师与网络安全运营 (SecOps) 工程师以及网络架构师和工程师密切合作,以监控网络是否存在问题。常见的自动化任务是更新安全控制或验证网络是否按预期运行。为此,需要集成NetOps系统、安全系统和网络监控系统。
NetOps工程师技能
NetOps 工程师的关键技能包括了解网络配置、网络协议、软件开发和用于NetOps的语言。了解基本的网络概念有助于防止不必要的错误。例如,数据中心网络、企业办公LAN环境和WAN通常存在细微但至关重要的差异。由于很多不同的网络环境正在过渡到软件定义网络控制器,NetOps工程师应该了解幕后发生的事情。
高级NetOps工程师应该了解并应用面向对象编程的原理、抽象层的使用以及基础设施即代码的概念来完成自动化任务。同时必须很好地理解用于网络自动化的软件开发范式、流程(包括敏捷性)、语言、工具和库。对于软件和网络,出色的故障排除技能都是必不可少的。
最后,在与网络架构师、应用系统架构师、DevOps工程师和SecOps工程师合作时,需要强大的沟通和协作技能。良好的阅读技能也至关重要-对于理解API文档,并将其应用于构建和定制自动化系统。
NetOps工程师的职业道路
NetOps工程师的职业生涯可以从软件开发或网络开始,最终涵盖这两个知识领域。无论起点如何,思科DevNet认证等课程都很有益。那些从软件开发背景开始的人也应该寻找网络助理和网络专业课程。而软件开发课程最适合现有的网络工程师。任何一条轨道都应该从简单的概念开始,然后逐步学习每个学科的优秀实践。
NetOps工程师职位目前显示的预期薪水为115,000美元或更高。具有成功部署背景的经验丰富的工程师应该期望获得更高的报酬,尤其是拥有更高级别认证的工程师。