<?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>Readiness on Tarragon</title><link>https://tarrragon.github.io/blog/tags/readiness/</link><description>Recent content in Readiness on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Sat, 20 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/readiness/index.xml" rel="self" type="application/rss+xml"/><item><title>模組四：服務探活與自動恢復</title><link>https://tarrragon.github.io/blog/devops/04-service-health/</link><pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/devops/04-service-health/</guid><description>&lt;p>回答「服務掛了怎麼知道、知道了怎麼自動恢復」。探活是所有自動恢復機制的前提。&lt;/p>
&lt;h2 id="待寫章節">待寫章節&lt;/h2>
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> Health check endpoint 設計（什麼算健康、什麼算不健康、check 的深度）&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Liveness vs Readiness（活著 vs 準備好接流量 — Kubernetes 的兩種 probe）&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> systemd watchdog + 自動重啟（WatchdogSec + Restart=on-failure）&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Process supervisor 的選型（systemd / supervisord / Docker restart policy）&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Graceful shutdown（收到 SIGTERM 後的清理流程）&lt;/li>
&lt;/ul>
&lt;h2 id="跨分類引用">跨分類引用&lt;/h2>
&lt;ul>
&lt;li>→ &lt;a href="https://tarrragon.github.io/blog/monitoring/04-collector/dashboard-devops/" data-link-title="DevOps Dashboard 設計" data-link-desc="Collector 和 SDK 是否健康 — 日常監控的服務狀態卡、吞吐量曲線、儲存用量，以及告警觸發後的排障視圖">monitoring 模組四 Dashboard DevOps&lt;/a>：DevOps dashboard 的服務狀態卡依賴 health check&lt;/li>
&lt;li>→ &lt;a href="https://tarrragon.github.io/blog/backend/05-deployment-platform/" data-link-title="模組五：部署平台與網路入口" data-link-desc="整理 Kubernetes、systemd、load balancer、container 與服務生命週期合約">backend 部署平台&lt;/a>：部署平台的 health check 整合&lt;/li>
&lt;/ul></description><content:encoded><![CDATA[<p>回答「服務掛了怎麼知道、知道了怎麼自動恢復」。探活是所有自動恢復機制的前提。</p>
<h2 id="待寫章節">待寫章節</h2>
<ul>
<li><input disabled="" type="checkbox"> Health check endpoint 設計（什麼算健康、什麼算不健康、check 的深度）</li>
<li><input disabled="" type="checkbox"> Liveness vs Readiness（活著 vs 準備好接流量 — Kubernetes 的兩種 probe）</li>
<li><input disabled="" type="checkbox"> systemd watchdog + 自動重啟（WatchdogSec + Restart=on-failure）</li>
<li><input disabled="" type="checkbox"> Process supervisor 的選型（systemd / supervisord / Docker restart policy）</li>
<li><input disabled="" type="checkbox"> Graceful shutdown（收到 SIGTERM 後的清理流程）</li>
</ul>
<h2 id="跨分類引用">跨分類引用</h2>
<ul>
<li>→ <a href="/blog/monitoring/04-collector/dashboard-devops/" data-link-title="DevOps Dashboard 設計" data-link-desc="Collector 和 SDK 是否健康 — 日常監控的服務狀態卡、吞吐量曲線、儲存用量，以及告警觸發後的排障視圖">monitoring 模組四 Dashboard DevOps</a>：DevOps dashboard 的服務狀態卡依賴 health check</li>
<li>→ <a href="/blog/backend/05-deployment-platform/" data-link-title="模組五：部署平台與網路入口" data-link-desc="整理 Kubernetes、systemd、load balancer、container 與服務生命週期合約">backend 部署平台</a>：部署平台的 health check 整合</li>
</ul>
]]></content:encoded></item><item><title>Readiness</title><link>https://tarrragon.github.io/blog/backend/knowledge-cards/readiness/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/backend/knowledge-cards/readiness/</guid><description>&lt;p>Readiness 的核心概念是「instance 是否已準備好接收正式流量」。部署平台或 load balancer 會根據 readiness 訊號決定是否把 request 導到該 instance。 可先對照 &lt;a href="https://tarrragon.github.io/blog/backend/knowledge-cards/redelivery-loop/" data-link-title="Redelivery Loop" data-link-desc="說明同一訊息反覆投遞失敗如何消耗 consumer 容量">Redelivery Loop&lt;/a>。&lt;/p>
&lt;h2 id="概念位置">概念位置&lt;/h2>
&lt;p>Readiness 是 application 與平台之間的流量合約。Application 啟動成功只代表 process 存活；readiness 代表必要設定、連線、migration 狀態、背景初始化、cache warmup 或依賴檢查已達到接流量條件。 可先對照 &lt;a href="https://tarrragon.github.io/blog/backend/knowledge-cards/redelivery-loop/" data-link-title="Redelivery Loop" data-link-desc="說明同一訊息反覆投遞失敗如何消耗 consumer 容量">Redelivery Loop&lt;/a>。&lt;/p>
&lt;h2 id="可觀察訊號">可觀察訊號&lt;/h2>
&lt;p>系統需要 readiness 合約的訊號是部署或擴容期間出現短暫錯誤。常見情境包括 pod 剛啟動就接流量、service discovery 尚未更新、cache 還在 warming、資料庫連線池尚未建立、背景 worker 尚未完成初始化。&lt;/p>
&lt;h2 id="接近真實網路服務的例子">接近真實網路服務的例子&lt;/h2>
&lt;p>Kubernetes rolling update 建立新 pod 後，若 readiness 太早通過，新 pod 可能在還沒載入設定時接到 checkout request。正確的 readiness 會等必要依賴可用、設定載入完成、核心路由可處理後再開放流量。&lt;/p>
&lt;h2 id="設計責任">設計責任&lt;/h2>
&lt;p>Readiness endpoint 要反映接流量所需的最小條件，並且控制下游短暫波動對流量調度的影響。設計時要分清 readiness、liveness 與深度依賴檢查，讓平台能做穩定調度。&lt;/p></description><content:encoded><![CDATA[<p>Readiness 的核心概念是「instance 是否已準備好接收正式流量」。部署平台或 load balancer 會根據 readiness 訊號決定是否把 request 導到該 instance。 可先對照 <a href="/blog/backend/knowledge-cards/redelivery-loop/" data-link-title="Redelivery Loop" data-link-desc="說明同一訊息反覆投遞失敗如何消耗 consumer 容量">Redelivery Loop</a>。</p>
<h2 id="概念位置">概念位置</h2>
<p>Readiness 是 application 與平台之間的流量合約。Application 啟動成功只代表 process 存活；readiness 代表必要設定、連線、migration 狀態、背景初始化、cache warmup 或依賴檢查已達到接流量條件。 可先對照 <a href="/blog/backend/knowledge-cards/redelivery-loop/" data-link-title="Redelivery Loop" data-link-desc="說明同一訊息反覆投遞失敗如何消耗 consumer 容量">Redelivery Loop</a>。</p>
<h2 id="可觀察訊號">可觀察訊號</h2>
<p>系統需要 readiness 合約的訊號是部署或擴容期間出現短暫錯誤。常見情境包括 pod 剛啟動就接流量、service discovery 尚未更新、cache 還在 warming、資料庫連線池尚未建立、背景 worker 尚未完成初始化。</p>
<h2 id="接近真實網路服務的例子">接近真實網路服務的例子</h2>
<p>Kubernetes rolling update 建立新 pod 後，若 readiness 太早通過，新 pod 可能在還沒載入設定時接到 checkout request。正確的 readiness 會等必要依賴可用、設定載入完成、核心路由可處理後再開放流量。</p>
<h2 id="設計責任">設計責任</h2>
<p>Readiness endpoint 要反映接流量所需的最小條件，並且控制下游短暫波動對流量調度的影響。設計時要分清 readiness、liveness 與深度依賴檢查，讓平台能做穩定調度。</p>
]]></content:encoded></item><item><title>Readiness / Health Check</title><link>https://tarrragon.github.io/blog/ci/knowledge-cards/readiness-health-check/</link><pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/ci/knowledge-cards/readiness-health-check/</guid><description>&lt;p>Readiness / Health Check 的核心概念是「服務活著」與「服務可接流量」是兩個不同訊號。部署放行通常依賴 readiness，而非僅看 process alive。&lt;/p>
&lt;h2 id="概念位置">概念位置&lt;/h2>
&lt;p>Readiness / Health Check 位在 rollout、load balancer 與 runtime platform 之間，是流量切換前的核心 gate。&lt;/p>
&lt;h2 id="可觀察訊號">可觀察訊號&lt;/h2>
&lt;ul>
&lt;li>部署後健康檢查綠燈但請求仍大量失敗。&lt;/li>
&lt;li>新版啟動中就提早接到流量。&lt;/li>
&lt;li>rollout 失敗時缺少可觀測放行條件。&lt;/li>
&lt;/ul>
&lt;h2 id="接近真實服務的例子">接近真實服務的例子&lt;/h2>
&lt;p>Kubernetes liveness 通過只代表 process 存活；readiness 通過才代表連線池、依賴服務與必要資料都已準備完成。&lt;/p>
&lt;h2 id="設計責任">設計責任&lt;/h2>
&lt;p>Readiness / Health Check 要定義檢查內容、容錯窗口與失敗處理，讓 rollout decision 有可信訊號。&lt;/p></description><content:encoded><![CDATA[<p>Readiness / Health Check 的核心概念是「服務活著」與「服務可接流量」是兩個不同訊號。部署放行通常依賴 readiness，而非僅看 process alive。</p>
<h2 id="概念位置">概念位置</h2>
<p>Readiness / Health Check 位在 rollout、load balancer 與 runtime platform 之間，是流量切換前的核心 gate。</p>
<h2 id="可觀察訊號">可觀察訊號</h2>
<ul>
<li>部署後健康檢查綠燈但請求仍大量失敗。</li>
<li>新版啟動中就提早接到流量。</li>
<li>rollout 失敗時缺少可觀測放行條件。</li>
</ul>
<h2 id="接近真實服務的例子">接近真實服務的例子</h2>
<p>Kubernetes liveness 通過只代表 process 存活；readiness 通過才代表連線池、依賴服務與必要資料都已準備完成。</p>
<h2 id="設計責任">設計責任</h2>
<p>Readiness / Health Check 要定義檢查內容、容錯窗口與失敗處理，讓 rollout decision 有可信訊號。</p>
]]></content:encoded></item></channel></rss>