<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Fastly on Tarragon</title><link>https://tarrragon.github.io/blog/tags/fastly/</link><description>Recent content in Fastly on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Thu, 07 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/fastly/index.xml" rel="self" type="application/rss+xml"/><item><title>Fastly 2021 June Global Edge Config-triggered Outage</title><link>https://tarrragon.github.io/blog/backend/08-incident-response/cases/fastly/2021-june-global-edge-config-triggered-outage/</link><pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/backend/08-incident-response/cases/fastly/2021-june-global-edge-config-triggered-outage/</guid><description>&lt;p>Fastly 2021 事故的核心教訓是：在全球 edge 平台中，一個有效配置也可能觸發平台潛藏 bug，造成分鐘級全球擴散。&lt;/p>
&lt;h2 id="事故摘要">事故摘要&lt;/h2>
&lt;p>Fastly 官方摘要指出，2021-06-08 的全球 outage 由平台既有軟體 bug 觸發，觸發條件來自一個有效的客戶配置變更。故障在短時間內影響大範圍 edge 節點，並在隔離配置後逐步恢復。&lt;/p>
&lt;p>這類事故不是「客戶配置錯誤」或「平台單點故障」的二選一，而是配置與平台行為交互下的系統性風險。&lt;/p>
&lt;h2 id="判讀訊號">判讀訊號&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>訊號&lt;/th>
 &lt;th>事故中代表什麼&lt;/th>
 &lt;th>第一波決策價值&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>全球 503 快速上升&lt;/td>
 &lt;td>edge 平台共同執行路徑失效&lt;/td>
 &lt;td>立即轉全域 incident，不走單區排障&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>偵測時間短但影響面巨大&lt;/td>
 &lt;td>擴散速度高於人工逐站處理能力&lt;/td>
 &lt;td>優先做全域隔離與停傳播動作&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>關閉觸發配置後快速回線&lt;/td>
 &lt;td>觸發路徑明確、回退有效&lt;/td>
 &lt;td>建立配置觸發型事故的快速回退標準&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>事故前已有潛藏 bug&lt;/td>
 &lt;td>變更驗證對交互條件覆蓋不足&lt;/td>
 &lt;td>回寫配置驗證與灰度策略&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="事故路徑">事故路徑&lt;/h2>
&lt;ol>
&lt;li>平台先前部署引入可被特定條件觸發的 bug。&lt;/li>
&lt;li>客戶推送有效配置，觸發 bug。&lt;/li>
&lt;li>大範圍 edge 節點回應錯誤，形成全球 outage。&lt;/li>
&lt;li>團隊定位並隔離觸發配置，服務逐步恢復。&lt;/li>
&lt;li>事後回寫驗證、隔離與恢復流程。&lt;/li>
&lt;/ol>
&lt;h2 id="可回寫控制面">可回寫控制面&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>控制面&lt;/th>
 &lt;th>這次事故暴露的缺口&lt;/th>
 &lt;th>回寫方向&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Config-trigger safety gate&lt;/td>
 &lt;td>有效配置也可觸發平台 bug&lt;/td>
 &lt;td>對配置與平台交互條件增加回放測試&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Global propagation brake&lt;/td>
 &lt;td>擴散速度遠快於局部人工止血&lt;/td>
 &lt;td>建立全域停傳播與快速隔離機制&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Canary and staged rollout&lt;/td>
 &lt;td>交互條件在前期驗證未被涵蓋&lt;/td>
 &lt;td>強化灰度策略與跨場景驗證&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Incident communication timing&lt;/td>
 &lt;td>影響廣但恢復快，對外節奏需精準&lt;/td>
 &lt;td>以固定 cadence 說明影響範圍與恢復進度&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="下一步路由">下一步路由&lt;/h2>
