<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Part 1: Rethinking Networking with Automation on Designing Network Automation at Scale</title><link>https://designingnetworkautomation.com/ja/series/part1-rethinking-networking-with-automation/</link><description>Recent content in Part 1: Rethinking Networking with Automation on Designing Network Automation at Scale</description><generator>Hugo</generator><language>ja</language><atom:link href="https://designingnetworkautomation.com/ja/series/part1-rethinking-networking-with-automation/index.xml" rel="self" type="application/rss+xml"/><item><title>01 - 自動化という必然</title><link>https://designingnetworkautomation.com/ja/series/part1-rethinking-networking-with-automation/01-automation-imperative/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part1-rethinking-networking-with-automation/01-automation-imperative/</guid><description>&lt;h1 id="1-自動化という必然">1. 自動化という必然&lt;a class="anchor" href="#1-%e8%87%aa%e5%8b%95%e5%8c%96%e3%81%a8%e3%81%84%e3%81%86%e5%bf%85%e7%84%b6">#&lt;/a>&lt;/h1>
&lt;div class="note-box">
 &lt;em>「自動化すべきか、せざるべきか、それが問題だ。」&lt;/em>
&lt;/div>
&lt;p>&lt;a href="https://designingnetworkautomation.com/ja/glossary/#sdn" class="glossary-term" title="A network architecture approach that enables the network to be intelligently and centrally controlled, or &amp;#39;programmed,&amp;#39; using software applications. This helps operators manage the entire network consistently and holistically, regardless of the underlying network technology.">Software-Defined Networking (SDN)&lt;/a>とDevOpsが登場して以来、ネットワーク自動化は必要なのか、贅沢なのか、それとも過剰な設計なのかという議論が絶えない。答えは「場合による」。ハイパースケーラーには必須だ。選択の余地がなかった彼らは2010年代初頭にすでに着手していた。中小企業には完全な自動化はまったく不要かもしれない。ほとんどのネットワークはその中間に位置する。文化、スキル、ツールの成熟度、ビジネスの優先事項、これらすべてが採用のスピードを左右する。今日、これらの要因がそろいつつある。自動化は避けられない流れになっている。&lt;/p>
&lt;p>ある地域物流会社のネットワークチームは、自分たちが「自動化プラットフォーム」と呼ぶものを3年かけて構築した。VLANプロビジョニング、BGPネイバー設定、デバイスハードニング用のAnsibleプレイブック。コードはGitで管理され、変更はピアレビューを経て、デプロイは数日ではなく数分で完了した。あらゆる指標において、彼らは自動化を正しく実践していた。&lt;/p>
&lt;p>そして会社が競合他社を買収し、一夜にして規模が2倍になった。新しいサイト、2つの新ベンダー、自社の命名規則と衝突する命名規則。新環境に対してプロビジョニングプレイブックを初めて実行したとき、エッジケースで失敗した。修正した。また別の箇所で失敗した。買収から6週間後、1人のエンジニアが手動でネットワークを運用するよりも、自動化のメンテナンスに多くの時間を費やすようになっていた。&lt;/p>
&lt;p>振り返りの場は居心地が悪かった。ツールは失敗していなかった。Ansibleは問題なかった。失敗していたのは目に見えないものだった。ネットワークがどうあるべきかという単一の記述が存在しなかったのだ。各プレイブックは命名規則、IPアロケーション戦略、ベンダー挙動に関する独自の前提を抱えていた。環境が変わると、すべての前提が同時に崩れた。チームは既存のネットワークを自動化していたのであって、変化に適応できるプラットフォームを構築していなかった。&lt;/p>
&lt;p>これがあらゆる自動化の停滞の根本にあるパターンだ。組織は、今日の問題のために構築した自動化が明日の障害になる地点に必ず差し掛かる。&lt;/p>
&lt;h2 id="11-完璧な嵐">1.1. 完璧な嵐&lt;a class="anchor" href="#11-%e5%ae%8c%e7%92%a7%e3%81%aa%e5%b5%90">#&lt;/a>&lt;/h2>
&lt;p>自動化はもはや任意ではない。ハイパースケーラーは爆発的な&lt;a href="https://designingnetworkautomation.com/ja/glossary/#ai" class="glossary-term" title="The simulation of human intelligence processes by machines, especially computer systems, enabling them to perform tasks such as learning, reasoning, and problem-solving.">Artificial Intelligence (AI)&lt;/a>成長に対処している。数十万の&lt;a href="https://designingnetworkautomation.com/ja/glossary/#cpu" class="glossary-term" title="The primary component of a computer that performs most of the processing, executing instructions from programs and managing system operations.">Central Processing Unit (CPU)&lt;/a>と&lt;a href="https://designingnetworkautomation.com/ja/glossary/#gpu" class="glossary-term" title="A specialized processor designed to accelerate graphics rendering and parallel processing tasks, widely used in AI, ML, and high-performance computing.">Graphics Processing Unit (GPU)&lt;/a>が高速イーサネットを通じて通信している。エンタープライズやサービスプロバイダーは、レガシーインフラ、新サービス、クラウド/オンプレミス/エッジの拡散、コスト増大に悩まされている。&lt;/p></description></item><item><title>02 - 設計原則</title><link>https://designingnetworkautomation.com/ja/series/part1-rethinking-networking-with-automation/02-design-principles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part1-rethinking-networking-with-automation/02-design-principles/</guid><description>&lt;h1 id="2-設計原則">2. 設計原則&lt;a class="anchor" href="#2-%e8%a8%ad%e8%a8%88%e5%8e%9f%e5%89%87">#&lt;/a>&lt;/h1>
&lt;p>あるネットワーク自動化チームが6ヶ月かけて、本当に誇りに思えるシステムを構築した。構造化データモデルからインテントを取得し、テンプレートエンジンでデバイス設定を生成し、ポリシーライブラリに照らして変更を検証し、完全なロールバック機能を備えたNETCONF経由でプッシュする。アーキテクチャ的には盤石だった。経営陣へのデモも好評だった。そしてネットワーク運用チームに引き渡した。&lt;/p>
&lt;p>導入は一向に進まなかった。オペレーターはCLIを使い続けた。理由を尋ねると、答えは一致していた。「実行する前に何が起きるかわからない」「何か問題が起きたとき、何が起こったのか把握できない」「出力の読み方がわからない」。自動化チームは技術的には印象的なものを作り上げたが、運用面では不透明だった。ドライランモードも、人間が読めるような変更プレビューも、オペレーターが認識できる言葉で書かれた監査証跡も存在しなかった。システムはまだ信頼を得ていないのに信頼を求めるブラックボックスだった。6ヶ月分のエンジニアリングの成果は使われないまま放置された。&lt;/p>
&lt;p>この結果はほとんどのチームが認めるよりもはるかによく起きる。自動化はバグや設計の欠陥だけで失敗するわけではない。それに依存しなければならない人々が信頼しないために失敗する。ここでは、ネットワーク自動化を信頼性高く、スケーラブルで、安全なものにする基本的な設計原則を探っていく。これらは抽象的な理論ではない。導入されて真の価値をもたらす自動化と、無視されて最終的に放棄される自動化の違いだ。&lt;/p>
&lt;p>これらの原則の多くは他のソフトウェアプロジェクトにも当てはまる。しかしネットワーク自動化は重要なインフラを支えるという独自の特性を持つ。ネットワークエンジニアは慎重さ、精度、手動検証に基づくモデルを使ってこれらのシステムを数十年にわたって構築・保守してきた。今、私たちは彼らに根本的に異なるモデルを採用するよう求めている。それには&lt;strong>信頼&lt;/strong>が必要だ。&lt;/p>
&lt;h2 id="21-信頼を築く">2.1 信頼を築く&lt;a class="anchor" href="#21-%e4%bf%a1%e9%a0%bc%e3%82%92%e7%af%89%e3%81%8f">#&lt;/a>&lt;/h2>
&lt;p>具体的な原則に入る前に、信頼について話しておこう。信頼はネットワーク自動化を成功させるための礎だ。それなしには、導入はほぼ不可能になる。&lt;/p>
&lt;p>なぜ&lt;strong>信頼&lt;/strong>がこれほど重要なのか？なければ、ネットワークエンジニアはあなたの自動化を採用しないからだ。自動化が置き換える手動プロセスと少なくとも同等の信頼性（さらにその他のメリット）を提供すると信じてもらう必要がある。&lt;/p>
&lt;p>さらに難しいのは、自動化システムを構築するエンジニアが深いネットワーク経験を持っていない場合が多いことだ。だから自動化は、ネットワークエンジニアチームにとって安全で、信頼でき、カスタマイズと管理がしやすいという強く明示的な特性を埋め込むことで補完しなければならない。&lt;/p>
&lt;blockquote class='book-hint note'>
&lt;p>信頼できる自動化の重要性は、Autocon3での&lt;a href="https://www.linkedin.com/in/damiengarros/">Damien Garros&lt;/a>のプレゼンテーション&lt;a href="https://www.youtube.com/watch?v=G3XqT-UhQ6Q">Building Trustworthy Network Automation&lt;/a>に着想を得ている。&lt;/p>&lt;/blockquote>&lt;p>シンプルにまとめると、必要な4つの基本特性は以下の通りだ。&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://designingnetworkautomation.com/ja/glossary/#predictable" class="glossary-term" title="A quality of trustworthy automation where operations produce consistent, deterministic outcomes that engineers can anticipate.">Predictable&lt;/a>（予測可能）&lt;/strong>: 一貫した決定論的な結果。エンジニアは「実行」を押す前に何が起きるかを知る必要があり、毎回同じ動作が得られなければならない。&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://designingnetworkautomation.com/ja/glossary/#reliable" class="glossary-term" title="A quality where automation handles errors gracefully, recovers from failures, and completes operations safely even under unexpected conditions.">Reliable&lt;/a>（信頼性）&lt;/strong>: エラーを適切に処理する。障害から回復する。予期しない状況下でも、規模が大きくなっても、操作が安全に完了する（またはロールバックする）ことを保証する。&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://designingnetworkautomation.com/ja/glossary/#usable" class="glossary-term" title="A quality where automation provides interfaces that allow engineers to validate, reason about, and control behavior without excessive complexity.">Usable&lt;/a>（使いやすさ）&lt;/strong>: 過度な複雑さなしにエンジニアが動作を検証、理解、制御できるインターフェース。ガードレール付きで。&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://designingnetworkautomation.com/ja/glossary/#understandable" class="glossary-term" title="A quality where automation systems expose intent, steps, results, and decisions transparently, building human confidence.">Understandable&lt;/a>（理解可能）&lt;/strong>: ブラックボックスであってはならない。インテント、ステップ、結果、判断を、人間の信頼を築く形で公開しなければならない。&lt;/li>
&lt;/ul>
&lt;pre class="mermaid">
graph BT
 %% ===== Middle Layer =====
 subgraph L2[**特性**]
 direction LR
 B1[予測可能]:::layer2
 B2[信頼性]:::layer2
 B3[使いやすさ]:::layer2
 B4[理解可能]:::layer2
 end

 %% ===== Top Layer =====
 subgraph L1[&amp;#34; &amp;#34;]
 direction TB
 A[信頼]:::layer1
 end

 %% ===== Connections: Behavior → Outcome =====
 B1 --&amp;gt; A
 B2 --&amp;gt; A
 B3 --&amp;gt; A
 B4 --&amp;gt; A

 %% ===== Styling =====
 classDef layer1 fill:#ffcccc,stroke:#b8860b,stroke-width:2px,color:#000;
 classDef layer2 fill:#ffe6cc,stroke:#4682b4,stroke-width:1.5px,color:#000;
&lt;/pre>&lt;script src="https://designingnetworkautomation.com/mermaid.min.js" onload="mermaid.initialize({&amp;#34;flowchart&amp;#34;:{&amp;#34;useMaxWidth&amp;#34;:true},&amp;#34;theme&amp;#34;:&amp;#34;default&amp;#34;})">&lt;/script>
&lt;blockquote class='book-hint warning'>
&lt;p>AI/ML技術がネットワーク自動化の領域に参入するにつれて、予測可能性または決定論的な動作はますます重要になっている。これらの技術は一定のランダム性をもたらすからだ。&lt;/p></description></item><item><title>03 - アーキテクチャ的思考</title><link>https://designingnetworkautomation.com/ja/series/part1-rethinking-networking-with-automation/03-architectural-thinking/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part1-rethinking-networking-with-automation/03-architectural-thinking/</guid><description>&lt;h1 id="3-アーキテクチャ的思考">3. アーキテクチャ的思考&lt;a class="anchor" href="#3-%e3%82%a2%e3%83%bc%e3%82%ad%e3%83%86%e3%82%af%e3%83%81%e3%83%a3%e7%9a%84%e6%80%9d%e8%80%83">#&lt;/a>&lt;/h1>
&lt;p>この章は本書の基盤を紹介する。このマインドセットを採用する必要がある理由を説明し、&lt;a href="https://networkautomation.forum">Network Automation Forum&lt;/a>（NAF）が提唱する参照フレームワークを紹介し、自分のプロジェクトでどう活用するかを示す。&lt;/p>
&lt;p>第2部ではこれらのトピックを深く掘り下げる。この章では、各構成要素を詳述する前に全体像を把握できるよう、概要を紹介するにとどめる。これが重要な理由は、各構成要素を説明したとき、全体像があると点と点をつなぎやすいからだ。&lt;/p>
&lt;p>しかし筆者はWHATを知る前にWHYを理解することを強く信じているので、まずアーキテクチャを活用する理由を理解しよう。&lt;/p>
&lt;h2 id="31-参照アーキテクチャが重要な理由">3.1. 参照アーキテクチャが重要な理由&lt;a class="anchor" href="#31-%e5%8f%82%e7%85%a7%e3%82%a2%e3%83%bc%e3%82%ad%e3%83%86%e3%82%af%e3%83%81%e3%83%a3%e3%81%8c%e9%87%8d%e8%a6%81%e3%81%aa%e7%90%86%e7%94%b1">#&lt;/a>&lt;/h2>
&lt;p>&lt;em>「教育を受けた者だけが自由だ。」&lt;/em> エピクテトス&lt;/p>
&lt;p>ネットワーク自動化ソリューションは複数のピースの組み合わせで、それぞれが役割を担う。ネットワーキングの世界では、あらゆる問題を解決しようとするシンプルなモノリシックなソリューションに慣れ親しんでいる。ある程度はそれが正しいかもしれないが、単独で多様な課題とユースケースすべてを解決できるものはない。だから、ユースケースが最も一般的なものでなければ、カスタマイズや拡張が必要になるかもしれない。&lt;/p>
&lt;p>明確な参照アーキテクチャがなければ、チームは予測可能な一連の問題に直面することが多い：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>重複した努力&lt;/strong>: 複数のチームが同様のツール（データソース、重複したスクリプト、冗長なモニタリングシステム）を独立して構築し、リソースを無駄にして一貫性のないインターフェースを生む。&lt;/li>
&lt;li>&lt;strong>統合のギャップ&lt;/strong>: ツール同士がきれいに連携せず、高コストなカスタム統合作業を強いられる。&lt;/li>
&lt;li>&lt;strong>責任の不明確さ&lt;/strong>: どのツールがオブザーバビリティ、オーケストレーション、状態管理を担当すべきかが不明確で、混乱と責任のなすり合いにつながる。&lt;/li>
&lt;li>&lt;strong>拡張の難しさ&lt;/strong>: 新しい機能やツールの追加がシステム全体の再考を必要とする。&lt;/li>
&lt;li>&lt;strong>知識のサイロ化&lt;/strong>: 異なるチームが異なるメンタルモデルを使い、新しい人のオンボーディングやソリューションの保守が難しくなる。&lt;/li>
&lt;/ul>
&lt;p>参照アーキテクチャはこれらの問題を、自動化システムをどのように整理すべきかという&lt;strong>単一の明確なメンタルモデル&lt;/strong>を提供することで解決する。それが定義するのは：&lt;/p>
&lt;ul>
&lt;li>各コンポーネントが何をすべきか → その責任&lt;/li>
&lt;li>コンポーネントがどのように相互作用するか → インターフェースとデータフロー&lt;/li>
&lt;li>どこで選択できるか → どのツールを使うか&lt;/li>
&lt;li>どこで一貫性が必要か → コンポーネント間の通信方法&lt;/li>
&lt;/ul>
&lt;p>参照アーキテクチャはネットワークエンジニアにとって新しいものではない。私たちは皆、親しみ深いOSIモデルとともに育ってきた。OSIモデルを使うことで、各レイヤーが異なる責任と関心事を持つため、ネットワーク問題を診断して理解するための段階的なレイヤードアプローチが得られる。ネットワークの専門家は、この懸念事項の分離が複雑なシステムを管理可能にすることを直感的に理解している。&lt;/p>
&lt;p>ネットワーク自動化でも、連携して機能するソリューションの開発と相互接続を導くための同様のものが必要だ。チームが一貫した決定を下し、プロジェクト間でコンポーネントを再利用し、毎回ゼロから考え直すことなく自動化の能力を進化させる助けになる。&lt;/p>
&lt;h2 id="32-ネットワーク自動化アーキテクチャ">3.2. ネットワーク自動化アーキテクチャ&lt;a class="anchor" href="#32-%e3%83%8d%e3%83%83%e3%83%88%e3%83%af%e3%83%bc%e3%82%af%e8%87%aa%e5%8b%95%e5%8c%96%e3%82%a2%e3%83%bc%e3%82%ad%e3%83%86%e3%82%af%e3%83%81%e3%83%a3">#&lt;/a>&lt;/h2>
&lt;p>これを踏まえると、アーキテクチャが必要だ。しかしセクションタイトルの「A（一つの）」に注目してほしい。アーキテクチャは一つだけではなく、多くある。アーキテクチャは単なる参照フレームワークだ。思考を整理し、一貫した決定を導く方法。筆者は3つのイニシアティブに貢献してきた：&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://networktocode.com/blog/network-automation-architecture-part-01/">Network to Code参照アーキテクチャ&lt;/a>：NTCアーキテクチャチーム（筆者が4年間参加）が主導した集合的な取り組みで、幅広いユースケースにわたって効率的で理解しやすいネットワーク自動化をサポートするよう設計されている。&lt;/li>
&lt;li>&lt;a href="https://www.oreilly.com/library/view/:network-programmability-and/9781098110826/ch14.html">O&amp;rsquo;Reilly「Network Automation and Programmability」第2版&lt;/a>：共著者のMatt Oswalt、Scott S. Lowe、Jason Edelmanとともに本書のすべてのコンテンツの点と点をつなぐ取り組み。&lt;/li>
&lt;li>&lt;a href="https://reference.networkautomation.forum/Framework/Framework/">NAFフレームワーク&lt;/a>：Wim Henderickx、Dinesh Dutt、Claudia de Luna、Ryan Shaw、Damien Garrosとともに主導した、NAFの傘下のコミュニティプロジェクト。初心者と経験豊富な実践者の両方が構造化された再現可能な方法で自動化ソリューションを構築できるようにすることを目標としている。&lt;/li>
&lt;/ul>
&lt;p>これらのイテレーションを通じて、一貫性を維持し各進化から学ぶことに注力してきた。3つのアプローチすべてが有用だ。しかし、&lt;a href="https://reference.networkautomation.forum/Framework/Framework/">&lt;a href="https://designingnetworkautomation.com/ja/glossary/#naf_framework" class="glossary-term" title="Network Automation Forum Framework. A community-driven, vendor-agnostic reference architecture that defines seven building blocks for organizing network automation solutions: Intent, Executor, Collector, Observability, Orchestrator, Presentation, and Network Infrastructure.">NAF Framework&lt;/a>&lt;/a>を現在のベストプラクティスとして使用することを提案する。コミュニティ主導で、ベンダーに依存せず、広く適用可能だ。長年の集合的な学習を統合し、積極的に活動する成長するコミュニティによって維持されている。&lt;/p></description></item></channel></rss>