Address
304 North Cardinal St.
Dorchester Center, MA 02124

Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM

从 DevOps 到 NetDevOps:我们现在在网络领域处于什么阶段?

首页 » Blog » 从 DevOps 到 NetDevOps:我们现在在网络领域处于什么阶段?

在我的整个事业生涯旅程中,我目睹了行业内的众多变化 ,作为项目架构师、项目管理者的我,从手动管理设备到采用 API、DevOps 以及最终的 NetdevOps

最初,配置路由器以及连接计算机和打印机可能看起来既乏味又耗时。然而,随着我更深入地研究网络协议并处理更复杂的项目,我对该领域的兴趣与日俱增。

在本文中,我将从网络角度探讨 NetdevOps。虽然 DevOps 是软件和 Web 开发中的一个流行术语,但在网络方面似乎很少被谈论。

让我们深入了解并发现更多!

网络开发运营概述

随着DevOps在各个行业的出现,其原理为DevSecOps、ChatOps、MLOps和NetdevOps等新趋势铺平了道路。在 NetdevOps 中,DevOps 文化被集成到网络和基础设施团队的部署和运营中。很明显,旧的工作方式不再可取。

DevOps 和 NetdevOps:有什么区别

在网络领域,术语 DevOps 和 NetDevOps 似乎可以互换。然而,在NetDevOps中,应用程序的代码充当需要管理和部署的配置。

我们可以区分一般代码,属于配置;建筑规范,用于建筑配置;和测试代码,用于测试配置。

这个循环在整个发布过程中持续进行,最终实现构建、测试和发布阶段的自动化。

如果您正在深入研究 NetdevOps 或 DevOps,那么了解两者之间重叠的关键概念非常重要。让我们一起探讨其中的一些相似之处!

  • 配置或代码
  • 构建配置或构建代码
  • 测试配置或测试代码
  • 发布配置或发布代码

从 DevOps 到 NetDevOps:我们现在在网络领域处于什么阶段?
DevOps 和 NetdevOps 概念

大量的工具

自动化在 DevOps 方法中发挥着重要作用,并持续激励着全球 IT 专业人士。通过自动化各个测试阶段,我们可以显着增加针对建议更改的测试数量。一旦变更经过测试,它们就可以通过并为下一阶段的开发做好准备。如果出现故障,将提供反馈以改进测试过程。更新更改并重新运行测试以确保所有建议的更改都通过。这个迭代过程持续进行,直到所有更改都通过测试。

凭借协作和自动化的文化,网络工程师和管理员现在可以使用大量高效的工具。一些著名的工具包括:

持续集成詹金斯圆CI特拉维斯·西尔
配置管理安西布尔木偶厨师
合作吉拉松弛嘻哈
工作环境码头工人流浪汉包装机
源和图像控制码头工人GitHub比特桶
平台谷歌云适用天蓝色

NetDevOps 是必由之路

NetdevOps 弥足珍贵 我们现在生活在一个不断变化的数字社会;网络一直在扩展,并且很难用传统的网络管理方法进行管理;随着我们转向云和自动化,CLI 无法再跟上复杂任务的步伐。

网络工程师应与 DevOps 团队合作以拥抱自动化。它可以帮助他们避免繁琐的任务并以更少的错误管理网络基础设施。大多数网络中断都是由人为错误造成的,而自动化可以解决此类问题。

NetDevOps 的闪光点

现代网络可以编程,自动化对于提高当今充满活力的行业的敏捷性至关重要,要求公司适应:

  • 网络监控:NetdevOps 工程师可以借助自动化工具有效地识别和解决问题,从而提高网络稳定性并减少停机时间。
  • 网络管理:NetdevOps给网络设备和配置管理带来了重大变化。Jinja 等工具可用于创建模板并将其部署到多个设备上,从而提高网络效率。
  • 网络安全:NetdevOps 可以通过自动化常见任务(例如漏洞扫描、补丁管理和访问控制)来增强网络安全。在各种工具的帮助下,网络工程师可以有效地识别和解决安全问题,以防止数据泄露。这种方法有助于降低恶意行为者利用的风险。一些好处是:
  • 网络运营 ( NetOps ) 和软件开发 ( DevOps )之间的良好协作
  • 提高安全性
  • 更好地利用资源管理
  • 更好的网络稳定性

基础设施即代码或 IaC 之路

