<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Designing Network Automation at Scale</title><link>https://designingnetworkautomation.com/ja/</link><description>Recent content on Designing Network Automation at Scale</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Sat, 10 Oct 2026 07:59:09 +0200</lastBuildDate><atom:link href="https://designingnetworkautomation.com/ja/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><item><title>04 - Source of Truth</title><link>https://designingnetworkautomation.com/ja/series/part2-architectural-building-blocks/04-source-of-truth/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part2-architectural-building-blocks/04-source-of-truth/</guid><description>&lt;h1 id="4-source-of-truth">4. Source of Truth&lt;a class="anchor" href="#4-source-of-truth">#&lt;/a>&lt;/h1>
&lt;p>新しいサービスを週末までに本番稼働させる必要があった。変更内容は単純だった。新しいVLAN、新しいサブネット、ファイアウォールルールの更新、エッジルーターへのBGPコミュニティの追加。担当のネットワークエンジニアは何をすべきかを正確に把握していた。ところが実際には、5つのシステムにまたがる4日間の調整作業が待っていた。サブネットを予約するIPAMツール、サービスを登録するCMDB、新しいポリシーを適用するファイアウォール管理プラットフォーム、BGPコミュニティを設定するルーター構成システム、そして新しいしきい値を追加する監視プラットフォーム。各システムはそれぞれ独自のインターフェース、独自のデータモデル、独自の承認ワークフローを持っていた。共通の参照点がなかったため、エンジニアは手動でコンテキストを持ち回るしかなかった。あるシステムから値をコピーして次のシステムに貼り付け、途中でデータが変わっていないことを祈りながら。&lt;/p>
&lt;p>6カ月後、そのサービスは廃止された。VLANは削除され、サブネットも解放された。しかしファイアウォールルールはそのまま残った。そのルールがそのサービスに紐付いていたことを誰も覚えていなかった。BGPコミュニティは2台のエッジルーターに残り続けた。監視のしきい値は低優先度のアラートを出し続けたが、NOCはいつしかそれを無視することを学んでいた。時間とともに、ネットワークには孤立した設定が積み重なっていった。完全に追跡されず、完全に削除されず、共通の意図の記録に紐付けられることもなかった変更の残骸が。&lt;/p>
&lt;p>これが、Source of Truth なしにネットワークを運用するということの実態だ。一度の劇的な障害ではなく、じわじわと積み重なる不整合。すべての変更が複数の分断されたシステムの更新を必要とし、何が関連しているかを追い続けるものが何もない状態。&lt;/p>
&lt;p>すべての自動化システムは一つの問いから始まる。&lt;strong>実際に何をしようとしているのか?&lt;/strong> ファイアウォールルールを展開するとき、IPアドレスを追加するとき、VLANを設定するとき、あなたは何らかのインテントの表現に基づいて行動している。その表現こそが Source of Truth だ。つまり、&lt;em>何が展開されるべきか&lt;/em>を示す、唯一の信頼できるバージョン。&lt;/p>
&lt;blockquote class='book-hint note'>
&lt;p>「Source of Truth」と「Intent」は本書では同じ意味で使用している。概念としてまったく同一だ。&lt;/p>&lt;/blockquote>&lt;p>信頼できる Source of Truth なしでは、ネットワーク運用は属人的な知識の塊になってしまう。エンジニアは何が展開されているかで意見が食い違う。スプレッドシートは実際に動いているものと矛盾する。2つの異なる自動化システムが同じデバイスに対して競合する変更を加える。何かが壊れると、考古学者のような作業が始まる。「なぜこう設定されているのか? 誰が承認したのか? いつ変わったのか?」&lt;/p>
&lt;p>本章では、デバイスが数十台であれ数十万台であれ機能し、データを必要とするすべての人(人間、自動化、他のシステム)に提供し、データの正確性と信頼性を維持し、複数のソースからのデータ収集の複雑さを処理できる Source of Truth の構築方法を解説する。6つの構成要素を取り上げる。Modeling、Consumption、Enforcement、Versioning、Aggregation、Design-Driven だ。これらが組み合わさることで、ネットワーク自動化の堅固な基盤が生まれる。既存のネットワークをこのシステムに取り込む際の実践的な課題にも触れ、実際に利用可能なソリューションも紹介する。&lt;/p>
&lt;h2 id="41-基本原則">4.1. 基本原則&lt;a class="anchor" href="#41-%e5%9f%ba%e6%9c%ac%e5%8e%9f%e5%89%87">#&lt;/a>&lt;/h2>
&lt;p>Source of Truth は3つのことを行う。インテントをどう表現するかの&lt;em>方法&lt;/em>を定義し、そのインテントが&lt;em>どこに&lt;/em>存在するかを定め、それを&lt;em>長期にわたって信頼できる状態に保つ&lt;/em>方法を確立する。これがなければ、他の構成要素は共通の参照点を持たない単独ツールの集まりになってしまう。これがあれば、それらは連携して機能する。&lt;/p>
&lt;h3 id="411-ゴール">4.1.1. ゴール&lt;a class="anchor" href="#411-%e3%82%b4%e3%83%bc%e3%83%ab">#&lt;/a>&lt;/h3>
&lt;p>Source of Truth が果たすべき6つの役割がある。&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>必要なすべてを把握する&lt;/strong>。ネットワークの全体像を保存する。設定、資産、トポロジー、サービス、IPアドレス、回線、デバイス仕様、認証情報、メンテナンスウィンドウ、コンプライアンス要件、所有者情報。現在稼働しているものだけでなく、計画中のものと廃止予定のものも含める。このデータがスプレッドシートや担当者の頭の中ではなく一か所に集まって初めて、自動化システムは賢い判断を下すために必要なコンテキストを手にできる。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>オペレーターがビジネスの言葉で考えられるようにする&lt;/strong>。スタッフはビジネスレベルで作業すべきだ(「新しいブランチを追加する」や「MPLSサービスをセットアップする」など)。&lt;a href="https://designingnetworkautomation.com/ja/glossary/#cli" class="glossary-term" title="A text-based interface for interacting with systems by typing commands, commonly used for network device configuration and troubleshooting.">Command Line Interface (CLI)&lt;/a> レベルで作業するのではなく。裏側で、システムが実際のデバイス固有の設定を導き出す。こうすることで、人は低レベルの詳細ではなく、達成しようとしていることに集中できる。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>人とシステムが簡単にデータにアクセスできるようにする&lt;/strong>。自動化がデータを取得・更新できるよう &lt;a href="https://designingnetworkautomation.com/ja/glossary/#api" class="glossary-term" title="A set of definitions, protocols, and tools that allow software components to communicate with each other programmatically.">Application Programming Interface (API)&lt;/a>(&lt;a href="https://designingnetworkautomation.com/ja/glossary/#rest" class="glossary-term" title="An architectural style for designing networked applications using HTTP methods (GET, POST, PUT, DELETE) to interact with resources, commonly used in web APIs.">Representational State Transfer (REST)&lt;/a>, GraphQL)が必要だ。人間が閲覧・編集できるよう Web UI と &lt;a href="https://designingnetworkautomation.com/ja/glossary/#cli" class="glossary-term" title="A text-based interface for interacting with systems by typing commands, commonly used for network device configuration and troubleshooting.">Command Line Interface (CLI)&lt;/a> も必要だ。すべての人に対して、見るべきものだけが見えるアクセス制御が必要だ。数百の自動化ワークフローが同時に動き、数十のスタッフがデータを編集し、外部システムが同期していても、一貫性とパフォーマンスが保たれる必要がある。&lt;/p></description></item><item><title>05 - Execution</title><link>https://designingnetworkautomation.com/ja/series/part2-architectural-building-blocks/05-execution/</link><pubDate>Sat, 01 Nov 2025 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part2-architectural-building-blocks/05-execution/</guid><description>&lt;h1 id="5-execution">5. Execution&lt;a class="anchor" href="#5-execution">#&lt;/a>&lt;/h1>
&lt;p>Playbookは何カ月も完璧に動作していた。ラボの10台のアクセススイッチに対してエンドツーエンドで2分、毎回クリーンな結果。チームが800台のスイッチの全インベントリにロールアウトすることを決めたとき、誰も問題を予想しなかった。最初の600台のデバイスは問題なく更新された。そしてジョブが遅くなった。そして止まった。RADIUSサーバーが突然150件の同時SSH認証リクエストを受け取り、接続を拒否し始めた。Ansibleは150台のデバイスの実行途中でハングした。エンジニアがジョブを強制終了した。&lt;/p>
&lt;p>次に来たのがより難しい問題だった。600台のデバイスのどれが更新されて、どの150台がそうでないか、誰にも分からなかった。実行状態が記録されていなかった。Playbookを再実行して、冪等性が助けてくれることを願った。その時は助かった。しかしこのインシデントは重要なことを明らかにした。実行レイヤーはラボ向けに設計されており、ネットワーク向けではなかった。速度、並列処理、エラー境界、状態追跡、何も考慮されていなかった。自動化は機能していた。実行アーキテクチャが機能していなかった。&lt;/p>
&lt;p>多くの人はネットワーク自動化を「同じデータを使って、人間としてCLIに接続せずに、ネットワークで何かをする」と考える。ネットワーク自動化を始める多くの人がそこから始めると思う。そしてそれが &lt;strong>Execution&lt;/strong> ブロックの行うことだ。しかし本書全体で見てきたように、ネットワーク自動化はこの最初のステップより大きく、Executionはアーキテクチャ内のひとつのコンポーネントに過ぎない。&lt;/p>
&lt;p>&lt;strong>Execution&lt;/strong> ブロックは最も&lt;em>危険な&lt;/em>操作(設定変更や再起動など)のためにネットワークと直接やり取りする。だからこの章を飛ばさないこと。正しく行うことが重要だ。&lt;/p>
&lt;p>この章では、このブロックが提供するゴールと柱、それを達成するために必要な内部機能について解説する。&lt;/p>
&lt;h2 id="51-基本原則">5.1. 基本原則&lt;a class="anchor" href="#51-%e5%9f%ba%e6%9c%ac%e5%8e%9f%e5%89%87">#&lt;/a>&lt;/h2>
&lt;h3 id="511-コンテキスト">5.1.1. コンテキスト&lt;a class="anchor" href="#511-%e3%82%b3%e3%83%b3%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88">#&lt;/a>&lt;/h3>
&lt;p>Executionは&lt;em>どのように&lt;/em>アクションを実行するかを定義する。&lt;em>何を&lt;/em>行うかはIntentブロックから、&lt;em>いつ&lt;/em>行うかはOrchestrationから来る。&lt;/p>
&lt;p>初期のネットワーク自動化プロジェクトでは、特定のデバイスとインターフェース名に対してインターフェースをバウンスするスクリプトが最初の成果となることがある。その旅は、はるかに洗練されたシステムへと成長する可能性がある。&lt;/p>
&lt;h3 id="512-ゴール">5.1.2. ゴール&lt;a class="anchor" href="#512-%e3%82%b4%e3%83%bc%e3%83%ab">#&lt;/a>&lt;/h3>
&lt;p>実行システムが実際に行うべきことは何か? 5つのことが重要だ。&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>適切なデータを準備する。&lt;/strong> 何かを実行する前に、&lt;em>何を&lt;/em>実行するか(インテント)、&lt;em>どこで&lt;/em>実行するか(どのデバイスに)、&lt;em>どのように&lt;/em>アクセスするか(認証情報、接続の詳細)を知る必要がある。これはSource of Truth(&lt;a href="../04-source-of-truth/">第4章&lt;/a>で詳述)からインベントリを取得し意図された状態をフェッチすることを意味し、時には現在の状態を把握するためにオブザーバビリティデータをクエリすることも含む。この統合なしでは、実行エンジンはただ盲目的にコマンドを実行するだけだ。精神的健康のために、それは避けること。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>今すぐでも後でも、必要なときに開始する。&lt;/strong> 即時の実行が必要なこともある。エンジニアが「デプロイ」をクリックして、すぐに実行されることを期待する。また、実行を待機させるべき場合もある。メンテナンスウィンドウ中にデプロイする、デバイスがオンラインになるまで待つ、オブザーバビリティからのイベントに反応する、などだ。システムは同期と非同期の両方のトリガーをサポートする必要がある。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>時間の経過とともに状態を追跡する。&lt;/strong> ネットワーク全体の操作は瞬時ではない。数時間かけて数百台のデバイスにデプロイすることがある。どのデバイスが成功したか? どれが失敗したか? どれがまだ保留中か? 状態管理はまた冪等性(同じタスクを2回実行しても同じ結果)、ロールバック(行ったことを元に戻す)、再開(失敗後に中断した場所から再開)を可能にする。状態追跡なしでは、すべての実行が一発勝負のギャンブルになる。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>スケールで確実に実行する。&lt;/strong> 5台のデバイスで動くスクリプトは500台ではしばしば壊れる(または劣化する)。並列実行、エラー処理、リトライ、レート制限、ドライラン機能が必要だ。システムは部分的な失敗を適切に処理し、何が問題だったかを明確にフィードバックし、ネットワークを未定義の状態に放置しないこと。操作によって異なる戦略が必要だ。高速で並列なものもあれば、低速でシリアルなものもある。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>あらゆるネットワークデバイスやプラットフォームで動作する。&lt;/strong> ネットワークにはおそらくCisco、Arista、Juniper、クラウド &lt;a href="https://designingnetworkautomation.com/ja/glossary/#api" class="glossary-term" title="A set of definitions, protocols, and tools that allow software components to communicate with each other programmatically.">Application Programming Interface (API)&lt;/a>、Linuxボックス、ファイアウォール、ロードバランサーがある。それぞれが異なるプロトコルを使い、異なる操作パターンを持つ。実行レイヤーはそれらすべてへのアダプターが必要で、残りの自動化が違いを気にしなくてもよい共通インターフェースを持つ。&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>これらのゴールを念頭に置いて、実際に必要なアーキテクチャ機能は何か?&lt;/p>
&lt;h3 id="513-柱">5.1.3. 柱&lt;a class="anchor" href="#513-%e6%9f%b1">#&lt;/a>&lt;/h3>
&lt;p>各ゴールは特定の機能に対応する。&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>データ統合レイヤー。&lt;/strong> 実行エンジンは孤立して存在しない。Source of Truth(インベントリ、認証情報、インテント)、オブザーバビリティシステム(現在の状態、ヘルスメトリクス)、そして潜在的に他のシステム(チケット、変更管理、承認ワークフロー)へのプログラム的なアクセスが必要だ。これは &lt;a href="https://designingnetworkautomation.com/ja/glossary/#api" class="glossary-term" title="A set of definitions, protocols, and tools that allow software components to communicate with each other programmatically.">Application Programming Interface (API)&lt;/a> クライアントの実装、認証の安全な処理、データの適切なキャッシング、実行開始前に必要なものがすべて揃っているかの検証を意味する。&lt;/p></description></item><item><title>Preface</title><link>https://designingnetworkautomation.com/ja/series/preface/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/preface/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>&lt;strong>翻訳作業中。&lt;/strong> このチャプターはまだ日本語に翻訳されていません。 &lt;a href="../../../en/series/preface">英語版をご参照ください&lt;/a>.





