隨著網路規模不斷擴大,傳統手動、依賴 CLI (Command Line Interface) 進行的配置和排查,已經成為效率和穩定性的最大瓶頸。現代網路工程正在經歷一場從「手動操作」到「程式化、自動化」的重大轉變,這就是 NetDevOps 的核心理念。
傳統 CLI 模式 | NetDevOps (自動化) 模式 |
---|---|
手動操作,逐臺登入,容易因疲勞造成人為錯誤。 | 自動化部署,程式碼執行,確保配置一致性。 |
配置是文本,難以進行版本追蹤和比對差異。 | 配置即程式碼 (CaC),使用 Git 進行版本控制。 |
非結構化輸出,排查時需要人工解析 show 命令的文本。 |
結構化數據,直接從 API 獲取 JSON/XML,方便程式處理。 |
A. YAML (YAML Ain't Markup Language)
特性: 簡潔、易讀、人性化,層次結構清晰。
用途: 最常用於定義配置變量和意圖。例如,定義一個 VLAN 的 ID 和名稱、定義一個 BGP 鄰居的 AS 號。它是 Ansible 等自動化工具的首選配置語言。
B. JSON (JavaScript Object Notation)
特性: 嚴謹、緊湊,適合透過 API 在不同系統之間傳輸數據。
用途: 網路設備 API (如 REST API) 在回覆查詢結果時,通常使用 JSON 格式。它適合機器間的資料交換。
A. 核心工具 (Control Layer)
Ansible: 基於 YAML 的自動化引擎。它最大的優勢是無 Agent(不需在設備上安裝軟體),透過 SSH 連線執行任務,適合快速部署和配置管理。
Python 腳本: 通常搭配 Netmiko(用於 SSH 介面操作)或 Nornir(用於多執行緒管理)等庫,用於處理更複雜的邏輯和數據轉換。
B. 現代 API 協定 (Device Layer)
未來的網路設備不再只依賴 CLI,而是提供結構化的 API 介面:
NETCONF / RESTCONF: 這是下一代網路設備管理的主流協定。它們使用 YANG 數據模型來定義設備配置的結構和語義,確保了配置的嚴謹性和可預測性。自動化腳本可以直接操作 YANG 數據,而不是處理 CLI 文本。
數據模型理解: 能夠讀寫 YAML/JSON,並理解 YANG 模型的基本結構。
版本控制: 熟悉使用 Git 來管理配置檔案、自動化腳本和文檔。
NetDevOps 並不是取代網路工程師,而是將他們從重複、低效的手動工作中解放出來,專注於網路架構的設計、優化和解決更複雜的策略性問題。擁抱自動化,就是掌握了網路運維的未來。