网络工程师巨震:CI/CD+Air,自动化效率暴涨!
持续集成和持续交付/部署(CI/CD)是一套现代软件开发实践,旨在更可靠、更频繁地交付代码变更。 尽管CI/CD在软件领域已被广泛采用,但随着网络变得自动化和软件驱动,它对于网络工程师来说也变得越来越重要。 在本文中,我们将简要介绍CI/CD,并说明网络工程师如何将这些实践用于网络自动化,尤其是在使用Cumulus Linux和使用NVIDIA Air数字孪生平台进行模拟时。
什么是CI/CD流水线?
CI/CD流水线可自动化软件交付过程。 它确保代码以可重复且可扩展的方式在各种环境中经过测试、验证和部署。 该流水线集成了:
- 持续集成(CI): 频繁合并和测试代码。
- 持续交付/部署(CD): 在测试、暂存和生产环境中自动打包和部署代码。
对于网络工程师而言,这意味着可以更高效、更可靠地部署网络配置和自动化脚本。
网络为何要采用CI/CD?
借助像Cumulus Linux这样的网络操作系统,由于其Linux基础,它本身就支持自动化和脚本编写,因此网络自动化可以采用与软件工程中相同的原则。 为什么这很重要?
- 速度: 更快地迭代和部署变更。
- 质量: 自动化Linting和验证可减少错误。
- 可靠性: 一致的流程意味着生产中的意外更少。
- 可扩展性: 轻松支持不断增长的基础设施和用例。
CI/CD在网络自动化中的应用
让我们看看网络工程师如何在实践中应用CI/CD概念。
代码提交: 将配置视为代码
如果我们将网络配置视为代码,则自动化脚本或拓扑配置之类的更改将经过版本控制(例如,Git)。 这使得更改像任何软件开发工作流一样,可跟踪、可审查和可测试。 通过接受作为代码更改的配置更改,网络团队可以直接集成到DevOps工作流中,从而提高可见性和治理能力。
持续集成(CI)
CI会自动验证代码更改是否有效且可构建。 对于网络用例:
- 构件可以是自动化脚本、容器镜像或呈现的配置文件。
- Linting和格式检查可确保YAML、JSON或Jinja2模板在语法上正确且一致。
- 新媒网跨境了解到,不要手动创建静态配置文件,而应使用Jinja2模板根据拓扑、节点角色或功能等变量动态生成配置。 这可以最大程度地减少人为错误并提高灵活性。
持续交付(CD)
CD可自动将验证的配置部署到测试和生产环境。 例如:
- 呈现的配置使用自动化工具和脚本进行部署。
- 日志记录和调试挂钩应构建到流水线中,以尽早发现错误。
- 运行状况检查和验证可以确认配置已成功部署在所有网络节点上。
虽然我们不会在本文中深入探讨构建流水线的全部详细信息(例如,使用GitLab),但重要的是要强调GitLab CI/CD设置中的关键配置文件是.gitlab-ci.yml
文件。 此YAML格式的文件定义了流水线的运行方式,指定了阶段、作业和执行逻辑。 它告诉GitLab如何协调配置呈现、测试、验证和部署等任务。 因为此文件充当整个自动化工作流的蓝图,所以务必了解如何正确构造它以及正确定义任务参数。 在本系列的下一篇文章中,我们将仔细研究如何有效地编写和管理.gitlab-ci.yml
文件以进行网络自动化。
自动化测试和验证
CI/CD流水线可以通过以下方式包括自动化验证:
- 跨设备运行show命令。
- 解析输出以检查成功标准(例如,接口已启动、已建立BGP邻居)。
- 在失败的部署到达生产环境之前对其进行标记。
这提供了有关网络运行状况的持续反馈,并防止错误配置传播。
将CI/CD与NVIDIA Air结合使用
NVIDIA Air数字孪生平台是用于现代数据中心的高级仿真环境。 它可以使用Cumulus Linux、SONIC来模拟复杂的网络,并且可以模拟主机操作系统。 用户可以使用以下方式构建拓扑:
- 图形工具(拖放)。
- JSON/DOT文件(用于以编程方式创建)。
虽然手动设置适用于常规用例并且非常直观,但CI/CD流水线为快速迭代、验证和共享提供了更专业的工作流。
使用API自动执行NVIDIA AIR:
- 用于低级自动化的REST API
- Python SDK,它包装了API并提供了自动化友好的抽象
使用任一方法,流水线都可以:
- 启动拓扑。
- 注入配置。
- 触发验证脚本。
- 销毁和重建实验室以实现可重复性。
CI/CD和NVIDIA Air的实际用例
网络工程师可以将CI/CD与NVIDIA Air结合使用,以实现:
- 配置集成: 将配置生成直接绑定到自动化流水线。
- 研讨会和演示: 自动生成一致的、可重现的实验室,用于研讨会、培训或演示。
- 合作伙伴解决方案: 创建可共享的模板,这些模板可以将自定义拓扑交付给客户或合作伙伴。
- 自动化测试: 通过零人工干预快速验证各种拓扑中的更改。
NVIDIA Air上数据中心仿真环境的CI/CD流水线示例
以下是我们开发团队提供的有关使用NVIDIA Air的CI/CD流水线的实际示例,该流水线模拟了数据中心用例:
- 从其来源提取相关存储库: 有多个git存储库用于各种目的(AIR自动化代码,网络配置呈现存储在单独的存储库中),此作业从存储库中提取所有来源,包括拓扑文件和配置文件,jinja2模板。
- 运行一些配置文件语法/格式检查: 我们需要验证拓扑文件是否符合格式要求并且可以由Air API解析。
- 创建拓扑作为AIR仿真: 我们从dot或json文件创建一个AIR拓扑。
- 配置拓扑参数: 修改拓扑参数,例如组织选择或仿真到期。
- 启动仿真并配置网络设备和服务器: 我们启动AIR仿真,使用API调用,并将呈现的配置文件复制到网络设备和服务器。
- 使用各种show命令和ping测试验证拓扑: 验证拓扑是否正确以检查布线是否符合设计。
- 保存所有内容并关闭仿真: 保存仿真以供以后使用并将其关闭。
结论
CI/CD流水线是软件工程中的标准工具,现在是网络自动化的重要组成部分。 借助Cumulus Linux和NVIDIA Air之类的平台,网络工程师可以将相同的敏捷性、可靠性和效率引入到他们的运营中。 通过将CI/CD最佳实践与强大的仿真工具相结合,我们可以交付高度可扩展、无错误且快速的网络部署,无论是在虚拟实验室还是在生产数据中心中。
新媒网跨境认为,CI/CD在网络自动化领域的应用,将极大地提升网络部署和管理的效率与质量。
了解更多
- NVIDIA Air简介
- 使用NVIDIA Air服务将仿真与现实世界联系起来
- NVIDIA Air中可扩展的自定义网络拓扑的外部文件上传的优势
- 使用Ansible和Git在NVIDIA Air中自动执行网络设计
- NVIDIA Air文档
- NVIDIA Cumulus Linux数据表
- NVIDIA Cumulus Linux文档
新媒网(公号: 新媒网跨境发布),是一个专业的跨境电商、游戏、支付、贸易和广告社区平台,为百万跨境人传递最新的海外淘金精准资讯情报。

Blink Subscription Plus Plan with monthly auto-renewal
$ 10.00

Amazon Fire TV Stick HD (newest model), free and live TV, Alexa Voice Remote, smart home controls, HD streaming
$ 24.99

Ring Battery Doorbell | Home or business security with Head-to-Toe Video, Live View with Two-Way Talk, and Motion Detection & Alerts (newest model), Satin Nickel
$ 41.24

Amazon Fire TV Stick 4K (newest model) with AI-powered Fire TV Search, Wi-Fi 6, stream over 1.8 million movies and shows, free & live TV
$ 29.99

Amazon Fire TV Stick 4K Max streaming device (newest model) with AI-powered Fire TV Search, supports Wi-Fi 6E, free & live TV without cable or satellite
$ 39.99

评论(0)