&lt;p class="chapter-feedback" style="margin-top:2em; font-size:0.9em;">
 💬 Found something to improve?
 &lt;a href="mailto:chadell&amp;#43;designing@gmail.com?subject=%255BBook%2bFeedback%255D%2bPreface&amp;body=What%20did%20you%20find%20useful%3f%250AWhat%20was%20unclear%3f%250AAny%20suggestions%3f">
 Send feedback for this chapter
 &lt;/a>
&lt;/p>&lt;/p>&lt;/blockquote></description></item><item><title>06 - オブザーバビリティ</title><link>https://designingnetworkautomation.com/ja/series/part2-architectural-building-blocks/06-observability/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part2-architectural-building-blocks/06-observability/</guid><description>&lt;h1 id="6-オブザーバビリティ">6. オブザーバビリティ&lt;a class="anchor" href="#6-%e3%82%aa%e3%83%96%e3%82%b6%e3%83%bc%e3%83%90%e3%83%93%e3%83%aa%e3%83%86%e3%82%a3">#&lt;/a>&lt;/h1>
&lt;p>あるサービスプロバイダーのコアルーターで、ファンモジュールが夜間に無音で故障した。アラートは何も発生しなかった。ラインカード上の熱管理サブシステムが温度上昇を検知し、ハードウェアを保護するためにフォワーディングASICのスロットリングを開始した。本番トランジットリンクのスループットが40%低下した。監視システムは何も捉えなかった。ポーリングしていた温度センサーはシャーシスーパーバイザー上のものであり、個々のラインカード上のものではなかったのだ。SNMPポーリングは5分おきに実行されており、デバイスは正常と報告されていた。インターフェースカウンターはスループット低下を示していたが、そのリンクはずっと容量に余裕があったため、そのパターンに対するしきい値が設定されていなかった。&lt;/p>
&lt;p>3時間後、顧客SLA違反がチケットを生成した。オンコールエンジニアがルーターにSSHし、ローカルアラームログでファンの故障を発見し、ファンモジュールを再起動した。ファンコントローラーが再起動し、熱スロットリングは数分で解除された。トラフィックは回復した。SLA違反が文書化され、顧客に通知され、インシデントはクローズされた。&lt;/p>
&lt;p>根本原因は最後まで確認されなかった。調査が始まるころにはルーターは何時間も正常稼働していた。ラインカードの温度データもスロットリングイベントの記録もなく、どの監視システムにもスループット低下とファン故障を関連付ける手段がなかった。インシデントレポートの結論は「ハードウェア問題と推測、ハードウェアリセットで解決」だった。6ヶ月後、別のルーターで同じ事象が起きた。&lt;/p>
&lt;p>この失敗はしきい値の欠如ではなかった。チームには数千ものしきい値があった。失敗は対象範囲の不完全さにあった。監視システムは従来からポーリングしていたソースからデータを収集していたが、デバイスの動作に影響しうるすべてのソースからは収集していなかった。3種類のシャーシすべてでgNMI経由のラインカード温度データは利用可能だった。ファン故障のためのランブックを誰も書いていなかったから、誰もその収集パスを設定しなかったのだ。&lt;/p>
&lt;p>従来のネットワーク監視は壊れているものを監視する。インターフェースは上がっているか？CPUは90%を超えているか？このサービスは応答しているか？それは有用だが、リアクティブだ。障害を待ち受けているだけである。&lt;/p>
&lt;p>オブザーバビリティは異なる。&lt;em>なぜ&lt;/em>壊れているのか、あるいは壊れかけているのかを理解することだ。「あのデバイスがダウンしている」ではなく「なぜダウンしているのか、何がそれで壊れているのか、ビジネスへの影響は何か」という問いに答える。ネットワーク自動化において、オブザーバビリティはフィードバックループになる。何かを観察し、システムがそれを検知し、対応を決定し、アクションを実行し、修正が機能したことを検証する。このサイクルが繰り返されることが「クローズドループ自動化」だ。&lt;/p>
&lt;p>本章では、ネットワークで起きていることを把握するために必要なすべてをカバーする。どのデータを収集するか、どうやって収集するか、どう保存するか、どうアラートを出すか、そして意思決定に本当に役立つ形で人々に見せる方法を説明する。&lt;/p>
&lt;blockquote class='book-hint note'>
&lt;p>ここでは2つのビルディングブロック、&lt;a href="https://designingnetworkautomation.com/ja/glossary/#collector" class="glossary-term" title="An architectural component that retrieves and reads the actual state of the network, gathering telemetry, configuration, and operational data.">Collector&lt;/a>と&lt;a href="https://designingnetworkautomation.com/ja/glossary/#observability" class="glossary-term" title="The ability to measure and understand a system&amp;#39;s internal state through its external outputs. Includes logging, metrics, and tracing to detect failures and optimize automation behavior.">Observability&lt;/a>を扱う。これらは密接に関連しているためだ。&lt;/p>&lt;/blockquote>&lt;p>従来のオールインワンプラットフォーム（SolarWinds、LibreNMS）、クラウドサービス（Datadog、New Relic）、オープンソースのピースから自前で構築するスタック（Prometheus、Grafanaなど）のいずれを使う場合でも、基本的なアーキテクチャは同じだ。これらのパターンを理解することで、自分のスケールとチームに合ったアプローチを選択できる。&lt;/p>
&lt;div class="note-box">
 注記: このセクションでは、例示のためにさまざまなベンダーやソリューションに言及している。これは推薦ではなく、あくまで説明目的である。