&lt;ul>
&lt;li>規則/配置成本訊號： &lt;a href="https://tarrragon.github.io/blog/backend/04-observability/rule-level-cpu-signal-governance/" data-link-title="4.21 Rule-level CPU Signal Governance" data-link-desc="把規則與策略執行成本變成可觀測訊號，避免控制面小變更在資料面形成 CPU 熱點。">4.21 Rule-level CPU Signal Governance&lt;/a>&lt;/li>
&lt;li>證據包： &lt;a href="https://tarrragon.github.io/blog/backend/04-observability/observability-evidence-package/" data-link-title="4.20 Observability Evidence Package" data-link-desc="把 log、metric、trace、audit 與資料品質限制包成可交接證據">4.20 Observability Evidence Package&lt;/a>&lt;/li>
&lt;li>規則推送閘門： &lt;a href="https://tarrragon.github.io/blog/backend/06-reliability/rule-rollout-safety-gate/" data-link-title="6.24 規則推送安全閘門" data-link-desc="把規則、策略與控制面配置推送從部署步驟升級為可靠性 gate，避免小變更在秒級擴散成全網事故。">6.24 Rule Rollout Safety Gate&lt;/a>&lt;/li>
&lt;li>事故通訊： &lt;a href="https://tarrragon.github.io/blog/backend/08-incident-response/incident-communication/" data-link-title="8.4 事故通訊與狀態更新" data-link-desc="建立內外部通報節奏與狀態更新格式">8.4 Incident Communication&lt;/a>&lt;/li>
&lt;li>證據回寫流程： &lt;a href="https://tarrragon.github.io/blog/backend/08-incident-response/incident-evidence-write-back/" data-link-title="8.22 Incident Evidence Write-back" data-link-desc="把事故證據、決策與復盤結論回寫到 observability、reliability 與 runbook">8.22 Incident Evidence Write-back&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="引用源">引用源&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://www.fastly.com/blog/summary-of-june-8-outage">Summary of June 8 outage&lt;/a>&lt;/li>
&lt;/ul></description><content:encoded><![CDATA[<p>Fastly 2021 事故的核心教訓是：在全球 edge 平台中，一個有效配置也可能觸發平台潛藏 bug，造成分鐘級全球擴散。</p>
<h2 id="事故摘要">事故摘要</h2>
<p>Fastly 官方摘要指出，2021-06-08 的全球 outage 由平台既有軟體 bug 觸發，觸發條件來自一個有效的客戶配置變更。故障在短時間內影響大範圍 edge 節點，並在隔離配置後逐步恢復。</p>
<p>這類事故不是「客戶配置錯誤」或「平台單點故障」的二選一，而是配置與平台行為交互下的系統性風險。</p>
<h2 id="判讀訊號">判讀訊號</h2>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>事故中代表什麼</th>
          <th>第一波決策價值</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>全球 503 快速上升</td>
          <td>edge 平台共同執行路徑失效</td>
          <td>立即轉全域 incident，不走單區排障</td>
      </tr>
      <tr>
          <td>偵測時間短但影響面巨大</td>
          <td>擴散速度高於人工逐站處理能力</td>
          <td>優先做全域隔離與停傳播動作</td>
      </tr>
      <tr>
          <td>關閉觸發配置後快速回線</td>
          <td>觸發路徑明確、回退有效</td>
          <td>建立配置觸發型事故的快速回退標準</td>
      </tr>
      <tr>
          <td>事故前已有潛藏 bug</td>
          <td>變更驗證對交互條件覆蓋不足</td>
          <td>回寫配置驗證與灰度策略</td>
      </tr>
  </tbody>
</table>
<h2 id="事故路徑">事故路徑</h2>
<ol>
<li>平台先前部署引入可被特定條件觸發的 bug。</li>
<li>客戶推送有效配置，觸發 bug。</li>
<li>大範圍 edge 節點回應錯誤，形成全球 outage。</li>
<li>團隊定位並隔離觸發配置，服務逐步恢復。</li>
<li>事後回寫驗證、隔離與恢復流程。</li>
</ol>
<h2 id="可回寫控制面">可回寫控制面</h2>
<table>
  <thead>
      <tr>
          <th>控制面</th>
          <th>這次事故暴露的缺口</th>
          <th>回寫方向</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Config-trigger safety gate</td>
          <td>有效配置也可觸發平台 bug</td>
          <td>對配置與平台交互條件增加回放測試</td>
      </tr>
      <tr>
          <td>Global propagation brake</td>
          <td>擴散速度遠快於局部人工止血</td>
          <td>建立全域停傳播與快速隔離機制</td>
      </tr>
      <tr>
          <td>Canary and staged rollout</td>
          <td>交互條件在前期驗證未被涵蓋</td>
          <td>強化灰度策略與跨場景驗證</td>
      </tr>
      <tr>
          <td>Incident communication timing</td>
          <td>影響廣但恢復快，對外節奏需精準</td>
          <td>以固定 cadence 說明影響範圍與恢復進度</td>
      </tr>
  </tbody>
</table>
<h2 id="下一步路由">下一步路由</h2>
<ul>
<li>規則/配置成本訊號： <a href="/blog/backend/04-observability/rule-level-cpu-signal-governance/" data-link-title="4.21 Rule-level CPU Signal Governance" data-link-desc="把規則與策略執行成本變成可觀測訊號，避免控制面小變更在資料面形成 CPU 熱點。">4.21 Rule-level CPU Signal Governance</a></li>
<li>證據包： <a href="/blog/backend/04-observability/observability-evidence-package/" data-link-title="4.20 Observability Evidence Package" data-link-desc="把 log、metric、trace、audit 與資料品質限制包成可交接證據">4.20 Observability Evidence Package</a></li>
<li>規則推送閘門： <a href="/blog/backend/06-reliability/rule-rollout-safety-gate/" data-link-title="6.24 規則推送安全閘門" data-link-desc="把規則、策略與控制面配置推送從部署步驟升級為可靠性 gate，避免小變更在秒級擴散成全網事故。">6.24 Rule Rollout Safety Gate</a></li>
<li>事故通訊： <a href="/blog/backend/08-incident-response/incident-communication/" data-link-title="8.4 事故通訊與狀態更新" data-link-desc="建立內外部通報節奏與狀態更新格式">8.4 Incident Communication</a></li>
<li>證據回寫流程： <a href="/blog/backend/08-incident-response/incident-evidence-write-back/" data-link-title="8.22 Incident Evidence Write-back" data-link-desc="把事故證據、決策與復盤結論回寫到 observability、reliability 與 runbook">8.22 Incident Evidence Write-back</a></li>
</ul>
<h2 id="引用源">引用源</h2>
<ul>
<li><a href="https://www.fastly.com/blog/summary-of-june-8-outage">Summary of June 8 outage</a></li>
</ul>
]]></content:encoded></item></channel></rss>