<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>大规模网络自动化设计 on Designing Network Automation at Scale</title><link>https://designingnetworkautomation.com/zh/</link><description>Recent content in 大规模网络自动化设计 on Designing Network Automation at Scale</description><generator>Hugo</generator><language>zh</language><atom:link href="https://designingnetworkautomation.com/zh/index.xml" rel="self" type="application/rss+xml"/><item><title>01 - 自动化的必要性</title><link>https://designingnetworkautomation.com/zh/series/part1-rethinking-networking-with-automation/01-automation-imperative/</link><pubDate>Mon, 10 Nov 2025 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/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%8a%a8%e5%8c%96%e7%9a%84%e5%bf%85%e8%a6%81%e6%80%a7">#&lt;/a>&lt;/h1>
&lt;div class="note-box">
 &lt;em>&amp;ldquo;自动化，还是不自动化——这是个问题。&amp;rdquo;&lt;/em>
&lt;/div>
&lt;p>自从 &lt;a href="https://designingnetworkautomation.com/zh/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>一家区域性物流公司的网络团队花了三年时间，构建了他们所谓的自动化平台：用于 VLAN 配置、BGP 邻居配置和设备加固的 Ansible Playbook，代码托管在 Git 中，变更经过同行评审，部署从数天缩短到数分钟。从他们自己的所有衡量标准来看，自动化做得无可挑剔。&lt;/p>
&lt;p>然后，公司收购了一家竞争对手，规模一夜之间翻倍。新站点、两家新供应商、与原有命名规范冲突的命名体系。第一次将配置 Playbook 运行在新环境时，它就因为边界情况而失败了。他们打了补丁，又遇到另一个失败。收购完成六周后，一位工程师花在维护自动化上的时间，已经超过了手动管理网络所需的时间。&lt;/p>
&lt;p>事后复盘令人不安。工具本身没有问题，Ansible 没有任何问题。失败的东西是看不见的：没有一份统一的描述来说明网络应该是什么样子。每个 Playbook 都内嵌了自己对命名规范、IP 分配策略和供应商行为的假设。当环境发生变化时，所有假设同时崩塌。这个团队自动化的是当前的网络，而非构建一个能够适应变化的平台。&lt;/p>
&lt;p>这正是每一次自动化停滞背后的核心模式：组织会走到这样一个临界点——为今天的问题而构建的自动化，变成了明天的障碍。&lt;/p>
&lt;h2 id="11-完美风暴">1.1. 完美风暴&lt;a class="anchor" href="#11-%e5%ae%8c%e7%be%8e%e9%a3%8e%e6%9a%b4">#&lt;/a>&lt;/h2>
&lt;p>自动化已不再是可选项。超大规模企业面临 &lt;a href="https://designingnetworkautomation.com/zh/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/zh/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/zh/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/zh/series/part1-rethinking-networking-with-automation/02-design-principles/</link><pubDate>Sun, 30 Nov 2025 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/series/part1-rethinking-networking-with-automation/02-design-principles/</guid><description>&lt;h1 id="2-设计原则">2. 设计原则&lt;a class="anchor" href="#2-%e8%ae%be%e8%ae%a1%e5%8e%9f%e5%88%99">#&lt;/a>&lt;/h1>
&lt;p>一支网络自动化团队花了六个月时间，构建了一个他们真正引以为傲的系统：从结构化数据模型中提取意图，通过模板引擎生成设备配置，根据策略库验证变更，并通过 NETCONF 推送配置，同时支持完整回滚。从架构角度来看，这个系统相当扎实。向领导层的演示也进展顺利。然后，他们把它交给了网络运营团队。&lt;/p>
&lt;p>采用从未到来。运营人员继续使用 CLI。当被问及原因时，回答出奇地一致：&amp;ldquo;在它执行之前，我不知道它会做什么。&amp;ldquo;&amp;ldquo;如果出了问题，我不知道发生了什么。&amp;ldquo;&amp;ldquo;我看不懂输出内容。&amp;ldquo;自动化团队构建了一个技术上令人印象深刻、但在运营上不透明的系统。没有预演模式，没有人类可读的变更预览，没有运营人员熟悉的审计追踪。这个系统是一个黑盒，它要求信任，却没有赢得信任。六个月的工程努力就此搁置。&lt;/p>
&lt;p>这种结果比大多数团队愿意承认的更为普遍。自动化的失败不仅仅因为 Bug 或糟糕的架构，更因为需要依赖它的人不信任它。我们将探索使网络自动化可靠、可扩展和安全的基础设计原则。这些不是抽象理论，而是自动化能否被采用并交付真实价值的分水岭。&lt;/p>
&lt;p>这些原则中有许多也适用于其他软件项目。但网络自动化具有独特的特性，因为它支撑着关键基础设施。网络工程师几十年来依靠谨慎、精确和手动验证的模式来构建和维护这些系统。而现在，我们要求他们采用一种根本不同的模式。这需要&lt;strong>信任&lt;/strong>。&lt;/p>
&lt;h2 id="21-构建信任">2.1 构建信任&lt;a class="anchor" href="#21-%e6%9e%84%e5%bb%ba%e4%bf%a1%e4%bb%bb">#&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>可信自动化的重要性受到 &lt;a href="https://www.linkedin.com/in/damiengarros/">Damien Garros&lt;/a> 在 Autocon3 上的演讲&lt;a href="https://www.youtube.com/watch?v=G3XqT-UhQ6Q">《构建可信网络自动化》&lt;/a>的启发。&lt;/p>&lt;/blockquote>&lt;p>简而言之，我们需要四个基本特性：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://designingnetworkautomation.com/zh/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>：一致、确定性的结果。工程师需要在按下&amp;quot;执行&amp;quot;之前知道会发生什么，并且每次都能得到相同的行为。&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://designingnetworkautomation.com/zh/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/zh/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/zh/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/zh/series/part1-rethinking-networking-with-automation/03-architectural-thinking/</link><pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/series/part1-rethinking-networking-with-automation/03-architectural-thinking/</guid><description>&lt;h1 id="3-架构思维">3. 架构思维&lt;a class="anchor" href="#3-%e6%9e%b6%e6%9e%84%e6%80%9d%e7%bb%b4">#&lt;/a>&lt;/h1>
&lt;p>本章介绍本书的核心基础。它解释了为什么需要采用这种思维方式，介绍了&lt;a href="https://networkautomation.forum">网络自动化论坛&lt;/a>（NAF）提出的参考框架，并展示如何在项目中加以运用。&lt;/p>
&lt;p>第二部分将深入探讨这些主题。本章仅做高层概述，以便在深入细节之前建立整体认知。这一点至关重要，因为一旦我们描述各个构建模块，整体图景将帮助你将各部分串联起来。&lt;/p>
&lt;p>但我坚信在了解&amp;quot;是什么&amp;quot;之前先理解&amp;quot;为什么&amp;quot;，因此让我们首先理解运用架构的原因。&lt;/p>
&lt;h2 id="31-参考架构的重要性">3.1. 参考架构的重要性&lt;a class="anchor" href="#31-%e5%8f%82%e8%80%83%e6%9e%b6%e6%9e%84%e7%9a%84%e9%87%8d%e8%a6%81%e6%80%a7">#&lt;/a>&lt;/h2>
&lt;p>&lt;em>&amp;ldquo;只有受过教育的人才是自由的。&amp;rdquo;&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>每个组件应做什么 -&amp;gt; 其职责&lt;/li>
&lt;li>组件如何交互 -&amp;gt; 其接口和数据流&lt;/li>
&lt;li>可以做出选择的地方 -&amp;gt; 使用哪些工具&lt;/li>
&lt;li>需要保持一致的地方 -&amp;gt; 组件如何相互通信&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-%e7%bd%91%e7%bb%9c%e8%87%aa%e5%8a%a8%e5%8c%96%e6%9e%b6%e6%9e%84">#&lt;/a>&lt;/h2>
&lt;p>因此，我们需要一个架构。但请注意本节标题中的&amp;quot;一个&amp;quot;：架构不止一种。架构只是一个参考框架，是一种组织思维、引导一致决策的方式。我参与了三项相关工作：&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://networktocode.com/blog/network-automation-architecture-part-01/">Network to Code 参考架构&lt;/a>，由 NTC 架构团队（我在其中工作了四年）主导的集体努力，旨在支持跨多种用例的高效、可理解的网络自动化。&lt;/li>
&lt;li>&lt;a href="https://www.oreilly.com/library/view/:network-programmability-and/9781098110826/ch14.html">O&amp;rsquo;Reilly《网络可编程性与自动化》第二版&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>，由 NAF 发起的社区项目，与 Wim Henderickx、Dinesh Dutt、Claudia de Luna、Ryan Shaw 和 Damien Garros 共同主导，目标是帮助新手和有经验的从业者以结构化、可重复的方式构建自动化解决方案。&lt;/li>
&lt;/ul>
&lt;p>在这些迭代过程中，我专注于保持一致性并从每次演进中汲取经验。三种方法各有价值。但我建议使用 &lt;a href="https://reference.networkautomation.forum/Framework/Framework/">&lt;a href="https://designingnetworkautomation.com/zh/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 - 真实数据源</title><link>https://designingnetworkautomation.com/zh/series/part2-architectural-building-blocks/04-source-of-truth/</link><pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/series/part2-architectural-building-blocks/04-source-of-truth/</guid><description>&lt;h1 id="4-真实数据源">4. 真实数据源&lt;a class="anchor" href="#4-%e7%9c%9f%e5%ae%9e%e6%95%b0%e6%8d%ae%e6%ba%90">#&lt;/a>&lt;/h1>
&lt;p>新服务需要在本周末上线。变更内容很简单：一个新 VLAN、一个新子网、更新防火墙规则，以及边缘路由器上的一个新 BGP community。网络工程师清楚地知道该做什么。然而接下来是跨越五个系统、历时四天的协调工作：IPAM 工具用于预留子网，CMDB 用于注册服务，防火墙管理平台用于推送新策略，路由器配置系统用于 BGP community，监控平台用于添加新阈值。每个系统都有自己的界面、自己的数据模型、自己的审批流程。由于没有共享参考，工程师不得不手动携带上下文：将数值从一个系统复制到下一个系统，希望中间步骤不会出现偏差。&lt;/p>
&lt;p>六个月后，服务下线。VLAN 被移除，子网被释放，但防火墙规则留了下来。没人记得它与那个服务关联。BGP community 还残留在两台边缘路由器上。监控阈值持续触发低优先级告警，NOC 学会了直接忽略。随着时间推移，网络积累了一层层孤立的配置：那些从未被完整追踪、从未被完整回滚、从未与共享意图记录相关联的变更残骸。&lt;/p>
&lt;p>这就是在没有真实数据源的情况下运营网络的真实面貌。不是单一的灾难性故障，而是不一致性的缓慢累积：每次变更都需要更新多个孤立系统，却没有任何机制追踪哪些内容是相互关联的。&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>我将&amp;quot;真实数据源&amp;quot;（Source of Truth）和&amp;quot;意图&amp;quot;（Intent）互换使用，它们是完全相同的概念。&lt;/p>&lt;/blockquote>&lt;p>没有可靠的真实数据源，网络运营就会沦为部落知识的混乱。工程师对已部署内容各执一词。电子表格与实际运行状态相矛盾。两个不同的自动化系统对同一设备做出冲突的变更。当故障发生时，你只能进行考古挖掘：&amp;ldquo;为什么这样配置？谁批准的？何时变更的？&amp;rdquo;&lt;/p>
&lt;p>本章探讨如何构建一个真实数据源：无论管理几十台还是几十万台设备，它都能为所有需要数据的对象（人、自动化、其他系统）提供服务，保持数据准确可信，并处理从多个来源汇聚数据的复杂性。我们将介绍六个构建模块：建模、消费、执行、版本控制、聚合和设计驱动，它们共同为网络自动化奠定坚实基础。我还会涉及将现有网络接入该系统的实际问题，并展示现有的解决方案。&lt;/p>
&lt;h2 id="41-基础概念">4.1. 基础概念&lt;a class="anchor" href="#41-%e5%9f%ba%e7%a1%80%e6%a6%82%e5%bf%b5">#&lt;/a>&lt;/h2>
&lt;p>真实数据源做三件事：定义你如何表达需求，意图存放在哪里，以及如何随时间保持其可信度。没有它，其他构建模块就成了没有共享参考的孤立工具；有了它，它们才能协同工作。&lt;/p>
&lt;h3 id="411-目标">4.1.1. 目标&lt;a class="anchor" href="#411-%e7%9b%ae%e6%a0%87">#&lt;/a>&lt;/h3>
&lt;p>你的真实数据源需要做六件事：&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>。员工应在业务层面工作（&amp;ldquo;新增一个分支机构&amp;quot;或&amp;quot;建立 MPLS 服务&amp;rdquo;），而非 &lt;a href="https://designingnetworkautomation.com/zh/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/zh/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/zh/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/zh/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 - 执行</title><link>https://designingnetworkautomation.com/zh/series/part2-architectural-building-blocks/05-execution/</link><pubDate>Sat, 01 Nov 2025 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/series/part2-architectural-building-blocks/05-execution/</guid><description>&lt;h1 id="5-执行">5. 执行&lt;a class="anchor" href="#5-%e6%89%a7%e8%a1%8c">#&lt;/a>&lt;/h1>
&lt;p>这个 Playbook 已经完美运行了几个月：实验室里的十台接入交换机，端到端两分钟，每次结果干净。当团队决定将其推广到全部 800 台交换机的完整清单时，没有人预料到会出问题。前 600 台设备顺利更新。然后任务变慢了，接着停滞了。RADIUS 服务器突然收到 150 个并发 SSH 认证请求，开始拒绝连接。Ansible 在 150 台设备的执行中途挂住。一名工程师强制终止了任务。&lt;/p>
&lt;p>接下来的问题才是更难解决的：没有人知道哪 600 台设备已经更新，哪 150 台还没有。没有记录任何执行状态。他们重新运行 Playbook，寄希望于幂等性能够救他们，这次确实救了。但这个事件揭示了一件重要的事：执行层是为实验室设计的，而不是为网络设计的。速度、并行性、错误边界、状态追踪，这些都没有被考虑进去。自动化本身是有效的；但执行架构不是。&lt;/p>
&lt;p>大多数人认为网络自动化就是：&lt;em>&amp;ldquo;获取相同的数据，不以人类身份连接 CLI，在网络上做些事情。&amp;rdquo;&lt;/em> 我敢打赌大多数开始网络自动化的人都是从这里起步的。是的，这就是&lt;strong>执行&lt;/strong>模块所做的事。但正如你在本书中所看到的，网络自动化比这第一步要宏大得多，执行只是架构中的一个组件。&lt;/p>
&lt;p>&lt;strong>执行&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%e7%a1%80%e6%a6%82%e5%bf%b5">#&lt;/a>&lt;/h2>
&lt;h3 id="511-背景">5.1.1. 背景&lt;a class="anchor" href="#511-%e8%83%8c%e6%99%af">#&lt;/a>&lt;/h3>
&lt;p>执行定义了&lt;em>如何&lt;/em>执行操作。&lt;em>做什么&lt;/em>来自意图模块，&lt;em>何时&lt;/em>来自编排。&lt;/p>
&lt;p>在早期的网络自动化项目中，一个为给定设备和接口名弹跳接口的脚本可以是第一个胜利。这段旅程可以成长为更复杂的系统。&lt;/p>
&lt;h3 id="512-目标">5.1.2. 目标&lt;a class="anchor" href="#512-%e7%9b%ae%e6%a0%87">#&lt;/a>&lt;/h3>
&lt;p>执行系统实际上需要做什么？五件事至关重要：&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>获取正确的数据。&lt;/strong> 在执行任何操作之前，你需要知道&lt;em>执行什么&lt;/em>（意图）、&lt;em>在哪里执行&lt;/em>（哪些设备）以及&lt;em>如何访问它们&lt;/em>（凭证、连接详情）。这意味着从真实数据源（更多内容见&lt;a href="../04-source-of-truth/">第 4 章&lt;/a>）拉取清单和获取预期状态，有时还需要查询可观测性数据以了解当前状况。没有这种集成，你的执行引擎只是在盲目地运行命令。为了你的心理健康，避免这种情况。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>在需要时启动，无论现在还是之后。&lt;/strong> 有时你需要立即执行：工程师点击&amp;quot;部署&amp;quot;并期望立即发生。其他时候，执行应该等待，在维护窗口期间部署，等待设备上线，或响应来自可观测性的事件。系统需要同时支持同步和异步触发。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>随时间追踪状态。&lt;/strong> 全网操作不是即时的。你可能在数小时内向数百台设备部署。哪些设备成功了？哪些失败了？哪些还在等待？状态管理还支持幂等性（运行相同任务两次，得到相同结果）、回滚（撤销刚才做的事）和恢复（在失败后从中断处继续）。没有状态追踪，每次执行都是一次孤注一掷的赌博。&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/zh/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></description></item><item><title>06 - 可观测性</title><link>https://designingnetworkautomation.com/zh/series/part2-architectural-building-blocks/06-observability/</link><pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/series/part2-architectural-building-blocks/06-observability/</guid><description>&lt;h1 id="6-可观测性">6. 可观测性&lt;a class="anchor" href="#6-%e5%8f%af%e8%a7%82%e6%b5%8b%e6%80%a7">#&lt;/a>&lt;/h1>
&lt;p>某服务提供商的核心路由器一个风扇模块在夜间悄无声息地发生了故障。没有任何告警。线卡上的热管理子系统检测到温度升高，开始对转发 ASIC 进行降频以保护硬件。一条生产中转链路的吞吐量下降了 40%。监控系统什么都没发现：它轮询的温度传感器位于机箱主控板上，而不是单块线卡上。SNMP 轮询每五分钟运行一次，报告设备状态正常。接口计数器显示吞吐量下降，但没有为这种模式配置任何阈值，因为该链路的利用率历来远低于容量上限。&lt;/p>
&lt;p>三小时后，一次客户 SLA 违规触发了一张工单。值班工程师 SSH 进入路由器，在本地告警日志中发现了风扇故障，对风扇模块进行了重新上电。风扇控制器重启，几分钟内热降频解除，流量恢复。SLA 违规已记录在案，客户已通知，事件已关闭。&lt;/p>
&lt;p>根本原因始终未能确认。等到有人开始调查时，路由器已经正常运行了数小时。线卡的温度数据不存在，降频事件没有记录，也无法在任何监控系统中将吞吐量下降与风扇故障关联起来。事件报告总结为：&amp;ldquo;疑似硬件问题，通过硬件重置解决。&amp;ldquo;六个月后，这件事在另一台路由器上再次发生。&lt;/p>
&lt;p>失败之处不在于缺少阈值。团队拥有数以千计的阈值。失败在于覆盖不完整：监控系统从那些一直被轮询的来源采集数据，而不是从每一个可能影响设备行为的来源采集。所有三种机箱型号的线卡温度数据都可以通过 gNMI 获取。没有人配置采集路径，因为没有人为风扇故障编写过操作手册。&lt;/p>
&lt;p>传统网络监控关注的是已经出故障的东西：接口是否正常？CPU 是否超过 90%？服务是否有响应？这些都有用，但都是被动的：你在等待故障发生。&lt;/p>
&lt;p>可观测性不同。它关注的是&lt;em>为什么&lt;/em>会出故障，或者即将出故障。不只是&amp;quot;那台设备宕机了&amp;rdquo;，而是&amp;quot;为什么宕机，它的宕机影响了什么，业务影响是什么。&amp;ldquo;在网络自动化中，可观测性成为反馈回路：你观测到某件事，系统检测到它，决定如何响应，采取行动，并验证修复是否生效。这种循环就是&amp;quot;闭环自动化&amp;rdquo;。&lt;/p>
&lt;p>本章涵盖你所需要的一切，以了解网络中正在发生什么：收集哪些数据、如何收集、如何存储、如何告警，以及如何以真正帮助人们做出决策的方式展示出来。&lt;/p>
&lt;blockquote class='book-hint note'>
&lt;p>我们在这里介绍两个构建块：&lt;a href="https://designingnetworkautomation.com/zh/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/zh/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></description></item><item><title>07 - 编排</title><link>https://designingnetworkautomation.com/zh/series/part2-architectural-building-blocks/07-orchestration/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/series/part2-architectural-building-blocks/07-orchestration/</guid><description>&lt;h1 id="7-编排">7. 编排&lt;a class="anchor" href="#7-%e7%bc%96%e6%8e%92">#&lt;/a>&lt;/h1>
&lt;p>网络团队做了一切正确的事情。他们有坚实的真实数据源、经过充分测试的各类操作 Playbook，以及执行它们的清晰操作手册。在纸面上，部署一个新的 VLAN 服务是完全自动化的。在实践中，这需要半天时间和一名特定的工程师。&lt;/p>
&lt;p>那位工程师熟知这个顺序。首先验证 SoT 数据是否完整。然后运行预检 Playbook。然后审查输出，查找失败的设备，决定是否继续。然后触发部署 Playbook。然后等待。然后运行验证 Playbook。然后手动更新 ServiceNow 工单。如果任何设备在中途失败，在其他设备注意到之前先回滚它。她将所有步骤都写在一份共享文档的操作手册中，但没有其他人完全内化了这些内容。&lt;/p>
&lt;p>当她请假时，部署停了下来。当一名初级工程师尝试这个顺序并搞错了顺序时，网络在六个小时内处于部分状态。自动化存在着，但协调仍然是手动的。&lt;/p>
&lt;p>这就是本章要解决的问题。编排是将一系列自动化工具转变为一个整体系统的构建块。它协调其他模块，决定它们何时运行，优雅地处理故障，追踪每一个决策，并且所有这些都不需要工程师站在中间手动管理流程。&lt;/p>
&lt;h2 id="71-基础概念">7.1. 基础概念&lt;a class="anchor" href="#71-%e5%9f%ba%e7%a1%80%e6%a6%82%e5%bf%b5">#&lt;/a>&lt;/h2>
&lt;h3 id="711-背景">7.1.1. 背景&lt;a class="anchor" href="#711-%e8%83%8c%e6%99%af">#&lt;/a>&lt;/h3>
&lt;p>到目前为止，我们所介绍的每个构建块都做一件事做得很好。真实数据源保存意图。执行器应用意图。采集器检索状态。可观测性使这些状态变得有意义。每个都是专家，而专家需要一个连接器：某个决定每个专家何时应该行动、如何处理结果、以及在出错时如何恢复的组件。&lt;/p>
&lt;p>这个连接器就是 &lt;a href="https://designingnetworkautomation.com/zh/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>展示了执行器如何应用配置变更；&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-%e7%9b%ae%e6%a0%87">#&lt;/a>&lt;/h3>
&lt;p>编排器需要实现五个目标：&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></description></item><item><title>08 - 呈现</title><link>https://designingnetworkautomation.com/zh/series/part2-architectural-building-blocks/08-presentation/</link><pubDate>Sat, 28 Mar 2026 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/series/part2-architectural-building-blocks/08-presentation/</guid><description>&lt;h1 id="8-呈现层">8. 呈现层&lt;a class="anchor" href="#8-%e5%91%88%e7%8e%b0%e5%b1%82">#&lt;/a>&lt;/h1>
&lt;p>VLAN 自动化已经运行了六周。网络团队为此感到自豪。每天早上，来自应用团队的三四个新服务请求到来，编排器在没有任何人敲键盘的情况下处理了它们。部署正常工作，交换机被配置好了，网络运行健康。&lt;/p>
&lt;p>升级事件在周四到来。应用团队负责人在询问，当门户显示&amp;quot;已提交&amp;quot;时，为什么 VLAN 请求需要三到五个工作日。网络团队检查了他们的队列：零条待处理请求，所有部署成功。自动化在收到每个请求后二十分钟内就处理了。但 ServiceNow 工单仍然显示&amp;quot;进行中&amp;quot;，因为没有人编写过会更新它们的集成。&lt;/p>
&lt;p>自动化完成了它的工作，但结果是不可见的。&lt;/p>
&lt;p>一周后，团队部署了一个快速的自助服务门户，让应用团队可以直接提交请求并查看状态。到中午他们在一小时内收到了四十七个 VLAN 请求，全部有效，格式正确。问题是：门户没有授权模型。它接受任何拥有 URL 的人的提交。所有请求都在一个拥有平台级管理员权限的单一 API 令牌下运行。没有速率限制、没有审批门、没有谁提交了什么的审计跟踪。&lt;/p>
&lt;p>自动化运行了，但访问模型没有。&lt;/p>
&lt;p>这两个失败都是呈现层的失败。一个是缺少反馈循环；另一个是缺少护栏。本章填补这一空白。&lt;/p>
&lt;h2 id="81-基础概念">8.1. 基础概念&lt;a class="anchor" href="#81-%e5%9f%ba%e7%a1%80%e6%a6%82%e5%bf%b5">#&lt;/a>&lt;/h2>
&lt;h3 id="811-背景">8.1.1. 背景&lt;a class="anchor" href="#811-%e8%83%8c%e6%99%af">#&lt;/a>&lt;/h3>
&lt;p>到目前为止涵盖的每个构建块都面向内部：面向其他模块或面向理解平台的工程师。&lt;a href="https://designingnetworkautomation.com/zh/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> 为自动化系统保存网络意图。执行器将变更应用到设备。&lt;a href="https://designingnetworkautomation.com/zh/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/zh/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/zh/series/part2-architectural-building-blocks/09-the-network/</link><pubDate>Sun, 29 Mar 2026 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/series/part2-architectural-building-blocks/09-the-network/</guid><description>&lt;h1 id="9-网络">9. 网络&lt;a class="anchor" href="#9-%e7%bd%91%e7%bb%9c">#&lt;/a>&lt;/h1>
&lt;p>VLAN 自动化已经在实验室运行了三周。三台交换机，每个厂商各一台，所有工作流都能通过。团队信心满满。在第一次生产运行中，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> 视为幂等信号，意思是&amp;quot;这已经存在，没问题。&amp;ldquo;但它没有被写成能处理 &lt;code>vlan-exists&lt;/code>，所以它将该响应视为失败。三分之一的 HPE 机队报告失败。回滚干净地运行了。应用团队的工单在网络团队手动审查哪些交换机实际上已配置、哪些没有配置时，又等了三个小时。&lt;/p>
&lt;p>自动化没有错，是网络有自己的意见，但没有人将其记录下来。&lt;/p>
&lt;p>六个月后，同一个团队有了一个镜像 B 楼的 containerlab 拓扑：24 台交换机，匹配厂商镜像，HPE 节点锁定到 &lt;a href="https://designingnetworkautomation.com/zh/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 节点恰好以那个错误代码失败了。团队将 &lt;code>vlan-exists&lt;/code> 添加到 HPE 适配器中的幂等响应列表。重新运行：全部 24 个节点通过。生产部署：800 台交换机，零失败。&lt;/p>
&lt;p>区别不在于更好的代码，而在于代表现实的测试环境。&lt;/p>
&lt;p>本章解决在第 2 部分中一直隐含的模块：网络本身。到目前为止构建的每个构建块都是由自动化团队设计的，按照其有文档记录的接口运行。网络是继承来的。它有各种怪癖、多样化的接口、固件不一致性以及因厂商、平台和软件代次不同而变化的能力。第 9 章解决两个问题：我们需要从网络获得什么才能使自动化可靠，以及我们如何在接触生产之前安全地验证自动化逻辑？&lt;/p></description></item><item><title>10 - 平台工程与 CI/CD</title><link>https://designingnetworkautomation.com/zh/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/zh/series/part3-designing-for-scale-and-reliability/10-platform-engineering/</guid><description>&lt;h1 id="10-平台工程与-cicd">10. 平台工程与 CI/CD&lt;a class="anchor" href="#10-%e5%b9%b3%e5%8f%b0%e5%b7%a5%e7%a8%8b%e4%b8%8e-cicd">#&lt;/a>&lt;/h1>
&lt;p>（本章内容即将发布。）&lt;/p>