&lt;/div>
&lt;blockquote class='book-hint note'>
&lt;p>このセクションはPacktが出版した書籍&lt;a href="https://www.packtpub.com/en-us/product/modern-network-observability-9781835083178">Modern Network Observability&lt;/a>から大きな影響を受けている。私はDavid FloresとJosh Vanderaaと共著したその書籍で、TPG（Telegraf-Prometheus-Grafana）スタックやその他のツールを用いた実装を手を動かして学びたい場合には、ぜひ参照してほしい。&lt;/p>&lt;/blockquote>&lt;h2 id="61-基礎">6.1. 基礎&lt;a class="anchor" href="#61-%e5%9f%ba%e7%a4%8e">#&lt;/a>&lt;/h2>
&lt;p>低レベルの詳細に入る前に、ネットワーク自動化戦略の中におけるネットワークオブザーバビリティの基礎を確立し、そのゴール、支持する柱、およびスコープを定義する。&lt;/p>
&lt;h3 id="611-コンテキスト">6.1.1. コンテキスト&lt;a class="anchor" href="#611-%e3%82%b3%e3%83%b3%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88">#&lt;/a>&lt;/h3>
&lt;p>おそらく、すでにネットワークを監視しているだろう。&lt;a href="https://designingnetworkautomation.com/ja/glossary/#snmp" class="glossary-term" title="An Internet Standard protocol for collecting and organizing information about managed devices on IP networks, widely used for network monitoring and management.">Simple Network Management Protocol (SNMP)&lt;/a>を使い、&lt;a href="https://designingnetworkautomation.com/ja/glossary/#syslog" class="glossary-term" title="A standard protocol for message logging that allows separation of the software generating messages from the system storing and analyzing them.">System Logging Protocol (Syslog)&lt;/a>を見て、リンク使用率を示すダッシュボードを持っている。それが監視だ。物事が機能しているかを教えてくれる。&lt;/p></description></item><item><title>07 - オーケストレーション</title><link>https://designingnetworkautomation.com/ja/series/part2-architectural-building-blocks/07-orchestration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part2-architectural-building-blocks/07-orchestration/</guid><description>&lt;h1 id="7-オーケストレーション">7. オーケストレーション&lt;a class="anchor" href="#7-%e3%82%aa%e3%83%bc%e3%82%b1%e3%82%b9%e3%83%88%e3%83%ac%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3">#&lt;/a>&lt;/h1>
&lt;p>ネットワークチームはすべてを正しく行っていた。堅固な信頼できる情報源（SoT）があり、すべての操作に対してテスト済みのPlaybookがあり、それらを実行するための明確なランブックがあった。書類上では、新しいVLANサービスのデプロイは完全に自動化されていた。実際には、半日と特定のエンジニア一人が必要だった。&lt;/p>
&lt;p>そのエンジニアはシーケンスを知っていた。まず、SoTデータが完全であることを検証する。次に事前チェックPlaybookを実行する。次に出力を確認し、失敗したデバイスを探し、続行するかどうかを決める。次にデプロイメントPlaybookをトリガーする。次に待つ。次に検証Playbookを実行する。次にServiceNowチケットを手動で更新する。途中でデバイスが失敗した場合は、他のデバイスが気づく前にロールバックする。彼女はそれをすべて、誰も完全に内面化していない共有ドキュメントのランブックにステップごとに持っていた。&lt;/p>
&lt;p>彼女が休暇に入ると、デプロイメントが止まった。ジュニアエンジニアがシーケンスを試みて順序を間違えると、ネットワークは6時間部分的な状態のままだった。自動化は存在していた。調整は依然として手動だった。&lt;/p>
&lt;p>それがこの章が解決する問題だ。オーケストレーションは、自動化ツールのコレクションを一体として動作するシステムに変えるビルディングブロックだ。他のブロックを調整し、いつ実行するかを決定し、障害を優雅に処理し、すべての決定を追跡し、エンジニアが手でフローを管理しながら中間に立つことなくこれらすべてを行う。&lt;/p>
&lt;h2 id="71-基礎">7.1. 基礎&lt;a class="anchor" href="#71-%e5%9f%ba%e7%a4%8e">#&lt;/a>&lt;/h2>
&lt;h3 id="711-コンテキスト">7.1.1. コンテキスト&lt;a class="anchor" href="#711-%e3%82%b3%e3%83%b3%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88">#&lt;/a>&lt;/h3>
&lt;p>これまでカバーしてきたすべてのビルディングブロックはそれぞれ1つのことを得意とする。SoTはインテントを保持する。Executorはそれを適用する。コレクターは状態を取得する。オブザーバビリティはその状態を理解する。それぞれは専門家であり、専門家にはコネクターが必要だ: 各ブロックがいつ行動すべきかを決め、結果をどう処理するかを決め、何かがうまくいかないときにどう回復するかを決めるもの。&lt;/p>
&lt;p>そのコネクターが&lt;a href="https://designingnetworkautomation.com/ja/glossary/#orchestrator" class="glossary-term" title="An architectural component that coordinates and executes automation tasks in response to events, managing workflows and task sequencing across the automation system.">Orchestrator&lt;/a>だ。&lt;/p>
&lt;p>&lt;a href="../../part1-rethinking-networking-with-automation/03-architectural-thinking/">第3章&lt;/a>では、他のすべてを調整するブロックとしてNAFフレームワークの中心に置いた。&lt;a href="../../part2-architectural-building-blocks/05-execution/">第5章&lt;/a>はExecutorが設定変更をどう適用するかを示した。&lt;a href="../../part2-architectural-building-blocks/06-observability/">第6章&lt;/a>はオブザーバビリティが結果をどう検証するかを示した。本章ではオーケストレーターが両方をどう順序付けし、その間で起こりうるすべての問題をどう処理するかを示す。&lt;/p>
&lt;p>オーケストレーションなしには、自動化を実行していない。誰かが正しい順序で、正しいタイミングで、正しい方法で解釈して呼び出さなければならないスクリプトを実行しているだけだ。それは名ばかりの自動化だ。&lt;/p>
&lt;h3 id="712-ゴール">7.1.2. ゴール&lt;a class="anchor" href="#712-%e3%82%b4%e3%83%bc%e3%83%ab">#&lt;/a>&lt;/h3>
&lt;p>オーケストレーターは5つのゴールを達成する必要がある:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>マルチブロックワークフローをエンドツーエンドで調整する。&lt;/strong> デプロイメントは単一のアクションではなく、シーケンスだ。SoTのインテントを検証し、事前チェックを実行し、設定を実行し、結果を検証し、ステークホルダーに通知する。オーケストレーターがフルシーケンスをまとめて保持する。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>人間の開始の有無にかかわらず、自動的にイベントに反応する。&lt;/strong> ServiceNowの承認、オブザーバビリティのアラート、スケジュールされたコンプライアンスのスキャン: これらはすべて人間が手動で開始しなくてもワークフローをトリガーできる必要がある。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>耐障害性とスケーラブルな実行。&lt;/strong> 800のスイッチを並列で操作するワークフローは確実に完了しなければならない。再起動を生き延びなければならない。成功したデバイスの作業を失うことなく部分的な障害を処理しなければならない。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>改ざん防止の可視性を提供する。&lt;/strong> オペレーターは今何が実行されているかを見る必要がある。監査員は先月何が実行されたか、誰がトリガーしたか、どのバージョンのワークフローが実行されたか、すべてのステップが何を生成したかを見る必要がある。両方のニーズが同じシステムから満たされなければならない。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>ワークフロー定義を本番ソフトウェアとして管理する。&lt;/strong> 800のスイッチにデプロイするワークフローは不用意に変更できない。ロジック自体が、本番で動作する他のコードに適用されるのと同じ規律で永続化、バージョン管理、テスト、本番へのプロモーションが必要だ。&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="713-柱">7.1.3. 柱&lt;a class="anchor" href="#713-%e6%9f%b1">#&lt;/a>&lt;/h3>
&lt;p>5つの柱がこれらのゴールを支える:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>ワークフローエンジン&lt;/strong>: 多段階プロセスの定義、実行、追跡&lt;/li>
&lt;li>&lt;strong>トリガーレイヤー&lt;/strong>: 手動、スケジュール、イベント駆動、Webhook&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;/ol>
&lt;h3 id="714-スコープ">7.1.4. スコープ&lt;a class="anchor" href="#714-%e3%82%b9%e3%82%b3%e3%83%bc%e3%83%97">#&lt;/a>&lt;/h3>
&lt;p>オーケストレーターは調整する。行動しない。&lt;/p>
&lt;p>スコープ内:&lt;/p>
&lt;ul>
&lt;li>他のビルディングブロックの調整&lt;/li>
&lt;li>ワークフローロジックとステップ依存関係の定義&lt;/li>
&lt;li>複数のソースからのトリガー処理&lt;/li>
&lt;li>実行状態の追跡と監査証跡の生成&lt;/li>
&lt;li>ステップが失敗したときのロールバック決定の管理&lt;/li>
&lt;/ul>
&lt;p>スコープ外:&lt;/p></description></item><item><title>08 - プレゼンテーション</title><link>https://designingnetworkautomation.com/ja/series/part2-architectural-building-blocks/08-presentation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part2-architectural-building-blocks/08-presentation/</guid><description>&lt;h1 id="8-プレゼンテーションレイヤー">8. プレゼンテーションレイヤー&lt;a class="anchor" href="#8-%e3%83%97%e3%83%ac%e3%82%bc%e3%83%b3%e3%83%86%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%83%ac%e3%82%a4%e3%83%a4%e3%83%bc">#&lt;/a>&lt;/h1>
&lt;p>VLAN自動化は6週間稼働していた。ネットワークチームはそれを誇りにしていた。毎朝、アプリケーションチームから3〜4件の新しいサービスリクエストが届き、ネットワークチームの誰もキーボードに触れることなくオーケストレーターが処理した。デプロイメントは機能した。スイッチは設定された。ネットワークは健全だった。&lt;/p>
&lt;p>エスカレーションは木曜日に届いた。アプリケーションチームのリードが、ポータルで「提出済み」と表示されているのにVLANリクエストが3〜5営業日かかる理由を尋ねていた。ネットワークチームはキューを確認した: 保留中のリクエストはゼロで、すべてのデプロイメントは成功していた。自動化は受信から20分以内にすべてのリクエストを処理していた。しかし、ServiceNowチケットはまだ「進行中」と表示されていた。チケットを更新する統合を誰も書いていなかったからだ。&lt;/p>
&lt;p>自動化は仕事をしていた。結果が見えなかっただけだ。&lt;/p>
&lt;p>1週間後、チームはアプリケーションチームがリクエストを直接提出してステータスを確認できるクイックなセルフサービスポータルをデプロイした。正午までに1時間で47件のVLANリクエストを受け取った。すべて有効だった。すべて正しくフォーマットされていた。問題は、ポータルに認証モデルがなかったことだ。URLを持っている誰からでも提出を受け付けた。すべてのリクエストはプラットフォーム全体の管理者権限を持つ単一のAPIトークン下で実行された。レート制限もなく、承認ゲートもなく、誰が何を提出したかの監査証跡もなかった。&lt;/p>
&lt;p>自動化は機能した。アクセスモデルが機能しなかった。&lt;/p>
&lt;p>これら2つの失敗はどちらもプレゼンテーションの失敗だ。1つはフィードバックループの欠如で、もう1つはガードレールの欠如だ。本章はそのギャップを埋める。&lt;/p>
&lt;h2 id="81-基礎">8.1. 基礎&lt;a class="anchor" href="#81-%e5%9f%ba%e7%a4%8e">#&lt;/a>&lt;/h2>
&lt;h3 id="811-コンテキスト">8.1.1. コンテキスト&lt;a class="anchor" href="#811-%e3%82%b3%e3%83%b3%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88">#&lt;/a>&lt;/h3>
&lt;p>これまでカバーしてきたすべてのビルディングブロックは内側を向いている: 他のブロックに向けて、またはプラットフォームを構築して運用するエンジニアに向けて。&lt;a href="https://designingnetworkautomation.com/ja/glossary/#source_of_truth" class="glossary-term" title="An authoritative, centralized system holding the intended state of the network, used as the single reference point for automation decisions.">Source of Truth (SoT)&lt;/a>は自動化システムのためにネットワークインテントを保持する。ExecutorはデバイスにChangesを適用する。&lt;a href="https://designingnetworkautomation.com/ja/glossary/#observability" class="glossary-term" title="The ability to measure and understand a system&amp;#39;s internal state through its external outputs. Includes logging, metrics, and tracing to detect failures and optimize automation behavior.">Observability&lt;/a>は結果を検証する。&lt;a href="https://designingnetworkautomation.com/ja/glossary/#orchestrator" class="glossary-term" title="An architectural component that coordinates and executes automation tasks in response to events, managing workflows and task sequencing across the automation system.">Orchestrator&lt;/a>はそれらすべてを調整する。これらのブロックそれぞれにUIとAPIまたはその両方があり、プラットフォームを構築して運用する人々のために設計されており、それとやり取りする必要があるすべての人のためではない。&lt;/p></description></item><item><title>09 - ネットワーク</title><link>https://designingnetworkautomation.com/ja/series/part2-architectural-building-blocks/09-the-network/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part2-architectural-building-blocks/09-the-network/</guid><description>&lt;h1 id="9-ネットワーク">9. ネットワーク&lt;a class="anchor" href="#9-%e3%83%8d%e3%83%83%e3%83%88%e3%83%af%e3%83%bc%e3%82%af">#&lt;/a>&lt;/h1>
&lt;p>VLANの自動化はラボで3週間稼働していた。3台のスイッチ、ベンダーごとに1台ずつ、すべてのワークフローが通過した。チームは自信を持っていた。最初の本番実行で、800台のキャンパススイッチのうち23台が失敗した。すべてHPEだった。すべて、誰もドキュメント化していなかったファームウェアバージョンを実行していた。&lt;/p>
&lt;p>PlaybookはVLAN設定をプッシュした後、各デバイスからのエラーレスポンスを確認していた。モダンなHPEファームウェアでは、すでに存在するVLANはエラーコード&lt;code>duplicate-vlan&lt;/code>を返す。この古いファームウェアバージョンでは、同じ条件が&lt;code>vlan-exists&lt;/code>を返した。Playbookは&lt;code>duplicate-vlan&lt;/code>をべき等シグナルとして扱うように書かれていた。つまり「これはすでに存在している、問題ない」という意味だ。&lt;code>vlan-exists&lt;/code>を処理するようには書かれていなかったので、そのレスポンスを失敗として扱った。HPEフリートの3分の1が失敗を報告した。ロールバックはクリーンに実行された。ネットワークチームが実際に設定されたスイッチとそうでないスイッチを手動で監査する間、アプリケーションチームのチケットはさらに3時間オープンのままだった。&lt;/p>
&lt;p>自動化は間違っていなかった。ネットワークに、誰もドキュメント化していなかった意見があったのだ。&lt;/p>
&lt;p>6ヶ月後、同じチームはBuilding Bを反映したcontainerlabトポロジーを持っていた: 24台のスイッチ、一致するベンダーイメージ、HPEノードは&lt;a href="https://designingnetworkautomation.com/ja/glossary/#source_of_truth" class="glossary-term" title="An authoritative, centralized system holding the intended state of the network, used as the single reference point for automation decisions.">Source of Truth (SoT)&lt;/a>に記録された本番ファームウェアバージョンにロックされていた。そのトポロジーに対するVLANワークフローの最初のテスト実行で、8台のHPEノードがまさにそのエラーコードで失敗した。チームはHPEアダプターのべき等レスポンスのリストに&lt;code>vlan-exists&lt;/code>を追加した。再実行: 24台のノードすべてが通過した。本番デプロイメント: 800台のスイッチ、ゼロの失敗。&lt;/p>
&lt;p>違いは良いコードではなかった。現実を反映したテスト環境だった。&lt;/p>
&lt;p>本章ではパート2を通じて常に暗黙的だったブロックを扱う: ネットワーク自体だ。これまで構築してきたすべてのビルディングブロックは自動化チームによって設計され、ドキュメント化されたインターフェースに従って動作する。ネットワークは受け継いだものだ。それには癖があり、多様なインターフェースがあり、ファームウェアの不整合があり、ベンダー、プラットフォーム、ソフトウェアの世代によって異なる機能がある。第9章は2つの問いを扱う: 自動化を確実にするためにネットワークに何が必要か、そして本番に触れる前に自動化ロジックをどう安全に検証するか？&lt;/p>
&lt;h2 id="91-基礎">9.1. 基礎&lt;a class="anchor" href="#91-%e5%9f%ba%e7%a4%8e">#&lt;/a>&lt;/h2>
&lt;h3 id="911-コンテキスト">9.1.1. コンテキスト&lt;a class="anchor" href="#911-%e3%82%b3%e3%83%b3%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88">#&lt;/a>&lt;/h3>
&lt;p>&lt;a href="../../part1-rethinking-networking-with-automation/03-architectural-thinking/">第3章&lt;/a>では、&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>の7つのブロックの1つとしてネットワークを導入した: 自動化チームが「所有」しない唯一のブロック（ネットワークエンジニアリングのスコープにある）。彼らはそれを設定し、観察し、そのインテントをモデル化するが、オペレーティングシステム、データモデル、またはAPIインターフェースは構築しなかった。その依存関係は、その上のプラットフォームのすべての設計決定を形作る。&lt;/p></description></item><item><title>10 - プラットフォームエンジニアリングとCI/CD</title><link>https://designingnetworkautomation.com/ja/series/part3-designing-for-scale-and-reliability/10-platform-engineering/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part3-designing-for-scale-and-reliability/10-platform-engineering/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>&lt;strong>翻訳作業中。&lt;/strong> このチャプターはまだ日本語に翻訳されていません。 &lt;a href="../../../../en/series/part3-designing-for-scale-and-reliability/10-platform-engineering">英語版をご参照ください&lt;/a>.





