5インフラと自動化
- 5.1モデル駆動プログラマビリティとIaC
手作業のCLI設定からInfrastructure as Code(IaC)へ移る価値、宣言的・冪等性・バージョン管理というIaC原則、そして各機器を直接操作するデバイスレベル自動化とコントローラのインテントを介すコントローラレベル自動化の使い分けを、「この運用課題にはどちらの層で自動化すべきか」という判断として学びます。
- 5.2テスト・CI/CDと自動化ツール
ネットワーク変更を安全に流すためのCI/CDパイプライン(lint→テスト→デプロイ)、仮想環境で試すCisco Modeling Labs(CML)と状態を検証するpyATS、そしてAnsible(エージェントレス・冪等)・Terraform(宣言的・状態管理)・Cisco NSO(マルチベンダ・サービスモデル)の得意分野を、「このパイプライン段は何を守っているか」「この要件にはどのツールか」という判断として学びます。
- 5.3自動化ワークフローの読解
提示されたPython(requests/SDK)スクリプト・Ansible playbook・bashスクリプトが「何を・どの機器に・どのように自動化するか」を読み解く力を養います。hosts/tasks/モジュール/ループ/backup/when条件などから冪等な設定配布か・情報収集か・バックアップかを判断し、危険な操作(無条件のsave/reload)を見抜けるようにします。
- 5.4応答とモデルの解釈
RESTCONF/NETCONFの応答(JSON/XML・<ok/>・rpc-reply)と、それらの土台となるYANGデータモデル(container/list/leafの階層)、そして変更差分を表すunified diff(@@ハンク・+/-行)を読み解き、「この応答は成功か失敗か」「このモデルのどこが何を表すか」「この差分は結局何を変えるか」を判断できるようにします。
- 5.5コードレビューとシーケンス図の解釈
自動化コードを安全に育てるコードレビューの原則(小さなPR・可読性/正しさ/セキュリティ重視・知識共有)とその利点、そしてシーケンス図(アクター/ライフライン・要求と応答の矢印・時間は上から下)からAPI呼び出しの順序と依存(トークン取得→GET→429→再試行など)を読み解く力を養います。