&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%25E5%25B9%25B3%25E5%258F%25B0%25E5%25B7%25A5%25E7%25A8%258B%25E4%25B8%258E%2bCI%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></description></item><item><title>11 - 规模化与可靠性</title><link>https://designingnetworkautomation.com/zh/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/zh/series/part3-designing-for-scale-and-reliability/11-scaling-and-reliability/</guid><description>&lt;h1 id="11-规模化与可靠性">11. 规模化与可靠性&lt;a class="anchor" href="#11-%e8%a7%84%e6%a8%a1%e5%8c%96%e4%b8%8e%e5%8f%af%e9%9d%a0%e6%80%a7">#&lt;/a>&lt;/h1>
&lt;p>（本章内容即将发布。）&lt;/p>





&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%25E8%25A7%2584%25E6%25A8%25A1%25E5%258C%2596%25E4%25B8%258E%25E5%258F%25AF%25E9%259D%25A0%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></description></item><item><title>12 - 安全、治理与合规</title><link>https://designingnetworkautomation.com/zh/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/zh/series/part3-designing-for-scale-and-reliability/12-security-and-compliance/</guid><description>&lt;h1 id="12-安全治理与合规">12. 安全、治理与合规&lt;a class="anchor" href="#12-%e5%ae%89%e5%85%a8%e6%b2%bb%e7%90%86%e4%b8%8e%e5%90%88%e8%a7%84">#&lt;/a>&lt;/h1>
&lt;p>（本章内容即将发布。）&lt;/p>