&lt;p class="chapter-feedback" style="margin-top:2em; font-size:0.9em;">
 💬 Found something to improve?
 &lt;a href="mailto:chadell&amp;#43;designing@gmail.com?subject=%255BBook%2bFeedback%255D%2b10%2b-%2b%25E3%2583%2597%25E3%2583%25A9%25E3%2583%2583%25E3%2583%2588%25E3%2583%2595%25E3%2582%25A9%25E3%2583%25BC%25E3%2583%25A0%25E3%2582%25A8%25E3%2583%25B3%25E3%2582%25B8%25E3%2583%258B%25E3%2582%25A2%25E3%2583%25AA%25E3%2583%25B3%25E3%2582%25B0%25E3%2581%25A8CI%252FCD&amp;body=What%20did%20you%20find%20useful%3f%250AWhat%20was%20unclear%3f%250AAny%20suggestions%3f">
 Send feedback for this chapter
 &lt;/a>
&lt;/p>&lt;/p>&lt;/blockquote></description></item><item><title>11 - スケールと信頼性</title><link>https://designingnetworkautomation.com/ja/series/part3-designing-for-scale-and-reliability/11-scaling-and-reliability/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part3-designing-for-scale-and-reliability/11-scaling-and-reliability/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>&lt;strong>翻訳作業中。&lt;/strong> このチャプターはまだ日本語に翻訳されていません。 &lt;a href="../../../../en/series/part3-designing-for-scale-and-reliability/11-scaling-and-reliability">英語版をご参照ください&lt;/a>.





