iT邦幫忙

2025 iThome 鐵人賽

DAY 27
0
自我挑戰組

日誌檢查學習自我挑戰系列 第 27

DAY27:NetDevOps 與數據模型基礎

  • 分享至 

  • xImage
  •  

隨著網路規模不斷擴大,傳統手動、依賴 CLI (Command Line Interface) 進行的配置和排查,已經成為效率和穩定性的最大瓶頸。現代網路工程正在經歷一場從「手動操作」到「程式化、自動化」的重大轉變,這就是 NetDevOps 的核心理念。

  1. 從 CLI 轉向 NetDevOps 的根本原因
傳統 CLI 模式 NetDevOps (自動化) 模式
手動操作,逐臺登入,容易因疲勞造成人為錯誤。 自動化部署,程式碼執行,確保配置一致性。
配置是文本,難以進行版本追蹤和比對差異。 配置即程式碼 (CaC),使用 Git 進行版本控制。
非結構化輸出,排查時需要人工解析 show 命令的文本。 結構化數據,直接從 API 獲取 JSON/XML,方便程式處理。
  1. 網路自動化的核心語言:數據模型
    在自動化中,我們不再關注「要輸入什麼命令」,而是關注「網路的期望狀態 (Intent)」。這種期望狀態必須用標準的、機器可讀的格式來表達,這就是數據模型。

A. YAML (YAML Ain't Markup Language)
特性: 簡潔、易讀、人性化,層次結構清晰。

用途: 最常用於定義配置變量和意圖。例如,定義一個 VLAN 的 ID 和名稱、定義一個 BGP 鄰居的 AS 號。它是 Ansible 等自動化工具的首選配置語言。

B. JSON (JavaScript Object Notation)
特性: 嚴謹、緊湊,適合透過 API 在不同系統之間傳輸數據。

用途: 網路設備 API (如 REST API) 在回覆查詢結果時,通常使用 JSON 格式。它適合機器間的資料交換。

  1. 自動化工具與 API 介面
    要將 YAML 或 JSON 中的數據意圖推送到網路設備上,需要專門的工具和介面:

A. 核心工具 (Control Layer)
Ansible: 基於 YAML 的自動化引擎。它最大的優勢是無 Agent(不需在設備上安裝軟體),透過 SSH 連線執行任務,適合快速部署和配置管理。

Python 腳本: 通常搭配 Netmiko(用於 SSH 介面操作)或 Nornir(用於多執行緒管理)等庫,用於處理更複雜的邏輯和數據轉換。

B. 現代 API 協定 (Device Layer)
未來的網路設備不再只依賴 CLI,而是提供結構化的 API 介面:

NETCONF / RESTCONF: 這是下一代網路設備管理的主流協定。它們使用 YANG 數據模型來定義設備配置的結構和語義,確保了配置的嚴謹性和可預測性。自動化腳本可以直接操作 YANG 數據,而不是處理 CLI 文本。

  1. 總結:網路工程師的未來技能棧
    隨著 SDN 和自動化的普及,網路工程師的角色正在轉變。要從純粹的操作者進化為架構師和自動化專家,必須掌握以下技能:
    程式設計基礎: 至少精通 Python,能夠編寫自動化腳本。

數據模型理解: 能夠讀寫 YAML/JSON,並理解 YANG 模型的基本結構。

版本控制: 熟悉使用 Git 來管理配置檔案、自動化腳本和文檔。

NetDevOps 並不是取代網路工程師,而是將他們從重複、低效的手動工作中解放出來,專注於網路架構的設計、優化和解決更複雜的策略性問題。擁抱自動化,就是掌握了網路運維的未來。


上一篇
DAY26:VXLAN 協定原理與應用
下一篇
DAY28:Wireshark
系列文
日誌檢查學習自我挑戰30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言