&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%25E5%25AE%2589%25E5%2585%25A8%25E3%2580%2581%25E6%25B2%25BB%25E7%2590%2586%25E4%25B8%258E%25E5%2590%2588%25E8%25A7%2584&amp;body=What%20did%20you%20find%20useful%3f%250AWhat%20was%20unclear%3f%250AAny%20suggestions%3f">
 Send feedback for this chapter
 &lt;/a>
&lt;/p></description></item><item><title>13 - 文化转型</title><link>https://designingnetworkautomation.com/zh/series/part4-human-and-organizational-dimension/13-cultural-shift/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/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%e8%bd%ac%e5%9e%8b">#&lt;/a>&lt;/h1>
&lt;p>会议邀请在周四发出，主题是&amp;quot;网络团队架构调整&amp;quot;。Jordi 做了十五年网络工程师，拿到了 CCIE 认证，经历了三次收购、两次 NOC 整合，以及一次严重到成为内部案例的 BGP 路由故障。他以为这只是一次人事通知。&lt;/p>
&lt;p>他错了。&lt;/p>
&lt;p>他的经理解释说，网络团队将被重组并入平台工程部门，团队名称改为&amp;quot;网络自动化平台&amp;quot;。工作内容也将随之演进：减少手动配置，更多精力投入构建和运营处理配置任务的自动化系统。新的岗位描述已经写好，职位名称是&amp;quot;网络平台工程师&amp;quot;。&lt;/p>
&lt;p>Jordi 当天晚上回家搜索了这个职位名称，大多数结果指向云计算招聘和容器编排基础设施，他读了一个小时，大约能理解一半的内容。他没有写过 Python 脚本，也不清楚 Git 究竟是什么，更不确定自己应该感到兴奋还是恐惧。&lt;/p>
&lt;p>到年底，Jordi 已经向生产环境交付了两个自动化工作流，审查了来自从未配置过路由器的软件工程师的数百行代码，并撰写了团队的第一份架构决策记录。他不是软件开发者，他是一种更难界定、也更有价值的工程师：既理解网络，又理解操作网络的系统。&lt;/p>
&lt;p>本章讲述的正是这场转型。不只是 Jordi 一个人的转型，而是整个组织的转型。第 1 章至第 12 章所介绍的技术无法自行运转，它需要具备不同技能、不同角色、与网络工程传统培养模式截然不同协作方式的人来驱动。把技术做对已经很难，把组织转型做对更难，而这也是自动化项目最常失败的地方。&lt;/p>
&lt;h2 id="131-身份认同危机">13.1 身份认同危机&lt;a class="anchor" href="#131-%e8%ba%ab%e4%bb%bd%e8%ae%a4%e5%90%8c%e5%8d%b1%e6%9c%ba">#&lt;/a>&lt;/h2>
&lt;p>文化转型中最难的部分，不是学会使用 Git，而是放下多年深耕 &lt;a href="https://designingnetworkautomation.com/zh/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>这就是&lt;strong>工匠的困境&lt;/strong>：你在某门手艺上越是精通，任何将其抽象屏蔽的工具就越像威胁而非助力。熟悉每家厂商 CLI 细节的网络工程师抵制抽象层，并非出于非理性，而是来自一个完全理性的判断：他们被要求以熟悉换陌生。&lt;/p>
&lt;p>破解困境的关键在于重新定位：自动化并不取代深厚的网络知识，恰恰相反，它需要这种知识。区别在于这种知识在哪里、如何发挥作用。深刻理解 BGP 收敛机制的工程师，在自动化时代并没有变得不那么重要，反而是唯一有资格设计可靠闭环 BGP 自动化的人。技能的应用场景从执行移向了设计，从亲手运行命令变成了定义应运行哪些命令、在哪些条件下运行。&lt;/p></description></item><item><title>14 - 将自动化作为产品</title><link>https://designingnetworkautomation.com/zh/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/zh/series/part4-human-and-organizational-dimension/14-automation-as-a-product/</guid><description>&lt;h1 id="14-将自动化作为产品">14. 将自动化作为产品&lt;a class="anchor" href="#14-%e5%b0%86%e8%87%aa%e5%8a%a8%e5%8c%96%e4%bd%9c%e4%b8%ba%e4%ba%a7%e5%93%81">#&lt;/a>&lt;/h1>
&lt;p>在那次改变了团队工作思维方式的谈话发生六个月前，网络平台团队已经交付了一个真正令人印象深刻的成果。两年来持续不懈的努力，打造出了一个端到端处理分支机构上线的配置平台：一个用于站点请求的自助服务界面、一个在部署前捕获错误配置的闭环验证工作流，以及一个跨三百个站点追踪服务健康状态的运营仪表盘。团队将变更窗口从二十四小时压缩到了四十分钟的自动化部署。他们为此感到骄傲，而且理所应当。&lt;/p>
&lt;p>然后，业务发展团队敲定了一项零售连锁并购。一百二十家新门店需要在六个月内接入网络。基础设施负责人发来一封简短的邮件：&amp;ldquo;我们指望自动化平台来完成这件事。我们该怎么开始？&amp;rdquo;&lt;/p>
&lt;p>网络平台团队的第一反应是自信的：他们可以实现自动化。工作流已经有了，模板也有了，工具链也经过了验证。&lt;/p>
&lt;p>然而，当他们尝试回复这封邮件时，第二反应就没那么自信了。基础设施负责人问的并不是自动化技术上是否可行。他们问的是另一套问题：门店上线的 SLA 是什么——具体而言，提交站点信息后，门店获得网络连接的承诺时间是多少？当部署在中途失败时，升级路径是什么？是否有一个状态页面或仪表盘，可以让基础设施负责人的团队在不直接询问网络团队的情况下自行监控？平台的容量是多少——它能同时处理二十个并发部署吗，还是需要将请求分批处理？最令人不安的问题：在平台故障期间上线的门店，会被自动修复，还是需要有人逐一审计？&lt;/p>
&lt;p>网络团队拥有自动化能力，但他们没有（用业务和产品语言表达的）答案。&lt;/p>
&lt;p>这道鸿沟——介于&amp;quot;我们构建了可以运行的自动化&amp;quot;与&amp;quot;我们提供了其他团队可以依赖并据此规划的服务&amp;quot;之间——正是本章的主题。&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-%e4%bb%8e%e8%83%bd%e5%8a%9b%e5%88%b0%e4%ba%a7%e5%93%81">#&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>这就是&lt;strong>将网络服务作为产品 (Network Service as Product)&lt;/strong> 模式：服务是主要制品，底层网络是实现手段。这在软件工程中并不新鲜：API 对基础设施进行抽象，调用方不知道也不关心哪台服务器处理了请求。然而，对于历史上围绕设备、厂商和协议来组织工作的网络团队来说，这是一个重大转变。那些将自身身份认同建立在路由器配置技能上的工程师，现在被要求将其身份认同建立在服务交付能力上。这种重新定位与&lt;a href="../13-cultural-shift/">第 13 章第 13.1 节&lt;/a>中的&amp;quot;工匠困境&amp;quot;直接相关：旧技艺的专家是最迫切需要进行这种重新定位的人，而那些完全完成这一转变的工程师将变得更有价值，而不是更少。&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-%e5%ae%9a%e4%b9%89%e4%ba%a7%e5%93%81">#&lt;/a>&lt;/h2>
&lt;p>当团队尝试将网络自动化转变为服务时，始终会出现两种失败模式。&lt;/p>
&lt;p>第一种是&lt;strong>过度暴露&lt;/strong>：界面暴露了实现细节，使用方必须了解网络内部机制才能使用它。一个要求输入 VLAN ID、子网掩码和 OSPF 区域编号的分支配置服务，不是一个服务——它只是一个带有 Web 表单的 CLI。使用方是零售连锁的设施协调员，他们不知道什么是 OSPF 区域，也不应该需要知道。&lt;/p>
&lt;p>第二种是&lt;strong>过度限制&lt;/strong>：界面约束如此之严，以至于只能处理网络团队预先设想的精确场景。任何偏离模板的请求都需要走例外流程。需要为临时快闪门店配置与常规零售门店不同连接需求的设施协调员，无法自助完成。他们只能提交工单，工单流转到网络团队，自动化带来的收益并未惠及那位使用方。&lt;/p>
&lt;p>&lt;strong>服务契约模式 (Service Contract Pattern)&lt;/strong> 通过明确、版本化且经过刻意界定的界面定义，解决了这两种失败模式。服务契约包含三个组成部分：&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>输入接口&lt;/strong>：使用方提供的内容，以业务术语而非网络术语表达（抱歉坚持这一点，但这是关键所在）。一个分支站点请求接收位置名称、实际地址、站点层级（标准、小型、快闪）和激活日期，而不接收 VLAN ID。契约在内部将业务意图转译为网络实现，而这种转译是自动化平台的责任。层级定义并非永久不变：为临时零售亭定义的快闪层级，不一定适用于连接需求不同的快闪活动场所。输入接口必须与使用团队以相同的路线图节奏进行评审，以确保层级反映实际的使用场景，而非网络团队在最初编写契约时所预想的场景。&lt;/p></description></item><item><title>15 - 闭环自动化</title><link>https://designingnetworkautomation.com/zh/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/zh/series/part5-patterns-and-use-cases/15-closed-loop-automation/</guid><description>&lt;h1 id="15-闭环自动化">15. 闭环自动化&lt;a class="anchor" href="#15-%e9%97%ad%e7%8e%af%e8%87%aa%e5%8a%a8%e5%8c%96">#&lt;/a>&lt;/h1>
&lt;p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p></description></item><item><title>16 - 自愈网络</title><link>https://designingnetworkautomation.com/zh/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/zh/series/part5-patterns-and-use-cases/16-self-healing-networks/</guid><description>&lt;h1 id="16-自愈网络">16. 自愈网络&lt;a class="anchor" href="#16-%e8%87%aa%e6%84%88%e7%bd%91%e7%bb%9c">#&lt;/a>&lt;/h1>
&lt;p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p></description></item><item><title>17 - 自主网络</title><link>https://designingnetworkautomation.com/zh/series/part5-patterns-and-use-cases/17-autonomous-networks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/series/part5-patterns-and-use-cases/17-autonomous-networks/</guid><description>&lt;h1 id="17-自主网络">17. 自主网络&lt;a class="anchor" href="#17-%e8%87%aa%e4%b8%bb%e7%bd%91%e7%bb%9c">#&lt;/a>&lt;/h1>
&lt;p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p></description></item><item><title>关于作者</title><link>https://designingnetworkautomation.com/zh/about/</link><pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/about/</guid><description>&lt;h1 id="关于-christian-adell">关于 Christian Adell&lt;a class="anchor" href="#%e5%85%b3%e4%ba%8e-christian-adell">#&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="#%e8%81%94%e7%b3%bb%e6%96%b9%e5%bc%8f">#&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%e4%b9%a6%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, 2nd Edition&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, 2nd Edition&lt;/strong>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;h2 id="会议与社区参与">会议与社区参与&lt;a class="anchor" href="#%e4%bc%9a%e8%ae%ae%e4%b8%8e%e7%a4%be%e5%8c%ba%e5%8f%82%e4%b8%8e">#&lt;/a>&lt;/h2>
&lt;p>Christian 活跃于各大网络技术会议：&lt;/p></description></item><item><title>法律声明</title><link>https://designingnetworkautomation.com/zh/legal/</link><pubDate>Sat, 01 Nov 2025 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/legal/</guid><description>&lt;h1 id="法律声明">法律声明&lt;a class="anchor" href="#%e6%b3%95%e5%be%8b%e5%a3%b0%e6%98%8e">#&lt;/a>&lt;/h1>
&lt;h3 id="版权声明">版权声明&lt;a class="anchor" href="#%e7%89%88%e6%9d%83%e5%a3%b0%e6%98%8e">#&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%87%b4%e8%b0%a2">#&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><item><title>术语表</title><link>https://designingnetworkautomation.com/zh/glossary/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://designingnetworkautomation.com/zh/glossary/</guid><description>&lt;p>内容即将上线。&lt;/p></description></item></channel></rss>