&lt;p class="chapter-feedback" style="margin-top:2em; font-size:0.9em;">
 💬 Found something to improve?
 &lt;a href="mailto:chadell&amp;#43;designing@gmail.com?subject=%255BBook%2bFeedback%255D%2b11%2b-%2b%25E3%2582%25B9%25E3%2582%25B1%25E3%2583%25BC%25E3%2583%25AB%25E3%2581%25A8%25E4%25BF%25A1%25E9%25A0%25BC%25E6%2580%25A7&amp;body=What%20did%20you%20find%20useful%3f%250AWhat%20was%20unclear%3f%250AAny%20suggestions%3f">
 Send feedback for this chapter
 &lt;/a>
&lt;/p>&lt;/p>&lt;/blockquote></description></item><item><title>12 - セキュリティ、ガバナンス、コンプライアンス</title><link>https://designingnetworkautomation.com/ja/series/part3-designing-for-scale-and-reliability/12-security-and-compliance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part3-designing-for-scale-and-reliability/12-security-and-compliance/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>&lt;strong>翻訳作業中。&lt;/strong> このチャプターはまだ日本語に翻訳されていません。 &lt;a href="../../../../en/series/part3-designing-for-scale-and-reliability/12-security-and-compliance">英語版をご参照ください&lt;/a>.





&lt;p class="chapter-feedback" style="margin-top:2em; font-size:0.9em;">
 💬 Found something to improve?
 &lt;a href="mailto:chadell&amp;#43;designing@gmail.com?subject=%255BBook%2bFeedback%255D%2b12%2b-%2b%25E3%2582%25BB%25E3%2582%25AD%25E3%2583%25A5%25E3%2583%25AA%25E3%2583%2586%25E3%2582%25A3%25E3%2580%2581%25E3%2582%25AC%25E3%2583%2590%25E3%2583%258A%25E3%2583%25B3%25E3%2582%25B9%25E3%2580%2581%25E3%2582%25B3%25E3%2583%25B3%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25A4%25E3%2582%25A2%25E3%2583%25B3%25E3%2582%25B9&amp;body=What%20did%20you%20find%20useful%3f%250AWhat%20was%20unclear%3f%250AAny%20suggestions%3f">
 Send feedback for this chapter
 &lt;/a>