网络行业有多种可用的数据格式,包括 XML、JSON、YAML 和 IaC,它们以代码格式表示基础设施。IaC提供了高层次的抽象,其数据格式可以由不同的配置管理系统解释。

IaC不仅限于网络基础设施,还包括服务器和云资源。网络工程师也使用类似的概念,例如 NAC 或网络即代码。

网络配置被视为代码,这是网络工程师在日常任务中采用自动化的好方法。这些配置像应用程序代码一样进行版本控制,并且通常使用版本控制系统,例如 Git(使用最广泛的 VCS)。

通过采用基础设施即代码 (IaC),网络团队可以轻松跟踪对配置所做的任何更改,并随时回滚到以前的版本。

简而言之,IaC 是通过机器可读的定义文件来管理和配置网络基础设施的过程,而不是通过命令行界面 (CLI) 逐一输入命令和管理设备的传统方式。

netdevOps 管道是什么样子的

让我们假设一个 NetDevOps 团队想要更改某些设备配置的场景

从 DevOps 到 NetDevOps:我们现在在网络领域处于什么阶段?
netdevOps 管道

  1. 网络工程师从 GitHub 拉取最新配置
  2. 网络工程师通过他选择的文本编辑器或 IDE 在本地计算机上进行更改
  3. 更改完成后,网络工程师将提交的内容从本地存储库推送到远程存储库中的功能分支,主分支指的是生产。
  4. GitHub 是目前使用最广泛的基于 Git 的云服务。它包括 GitHub Actions,一个内置的持续集成工具。虽然有些团队使用 Jenkins 作为单独的程序,但该图显示 GitHub 的持续集成服务器可以轻松检测修改并启动作业。
  5. 在 netdevOps 中,为了验证配置并运行定义的测试,需要使用测试环境。借助 GitHub 持续集成,可以使用 EVE-NG 或思科建模实验室等工具以及虚拟化或物理实验室网络来完成此任务。
  6. 在图中,GitHub 持续集成针对远程存储库中的配置代码运行一组定义的测试以验证新更改。一些脚本或工具能够检测不同的变化以及一些众所周知的框架pyATS
  7. GitHub 提供了丰富的功能,并且可以配置 Webhook 在 Slack 上发送通知,以通知 netdevOps 团队管道中的不同事件。由于不同的通知,netdevOps 团队能够知道测试是否通过或失败。

如何开始

从 DevOps 到 NetDevOps:我们现在在网络领域处于什么阶段?
一个迷路的人

网络行业有大量可用的工具,这常常会导致混乱。对于想要采用这种文化的网络工程师来说,对无穷无尽的信息感到不知所措是很常见的。工具的选择取决于您想要实现的项目,没有人知道所有可用的工具。如果您是一名网络工程师,正在开始 netdevOps 之旅,请按以下步骤操作:

  • Python:是事实上的网络自动化语言,由于其语法为纯英文文本,易于学习,并且拥有大量的库。
  • Netmiko:它是现代网络中最常用的 Python 库之一,可简化与网络设备的连接和交互。该库提供了一种使用 Python 与网络设备交互的简单方法。
  • Nornir:这是一个很棒的 Python 自动化框架。它还提供了一种使用 Python 与设备交互的简单方法。
  • Flask:广泛用于开发基于 Web 的网络管理应用程序的 Python Web 框架,被认为是优秀的。
  • Matplotlib:一个用于数据可视化的Python库,是可视化网络数据的好方法
  • Cisco Modeling Labs:它是一种网络模拟工具,可以在工作站和服务器上使用真实的 Cisco 图像来模拟 Cisco 和非 Cisco 网络。
  • EVE-NG:它是一个网络仿真平台,允许网络和安全专业人员在虚拟环境中进行设计、测试和故障排除。
    目的是从最常用的工具开始。同时处理许多工具是不可能的,并且列表并不详尽。结论由于 DevOps 原则在网络中的应用,网络工程师不再能够使用传统的网络管理方法进行操作。通过将基础设施即代码 (IaC) 网络配置视为代码,NetdevOps 改变了它们的操作方式,并为网络工程师提供了拥抱自动化的机会。CLI不再能够跟上当前的技术发展,因为客户的行为总是在变化,并且网络需要按需扩展。在快速发展的数字世界中,网络工程师应该拥抱 netDevops 和适应性。