&lt;/p>&lt;/p>&lt;/blockquote></description></item><item><title>13 - 文化的変革</title><link>https://designingnetworkautomation.com/ja/series/part4-human-and-organizational-dimension/13-cultural-shift/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part4-human-and-organizational-dimension/13-cultural-shift/</guid><description>&lt;h1 id="13-文化的変革">13. 文化的変革&lt;a class="anchor" href="#13-%e6%96%87%e5%8c%96%e7%9a%84%e5%a4%89%e9%9d%a9">#&lt;/a>&lt;/h1>
&lt;p>会議の招待メールが木曜日に届いた。件名は「ネットワークチーム体制の更新」だった。ジョルディはネットワークエンジニアとして15年のキャリアを積んでいた。CCIEを取得し、3度の買収、2度のNOC統合、そして社内のケーススタディとなるほど深刻なBGPルーティングインシデントを生き抜いてきた。彼はこれが人員に関する連絡だと思っていた。&lt;/p>
&lt;p>違った。&lt;/p>
&lt;p>マネージャーが説明したのは、ネットワークチームがプラットフォームエンジニアリング部門の下に再編されるということだった。チーム名は「ネットワーク自動化プラットフォーム」に変わる。仕事の内容も変わる。手動プロビジョニングは減り、プロビジョニングを担う自動化システムを構築・運用することが中心になる。新しい職務記述書はすでに書かれていた。タイトルは「ネットワークプラットフォームエンジニア」だった。&lt;/p>
&lt;p>その夜、ジョルディは家に帰って職名を検索した。結果のほとんどはクラウドの求人やコンテナオーケストレーションインフラを指していた。1時間読んで、内容の半分くらいは理解できた。Pythonスクリプトを書いたことはなかった。Gitが実際に何なのか知らなかった。興奮すべきか恐怖を感じるべきか、判断がつかなかった。&lt;/p>
&lt;p>その年の終わりには、ジョルディは2つの自動化ワークフローを本番環境にリリースし、ルーターを一度も設定したことのないソフトウェアエンジニアが書いた数百行のコードをレビューし、チーム初のアーキテクチャ決定記録を書いていた。彼はソフトウェア開発者ではなかった。彼は分類が難しく、もっと価値のある何かになっていた。ネットワークと、それを運用するシステムの両方を理解するエンジニアだ。&lt;/p>
&lt;p>この章はその変革について書かれている。ジョルディ個人の変革だけでなく、組織全体の変革についてだ。第1章から第12章で扱った技術は、それ自体では動かない。ネットワークエンジニアリングが伝統的に育ててきたものとは異なるスキル、役割、協働の仕方を持つ人々が必要だ。技術を正しく実装することは難しい。組織の変革を正しく進めることはさらに難しく、自動化の取り組みが失敗するのも、多くの場合そこにある。&lt;/p>
&lt;h2 id="131-アイデンティティの危機">13.1 アイデンティティの危機&lt;a class="anchor" href="#131-%e3%82%a2%e3%82%a4%e3%83%87%e3%83%b3%e3%83%86%e3%82%a3%e3%83%86%e3%82%a3%e3%81%ae%e5%8d%b1%e6%a9%9f">#&lt;/a>&lt;/h2>
&lt;p>文化的変革で最も難しいのは、Gitを覚えることではない。長年の深い&lt;a href="https://designingnetworkautomation.com/ja/glossary/#cli" class="glossary-term" title="A text-based interface for interacting with systems by typing commands, commonly used for network device configuration and troubleshooting.">Command Line Interface (CLI)&lt;/a>習熟によって築き上げたアイデンティティを手放すことだ。&lt;/p>
&lt;p>ネットワークエンジニアリングは、習得が難しく偽れない専門性を中心に職業文化を形成してきた。障害時のBGP収束の挙動を理解すること。深夜2時にスパニングツリーのトポロジー変更をデバッグすること（そしてスパニングツリーは今でも現役だ）。アプリケーションチームがチケットを起票し終わる前に、パケットキャプチャを読み取ってわずかなMTUの不一致を特定すること。これらは年月をかけて培った高度なスキルであり、強いプロフェッショナルとしてのアイデンティティを生み出してきた。&lt;/p>
&lt;p>自動化はその専門性の表面を揺るがす。よく設計された自動化プラットフォームがVLANプロビジョニング、設定ハードニング、ゼロタッチデバイスオンボーディングを処理するようになると、それらのタスクを手作業のCLIで長年習熟したエンジニアは、矛盾のように感じる選択を迫られる。自動化を使って自分が得意なことを置き換えるか、自分を定義するスキルを守るために自動化に抵抗するかだ。&lt;/p>
&lt;p>これが**クラフツマンのジレンマ (Craftsman&amp;rsquo;s Dilemma)**だ。ある技術に深く習熟しているほど、その技術を隠す抽象化は道具ではなく脅威に感じられる。ベンダー固有のCLIの細部をすべて知っているネットワークエンジニアが抽象化レイヤーに抵抗するのは非合理ではない。完全に合理的な判断だ。専門性を馴染みのないものと交換するよう求められているのだから。&lt;/p>
&lt;p>このジレンマを解く視点の転換がある。自動化は深いネットワーク知識を置き換えない。それを必要とするのだ。違いは、その知識がどこでどのように活かされるかだ。BGP収束を深く理解するエンジニアは、自動化された世界でも劣らない価値を持つ。信頼性の高いBGP閉ループ自動化を設計できる唯一の人物だからだ。スキルは実行から設計へ、コマンドの入力からどのコマンドをどの条件で実行すべきかを定義することへと移る。&lt;/p>
&lt;p>「ネットワークを設定する」から「ネットワークを設定するシステムを構築する」へのこの転換こそ、この章の核心にある文化的変革だ。スキルのギャップではない。認識のギャップだ。&lt;/p>
&lt;pre class="mermaid">
flowchart LR
 classDef legacy fill:#d9e8f5,stroke:#4a7fa5,color:#1a2e3b
 classDef emerging fill:#d9f5e8,stroke:#3a8a5a,color:#1a2e3b

 A[&amp;#34;**ネットワークエンジニア** - 設定を実行する - 深いデバイス専門知識&amp;#34;]
 B[&amp;#34;**ネットワークプラットフォームエンジニア** - 自動化システムを設計する - コードに埋め込まれた専門知識&amp;#34;]

 A --&amp;gt;|&amp;#34;認識の転換&amp;#34;| B

 class A legacy
 class B emerging
&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;p>この移行を成功させるエンジニアは、ソフトウェア開発者になろうと決意した人ではない。特定のベンダーのエッジケースで自動化が失敗し続ける理由を知りたいと思い、症状の裏にあるシステムを理解するまでその問いに向き合い続けた人だ。設定する方法だけでなく、インテントからデバイスへ設定がどのように伝わるか、障害がどう伝播するか、システムがどう回復するかを知りたいという好奇心こそが、この移行を可能にするマインドセットだ。それはまた、自動化以前の優れたネットワークエンジニアを際立たせていたマインドセットでもある。レシピを適用するだけでなく、プロトコルを理解したいと思う人たちのものだ。&lt;/p>
&lt;p>その好奇心の報酬は、個人が手作業で到達できる規模を超えた影響力だ。800台のスイッチを対象に正しく動作する単一の自動化ワークフローは、チームが1週間の手動変更ウィンドウで完了できる以上の仕事を数分でこなす。そのワークフローを構築したエンジニアはそれに置き換えられていない。その人の専門知識が、眠っている間も動き、定型作業を確実にこなし、判断を要する問題のためにエンジニアリングの余力を生み出すシステムに埋め込まれたのだ。手作業のCLI習熟がどれだけ積み上がっても生み出せない、より強力な立場だ。&lt;/p>
&lt;div class="note-box">
 ネットワーク自動化はプロビジョニングを加速するだけではない。それを構築したエンジニアの知識を記録する。10分で書いたBGPセッションチェックには15年の運用経験が込められている。そのチェックは、作者がオンコール中であれ、休暇中であれ、すでに退職していても正しく動作する。自動化はエンジニアを引き留めない。エンジニアが知っていることを引き留める。この違いは、シニアエンジニアがチームを離れるたびに、どれほどの組織の知恵が失われたかを考えるときに重要になる。
&lt;/div>
&lt;p>&lt;a href="../../part1-rethinking-networking-with-automation/01-automation-imperative/">第1章&lt;/a>では、自動化の障壁として変化への恐れと誤ったスキルが挙げられていた。これらの障壁は、マネージャーがチームを再編したからといって消えるわけではない。役割の定義、スキルの育成、そして深いネットワーク専門知識が新しいモデルでより価値があることを組織が示す方法として、意図的な取り組みが必要だ。&lt;/p></description></item><item><title>14 - プロダクトとしての自動化</title><link>https://designingnetworkautomation.com/ja/series/part4-human-and-organizational-dimension/14-automation-as-a-product/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part4-human-and-organizational-dimension/14-automation-as-a-product/</guid><description>&lt;h1 id="14-プロダクトとしての自動化">14. プロダクトとしての自動化&lt;a class="anchor" href="#14-%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%83%88%e3%81%a8%e3%81%97%e3%81%a6%e3%81%ae%e8%87%aa%e5%8b%95%e5%8c%96">#&lt;/a>&lt;/h1>
&lt;p>チームの仕事に対する考え方を変えることになったその会話の6ヶ月前、ネットワークプラットフォームチームは本当に印象的な成果を上げていた。2年間の継続的な努力により、ブランチのオンボーディングをエンドツーエンドで処理するプロビジョニングプラットフォームが完成していた。サイトリクエスト用のセルフサービスインターフェース、デプロイ前に設定ミスを検出するクローズドループ検証ワークフロー、そして300拠点全体のサービス健全性を追跡する運用ダッシュボードが揃っていた。チームは24時間の変更ウィンドウから40分の自動デプロイへと進化させた。彼らはそれを誇りに思っていたし、誇りに思うべきだった。&lt;/p>
&lt;p>そこへ事業開発チームが小売チェーンの買収を完了させた。120の新規店舗が6ヶ月以内にネットワーク接続を必要としていた。インフラ担当リードがシンプルなメールを送ってきた。「この件は自動化プラットフォームを頼りにしている。どうすれば開始できるか？」&lt;/p>
&lt;p>ネットワークプラットフォームチームの最初の内部反応は自信に満ちていた。これは自動化できる。ワークフローがある。テンプレートがある。ツールは実績がある。&lt;/p>
&lt;p>しかし、メールに返信しようとしたときの2回目の反応は自信を欠いていた。インフラ担当リードは自動化が技術的に可能かどうかを聞いているのではなかった。彼らは別の質問をしていた。店舗オンボーディングのSLAとは何か、つまりサイト情報が提出されてから店舗が接続を受けるまでのコミットメントは何か？デプロイが途中で失敗した場合のエスカレーションパスは誰か？インフラ担当リードのチームが、ネットワークチームに直接尋ねることなく監視できるステータスページやダッシュボードはあるか？プラットフォームのキャパシティはどうか、20件の同時デプロイを処理できるか、それともリクエストをバッチ処理する必要があるか？そして最も不快な質問：プラットフォームインシデント中にオンボードされた店舗はどうなるか、自動的に修復されるか、それとも誰かが各店舗を監査する必要があるか？&lt;/p>
&lt;p>ネットワークチームには自動化があった。しかし答え（ビジネス/プロダクトの観点での）がなかった。&lt;/p>
&lt;p>このギャップ、つまり「動く自動化を構築した」と「他のチームが依存して計画を立てられるサービスを提供する」との間の差が、本章のテーマである。&lt;/p>
&lt;blockquote class='book-hint note'>
&lt;p>これは私が情熱を持っているトピックだ。&lt;a href="https://www.youtube.com/watch?v=0sQPqpohEuo">Autocon3で行ったセッション&lt;/a>では、設計主導の自動化の観点からこれを扱っており、本章の補足参考資料となっている。&lt;/p>&lt;/blockquote>&lt;h2 id="141-ケイパビリティからプロダクトへ">14.1 ケイパビリティからプロダクトへ&lt;a class="anchor" href="#141-%e3%82%b1%e3%82%a4%e3%83%91%e3%83%93%e3%83%aa%e3%83%86%e3%82%a3%e3%81%8b%e3%82%89%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%83%88%e3%81%b8">#&lt;/a>&lt;/h2>
&lt;p>&lt;a href="../13-cultural-shift/">第13章&lt;/a>では、チームが自動化を組織的ケイパビリティとして構築するために、人材、役割、仕事の進め方をどのように変革するかを説明した。その変革は必要だ。しかしそれだけでは不十分だ。&lt;/p>
&lt;p>ケイパビリティとはチームができることだ。プロダクトとは、他のチーム（またはいずれはサードパーティのエンティティ）が依存できるものだ。その違いは技術的な品質についてではない。小売チェーンオンボーディングプラットフォームは技術的に優秀だった。違いは、プロバイダーとコンシューマーの関係にある。ケイパビリティはその作者のために存在する。プロダクトはそのユーザーのために存在する。&lt;/p>
&lt;p>ネットワークチームのアウトプットは変化した。自動化以前のアウトプットはデバイス設定だった。プロビジョニングされたルーター、拡張されたVLAN、適用されたACL。そのアウトプットのコンシューマーはデバイス自身であり、成功の証拠はpingが通ることや、アプリケーションが動作することだった。自動化によってアウトプットは変わる。ネットワークチームのプロダクトは、他のチームが消費するネットワークサービスになる。ネットワークとのすべてのインタラクション、ブランチサイトのプロビジョニング、新しいアプリケーション向けのセグメント拡張、セキュリティポリシーの適用、VLANへの会議用アクセスの一時付与、インターネットエクスチェンジでのピアリング接続の追加、これらはすべて変更チケットではなくサービスリクエストになる。デバイス設定は実装の詳細だ。サービスがアーティファクトだ。&lt;/p>
&lt;p>これが**ネットワークサービスをプロダクトとして (Network Service as Product)**パターンだ。サービスがプライマリのアーティファクトであり、下層のネットワークは実装だ。これはソフトウェアエンジニアリングでは新しくない。APIはインフラを抽象化し、呼び出し元はどのサーバーがリクエストを処理するかを知らないし、気にしない。しかし、これは歴史的にデバイス、ベンダー、プロトコルを中心に仕事を整理してきたネットワークチームにとっては大きな転換だ。ルーター設定スキルにアイデンティティを定義してきたエンジニアが、今やサービスデリバリーケイパビリティにアイデンティティを定義するよう求められている。このリフレームは&lt;a href="../13-cultural-shift/">第13章 セクション13.1&lt;/a>の職人のジレンマに直結する。古いクラフトの専門家こそが、最も急いでリフレームを行う必要がある人物であり、それを完全に実行するエンジニアはより価値が下がるのではなく、より価値が上がる。&lt;/p>
&lt;p>このプロダクトの技術的な拠点は、&lt;a href="../../part2-architectural-building-blocks/08-presentation/">第8章&lt;/a>で説明したプレゼンテーションブロックだ。セルフサービスインターフェース、APIサーフェス、Webhook統合、ロールベースのアクセスモデル、これらはサービス契約がコンシューマーに見える場所だ。第14章では、技術的なインターフェースを超えて、それを取り巻く組織的・ビジネスモデルにズームアウトする。インターフェースにはどんなコミットメントが伴うか？壊れたときは誰が所有するか？サービスはどのように進化するか？次に何をするかは誰が決めるか？&lt;/p>
&lt;h2 id="142-プロダクトの定義">14.2 プロダクトの定義&lt;a class="anchor" href="#142-%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%83%88%e3%81%ae%e5%ae%9a%e7%be%a9">#&lt;/a>&lt;/h2>
&lt;p>ネットワーク自動化をサービスに変えようとするチームに一貫して現れる2つの失敗モードがある。&lt;/p>
&lt;p>1つ目は過剰露出だ。インターフェースが実装の詳細を露出させ、コンシューマーがそれを使うためにネットワークの内部を理解しなければならない。VLAN ID、サブネットマスク、OSPFエリア番号を要求するブランチプロビジョニングサービスはサービスではない。ウェブフォームを持つCLIだ。小売チェーンの設備コーディネーターは、OSPFエリアが何であるかを知らないし、知る必要もない。&lt;/p>
&lt;p>2つ目は過剰制限だ。インターフェースがネットワークチームが想定した正確なユースケースしか処理できないほど制約されている。テンプレートから逸脱したリクエストには例外プロセスが必要だ。恒久的な小売拠点とは異なる接続要件を持つ期間限定のポップアップストアをプロビジョニングする必要がある設備コーディネーターは、セルフサービスできない。チケットを提出する。チケットはネットワークチームに届く。自動化のメリットがそのコンシューマーに届いていない。&lt;/p>
&lt;p>**サービス契約パターン (Service Contract Pattern)**は、インターフェース定義を明示的、バージョン管理済み、意図的に境界設定することで、両方の失敗モードを解決する。サービス契約には3つのコンポーネントがある。&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>インプットサーフェス&lt;/strong>: コンシューマーが提供するもの。ネットワーク用語ではなくビジネス用語で表現される（申し訳ないが、これは重要なことだ）。ブランチサイトリクエストは、ロケーション名、物理的な住所、サイト階層（標準、スモール、ポップアップ）、および有効化日を受け取る。VLAN IDは受け取らない。この契約はビジネスの意図をネットワークの実装に内部で変換し、その変換が自動化プラットフォームの責任だ。階層の定義は永続的ではない。一時的な小売キオスク向けに定義されたポップアップ階層は、異なる接続要件を持つポップアップイベントスペースには対応しない。インプットサーフェスは、コンシューマーチームと同じケイデンスでロードマップとともにレビューされなければならない。そうすることで、階層が最初に契約が書かれたときにネットワークチームが想定したユースケースではなく、実際のユースケースを反映するようになる。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>アウトプットサーフェス&lt;/strong>: コンシューマーが観察するもの。成功した完了と失敗の両方を含む。適切に設計されたアウトプットサーフェスは「ステップ14のうち7番目でデプロイ失敗：gNMIプッシュがエラーコード400で拒否されました」を露出させない。「有効化失敗：このアドレスの物理回線がまだキャリアによってプロビジョニングされていません。予想完了日：[SoTからの日付]。あなた側のアクションは不要です。回線がオンラインになったときにシステムが自動的に再試行します」を露出させる。自動化は単に成功や失敗するだけでなく、コンシューマーが理解できる用語でオブザーバブルなライフサイクルイベントを発行する。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>内部依存関係&lt;/strong>: サービスが内部で追跡するもの。コンシューマーには見せないが、チームは管理しなければならない。キャリアからの回線状態。このサービスとインフラを共有している隣接サービス。新しいサイトのSoTレコードと自動監視を駆動するインベントリレコードとの整合関係。回線がキャリアメンテナンスに入ったとき、ネットワークチームはどのサービスが影響を受けるか、それがどんなSLO露出を生み出すかを知る必要がある。コンシューマーはサービスへの影響を知る必要があるかもしれないが、それを引き起こした実装の詳細を知る必要はない。&lt;/p>
&lt;/li>
&lt;/ul>
&lt;pre class="mermaid">
flowchart LR
 classDef consumer fill:#d9e8f5,stroke:#4a7fa5,color:#1a2e3b
 classDef contract fill:#f5e8d9,stroke:#a57a4a,color:#1a2e3b
 classDef internal fill:#d9f5e8,stroke:#3a8a5a,color:#1a2e3b

 subgraph Consumer[&amp;#34;コンシューマーインターフェース&amp;#34;]
 IN[&amp;#34;インプットサーフェス&amp;lt;br/&amp;gt;ロケーション、階層、日付&amp;lt;br/&amp;gt;ビジネスの意図&amp;#34;]
 OUT[&amp;#34;アウトプットサーフェス&amp;lt;br/&amp;gt;ステータス、ライフサイクルイベント&amp;lt;br/&amp;gt;ビジネス言語&amp;#34;]
 end

 subgraph Contract[&amp;#34;サービス契約&amp;#34;]
 TRANS[&amp;#34;変換レイヤー&amp;lt;br/&amp;gt;意図から実装へ&amp;lt;br/&amp;gt;VLAN、サブネット、OSPFエリア&amp;#34;]
 end

 subgraph Internal[&amp;#34;内部依存関係&amp;#34;]
 CIRC[&amp;#34;回線状態&amp;#34;]
 SOT[&amp;#34;SoT整合性&amp;#34;]
 NEIGHBOR[&amp;#34;隣接サービス&amp;#34;]
 end

 IN --&amp;gt; TRANS
 TRANS --&amp;gt; OUT
 TRANS --&amp;gt; CIRC &amp;amp; SOT &amp;amp; NEIGHBOR
 CIRC &amp;amp; SOT &amp;amp; NEIGHBOR -.-&amp;gt; OUT

 class IN,OUT consumer
 class TRANS contract
 class CIRC,SOT,NEIGHBOR internal
&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;p>サービス契約が定義されたら、次の問いはそれが時間とともにどうなるかだ。&lt;/p></description></item><item><title>15 - 閉ループ自動化</title><link>https://designingnetworkautomation.com/ja/series/part5-patterns-and-use-cases/15-closed-loop-automation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part5-patterns-and-use-cases/15-closed-loop-automation/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>&lt;strong>翻訳作業中。&lt;/strong> このチャプターはまだ日本語に翻訳されていません。 &lt;a href="../../../../en/series/part5-patterns-and-use-cases/15-closed-loop-automation">英語版をご参照ください&lt;/a>.





&lt;p class="chapter-feedback" style="margin-top:2em; font-size:0.9em;">
 💬 Found something to improve?
 &lt;a href="mailto:chadell&amp;#43;designing@gmail.com?subject=%255BBook%2bFeedback%255D%2b15%2b-%2b%25E9%2596%2589%25E3%2583%25AB%25E3%2583%25BC%25E3%2583%2597%25E8%2587%25AA%25E5%258B%2595%25E5%258C%2596&amp;body=What%20did%20you%20find%20useful%3f%250AWhat%20was%20unclear%3f%250AAny%20suggestions%3f">
 Send feedback for this chapter
 &lt;/a>
&lt;/p>&lt;/p>&lt;/blockquote></description></item><item><title>16 - 自己修復ネットワーク</title><link>https://designingnetworkautomation.com/ja/series/part5-patterns-and-use-cases/16-self-healing-networks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part5-patterns-and-use-cases/16-self-healing-networks/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>&lt;strong>翻訳作業中。&lt;/strong> このチャプターはまだ日本語に翻訳されていません。 &lt;a href="../../../../en/series/part5-patterns-and-use-cases/16-self-healing-networks">英語版をご参照ください&lt;/a>.





&lt;p class="chapter-feedback" style="margin-top:2em; font-size:0.9em;">
 💬 Found something to improve?
 &lt;a href="mailto:chadell&amp;#43;designing@gmail.com?subject=%255BBook%2bFeedback%255D%2b16%2b-%2b%25E8%2587%25AA%25E5%25B7%25B1%25E4%25BF%25AE%25E5%25BE%25A9%25E3%2583%258D%25E3%2583%2583%25E3%2583%2588%25E3%2583%25AF%25E3%2583%25BC%25E3%2582%25AF&amp;body=What%20did%20you%20find%20useful%3f%250AWhat%20was%20unclear%3f%250AAny%20suggestions%3f">
 Send feedback for this chapter
 &lt;/a>
&lt;/p>&lt;/p>&lt;/blockquote></description></item><item><title>17 - 自律ネットワーク</title><link>https://designingnetworkautomation.com/ja/series/part5-patterns-and-use-cases/17-autonomous-networks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/series/part5-patterns-and-use-cases/17-autonomous-networks/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>&lt;strong>翻訳作業中。&lt;/strong> このチャプターはまだ日本語に翻訳されていません。 &lt;a href="../../../../en/series/part5-patterns-and-use-cases/17-autonomous-networks">英語版をご参照ください&lt;/a>.





&lt;p class="chapter-feedback" style="margin-top:2em; font-size:0.9em;">
 💬 Found something to improve?
 &lt;a href="mailto:chadell&amp;#43;designing@gmail.com?subject=%255BBook%2bFeedback%255D%2b17%2b-%2b%25E8%2587%25AA%25E5%25BE%258B%25E3%2583%258D%25E3%2583%2583%25E3%2583%2588%25E3%2583%25AF%25E3%2583%25BC%25E3%2582%25AF&amp;body=What%20did%20you%20find%20useful%3f%250AWhat%20was%20unclear%3f%250AAny%20suggestions%3f">
 Send feedback for this chapter
 &lt;/a>
&lt;/p>&lt;/p>&lt;/blockquote></description></item><item><title>著者について</title><link>https://designingnetworkautomation.com/ja/about/</link><pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/about/</guid><description>&lt;h1 id="christian-adell-について">Christian Adell について&lt;a class="anchor" href="#christian-adell-%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6">#&lt;/a>&lt;/h1>
&lt;p>&lt;img src="https://avatars.githubusercontent.com/u/15998111?s=150&amp;amp;v=4" alt="Christian Adell" />&lt;/p>
&lt;p>&lt;strong>CoreWeave スタッフ ネットワーク デベロッパー&lt;/strong> | &lt;strong>スペイン、バルセロナ&lt;/strong>&lt;/p>
&lt;p>Christian Adell は、ネットワーク自動化に応用されたソフトウェア開発を中心にキャリアを築いてきました。大規模なネットワーク自動化ソリューションの設計・実装において豊富な経験を持ちます。&lt;/p>
&lt;h2 id="-連絡先">📞 連絡先&lt;a class="anchor" href="#-%e9%80%a3%e7%b5%a1%e5%85%88">#&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>GitHub&lt;/strong>: &lt;a href="https://github.com/chadell">chadell&lt;/a>&lt;/li>
&lt;li>&lt;strong>LinkedIn&lt;/strong>: &lt;a href="https://www.linkedin.com/in/christianadell/">christianadell&lt;/a>&lt;/li>
&lt;li>&lt;strong>Twitter&lt;/strong>: &lt;a href="https://twitter.com/chadell0">@chadell0&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="-出版書籍">📖 出版書籍&lt;a class="anchor" href="#-%e5%87%ba%e7%89%88%e6%9b%b8%e7%b1%8d">#&lt;/a>&lt;/h2>
&lt;p>Christian は、ネットワーク自動化に関する複数の影響力ある書籍の著者・共著者です：&lt;/p>
&lt;div style="display: flex; flex-wrap: wrap; gap: 2rem; align-items: flex-start; margin-bottom: 1.5rem;">
&lt;div style="max-width: 150px; text-align: center;">
&lt;a href="https://learning.oreilly.com/library/view/network-programmability-and/9781098110826/" target="_blank">
&lt;img src="https://learning.oreilly.com/library/cover/9781098110826/250w/" alt="Network Programmability and Automation, 2nd Edition" style="width: 100%; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
&lt;br>&lt;strong>Network Programmability and Automation, 第2版&lt;/strong>
&lt;/a>
&lt;/div>
&lt;div style="max-width: 150px; text-align: center;">
&lt;a href="https://www.packtpub.com/en-us/product/network-automation-with-nautobot-9781837634514" target="_blank">
&lt;img src="https://content.packt.com/_/image/original/B19544/cover_image.jpg" alt="Network Automation with Nautobot" style="width: 100%; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
&lt;br>&lt;strong>Network Automation with Nautobot&lt;/strong>
&lt;/a>
&lt;/div>
&lt;div style="max-width: 150px; text-align: center;">
&lt;a href="https://www.packtpub.com/en-us/product/modern-network-observability-9781835083178" target="_blank">
&lt;img src="https://content.packt.com/_/image/original/B21159/cover_image.jpg?version=1740116743" alt="Modern Network Observability" style="width: 100%; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
&lt;br>&lt;strong>Modern Network Observability&lt;/strong>
&lt;/a>
&lt;/div>
&lt;div style="max-width: 150px; text-align: center;">
&lt;a href="https://www.packtpub.com/en-us/product/network-automation-cookbook-9781835887998" target="_blank">
&lt;img src="https://content.packt.com/_/image/original/B22349/cover_image.jpg?version=1758177925" alt="Network Automation Cookbook, 2nd Edition" style="width: 100%; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
&lt;br>&lt;strong>Network Automation Cookbook, 第2版&lt;/strong>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;h2 id="-講演コミュニティ活動">🎤 講演・コミュニティ活動&lt;a class="anchor" href="#-%e8%ac%9b%e6%bc%94%e3%82%b3%e3%83%9f%e3%83%a5%e3%83%8b%e3%83%86%e3%82%a3%e6%b4%bb%e5%8b%95">#&lt;/a>&lt;/h2>
&lt;p>Christian は主要なネットワーキング会議やコミュニティイベントで積極的に講演を行っています：&lt;/p></description></item><item><title>法的事項</title><link>https://designingnetworkautomation.com/ja/legal/</link><pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/ja/legal/</guid><description>&lt;h1 id="法的事項">法的事項&lt;a class="anchor" href="#%e6%b3%95%e7%9a%84%e4%ba%8b%e9%a0%85">#&lt;/a>&lt;/h1>
&lt;h3 id="著作権表示">著作権表示&lt;a class="anchor" href="#%e8%91%97%e4%bd%9c%e6%a8%a9%e8%a1%a8%e7%a4%ba">#&lt;/a>&lt;/h3>
&lt;p>© 2026 Christian Adell Querol。無断転載を禁じます。&lt;/p>
&lt;p>本サイトのコンテンツ（テキスト、図、例を含む）は、著者の知的財産であり、&lt;a href="https://creativecommons.org/licenses/by-nc-nd/4.0/">クリエイティブ・コモンズ 表示-非営利-改変禁止 4.0 国際ライセンス (CC BY-NC-ND 4.0)&lt;/a> のもとで提供されています。&lt;/p>
&lt;p>&lt;strong>以下のことが自由にできます&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>共有&lt;/strong> — 適切なクレジットを表示した上で、あらゆる媒体・形式で素材を複製・再配布すること&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>以下の条件に従う必要があります：&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>表示&lt;/strong> — Christian Adell Querol のクレジットを適切に表示し、ライセンスへのリンクを提供し、変更を加えた場合はその旨を示すこと。&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;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>本ライセンスの範囲を超える許可については、chadell&lt;at>gmail&lt;dot>com までご連絡ください。&lt;/p>
&lt;h3 id="謝辞">謝辞&lt;a class="anchor" href="#%e8%ac%9d%e8%be%9e">#&lt;/a>&lt;/h3>
&lt;p>本書は、惜しみなく時間と専門知識を提供してくださった多くの方々の貢献によって豊かになっています。&lt;/p>
&lt;p>&lt;strong>レビュー&lt;/strong>&lt;/p>
&lt;p>（準備中）&lt;/p>
&lt;p>&lt;strong>翻訳&lt;/strong>&lt;/p>
&lt;p>本書は複数の言語で提供されています。すべての翻訳は、AI 支援ツールを使用して初稿を作成し、その後、ネットワークエンジニアリングの知識を持つ母語話者の協力者によって校閲されました。彼らの作業により、技術的な内容の正確性と、各読者にとって自然な言語表現が確保されています。&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>言語&lt;/th>
 &lt;th>校閲者&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Español&lt;/td>
 &lt;td>Christian Adell&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Русский&lt;/td>
 &lt;td>Artem Kovalchuk, Mikhail Garin&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Català&lt;/td>
 &lt;td>Christian Adell&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Français&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>中文&lt;/td>
 &lt;td>Yujia Gao, Lancheng&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Deutsch&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Português&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Italiano&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>日本語&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>한국어&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>العربية&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>हिंदी&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Ελληνικά&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>翻訳のレビューや修正に貢献したい方は、chadell&lt;at>gmail&lt;dot>com までご連絡ください。&lt;/p></description></item></channel></rss>