<?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>Managed-Service on Tarragon</title><link>https://tarrragon.github.io/blog/tags/managed-service/</link><description>Recent content in Managed-Service on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Fri, 22 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/managed-service/index.xml" rel="self" type="application/rss+xml"/><item><title>Managed PostgreSQL Comparison</title><link>https://tarrragon.github.io/blog/backend/01-database/vendors/postgresql/managed-pg-comparison/</link><pubDate>Fri, 22 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/backend/01-database/vendors/postgresql/managed-pg-comparison/</guid><description>&lt;p>Managed PostgreSQL comparison 的核心責任是把「都是 PostgreSQL」拆成不同的操作責任邊界。Managed service 可能代管 backup、patch、replica、minor upgrade、monitoring、connection proxy、serverless scaling 或 branch workflow；但 application schema、query、migration、role、cost 與 incident decision 仍需要 team 承擔。&lt;/p>
&lt;p>本文的判讀錨點是：managed PostgreSQL 是 operation trade-off，而非 vendor-neutral checkbox。選型要看 workload、合規、extension、HA / DR、connection、cost visibility、exit route 與 team skill。&lt;/p>
&lt;p>官方文件路由的核心責任是固定 provider claim。實作前分別查 &lt;a href="https://docs.cloud.google.com/alloydb/docs">AlloyDB docs&lt;/a>、&lt;a href="https://cloud.google.com/sql/postgresql">Cloud SQL for PostgreSQL&lt;/a>、&lt;a href="https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview">Azure Database for PostgreSQL Flexible Server&lt;/a> 與 &lt;a href="https://supabase.com/docs/guides/deployment/branching">Supabase branching docs&lt;/a>；本文最後檢查日是 2026-05-22。&lt;/p>
&lt;h2 id="provider-boundary">Provider Boundary&lt;/h2>
&lt;p>Provider boundary 的核心責任是定義 vendor 接手哪些資料庫操作。&lt;/p>
&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>Cloud managed PostgreSQL&lt;/td>
 &lt;td>RDS PostgreSQL、Cloud SQL、Azure PG&lt;/td>
 &lt;td>標準 PostgreSQL、雲平台整合&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Aurora PostgreSQL-compatible&lt;/td>
 &lt;td>Amazon Aurora PostgreSQL&lt;/td>
 &lt;td>AWS 生態、高可用 storage layer、read scaling&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Serverless / branching PG&lt;/td>
 &lt;td>Neon、Supabase 部分能力&lt;/td>
 &lt;td>dev preview、稀疏 workload、快速分支&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Specialist managed PG&lt;/td>
 &lt;td>Crunchy Bridge 等&lt;/td>
 &lt;td>PostgreSQL 專業支援、extension 需求&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Self-managed&lt;/td>
 &lt;td>VM / K8s 上自管&lt;/td>
 &lt;td>需要完整控制、具備 DBA 能力&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>Provider boundary 要寫成 responsibility matrix。誰負責 backup restore、major upgrade、extension enable、failover、connection proxy、audit export、encryption key、support ticket 與 incident decision。&lt;/p>
&lt;p>Serverless / branching PG 這一列的 Neon 與 Supabase 不在同一個 &lt;a href="https://tarrragon.github.io/blog/backend/knowledge-cards/capability-outsourcing-depth/" data-link-title="Capability Outsourcing Depth（外包深度）" data-link-desc="說明外包一塊後端能力有三種深度（managed 基礎設施、feature SaaS、BaaS bundle）、深度決定保留多少控制權與遷出代價">外包深度&lt;/a>。Neon 是純 serverless PostgreSQL（managed 基礎設施）；Supabase 是把 Postgres 當其中一塊的 &lt;a href="https://tarrragon.github.io/blog/backend/knowledge-cards/baas/" data-link-title="BaaS（Backend as a Service）" data-link-desc="說明把認證、資料庫、檔案儲存、推播打包成現成模組、由前端 SDK 直連的後端交付形態">BaaS bundle&lt;/a>（同時含 Auth、Storage、Realtime）。只需要資料庫、兩者皆可比較且 Neon 更輕；要連認證、儲存一起到位、才是 Supabase 的賣點。這個外包深度差異與「該買整個 bundle 還是只用它的 Postgres」的判讀、見 &lt;a href="https://tarrragon.github.io/blog/backend/00-service-selection/capability-buy-vs-build/" data-link-title="0.22 能力級買 vs 建：feature-as-a-service 與 BaaS bundle 選型" data-link-desc="在交付形態決定整個系統要不要自建之後、逐能力判斷該外包還是自建：辨識 managed 基礎設施、feature SaaS 與 BaaS bundle 三種外包深度、no-code 到 dev-tool 的服務光譜、買 vs 建判準與權重浮動、整合接縫與遷出代價">0.22 能力級買 vs 建&lt;/a>。&lt;/p>
&lt;h2 id="evaluation-dimensions">Evaluation Dimensions&lt;/h2>
&lt;p>Evaluation dimensions 的核心責任是讓比較避免只看價格或品牌。&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>PostgreSQL fidelity&lt;/td>
 &lt;td>engine version、extension、parameter、superuser 限制&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>HA / DR&lt;/td>
 &lt;td>AZ failover、cross-region replica、PITR、restore drill&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Connection&lt;/td>
 &lt;td>max connection、pooler、proxy、serverless cold start&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Migration&lt;/td>
 &lt;td>import/export、logical replication、downtime window&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Observability&lt;/td>
 &lt;td>logs、metrics、slow query、audit、SIEM export&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Security&lt;/td>
 &lt;td>network、IAM、KMS、TLS、RLS / pgAudit support&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Cost&lt;/td>
 &lt;td>instance、storage、I/O、backup、egress、support&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Exit&lt;/td>
 &lt;td>dump、logical replication、snapshot portability&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>PostgreSQL fidelity 是第一關。若服務依賴 extension、logical decoding、superuser function、custom parameter 或 filesystem access，managed provider 的限制會直接影響可行性。&lt;/p></description><content:encoded><![CDATA[<p>Managed PostgreSQL comparison 的核心責任是把「都是 PostgreSQL」拆成不同的操作責任邊界。Managed service 可能代管 backup、patch、replica、minor upgrade、monitoring、connection proxy、serverless scaling 或 branch workflow；但 application schema、query、migration、role、cost 與 incident decision 仍需要 team 承擔。</p>
<p>本文的判讀錨點是：managed PostgreSQL 是 operation trade-off，而非 vendor-neutral checkbox。選型要看 workload、合規、extension、HA / DR、connection、cost visibility、exit route 與 team skill。</p>
<p>官方文件路由的核心責任是固定 provider claim。實作前分別查 <a href="https://docs.cloud.google.com/alloydb/docs">AlloyDB docs</a>、<a href="https://cloud.google.com/sql/postgresql">Cloud SQL for PostgreSQL</a>、<a href="https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview">Azure Database for PostgreSQL Flexible Server</a> 與 <a href="https://supabase.com/docs/guides/deployment/branching">Supabase branching docs</a>；本文最後檢查日是 2026-05-22。</p>
<h2 id="provider-boundary">Provider Boundary</h2>
<p>Provider boundary 的核心責任是定義 vendor 接手哪些資料庫操作。</p>
<table>
  <thead>
      <tr>
          <th>類型</th>
          <th>代表選項</th>
          <th>適合情境</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Cloud managed PostgreSQL</td>
          <td>RDS PostgreSQL、Cloud SQL、Azure PG</td>
          <td>標準 PostgreSQL、雲平台整合</td>
      </tr>
      <tr>
          <td>Aurora PostgreSQL-compatible</td>
          <td>Amazon Aurora PostgreSQL</td>
          <td>AWS 生態、高可用 storage layer、read scaling</td>
      </tr>
      <tr>
          <td>Serverless / branching PG</td>
          <td>Neon、Supabase 部分能力</td>
          <td>dev preview、稀疏 workload、快速分支</td>
      </tr>
      <tr>
          <td>Specialist managed PG</td>
          <td>Crunchy Bridge 等</td>
          <td>PostgreSQL 專業支援、extension 需求</td>
      </tr>
      <tr>
          <td>Self-managed</td>
          <td>VM / K8s 上自管</td>
          <td>需要完整控制、具備 DBA 能力</td>
      </tr>
  </tbody>
</table>
<p>Provider boundary 要寫成 responsibility matrix。誰負責 backup restore、major upgrade、extension enable、failover、connection proxy、audit export、encryption key、support ticket 與 incident decision。</p>
<p>Serverless / branching PG 這一列的 Neon 與 Supabase 不在同一個 <a href="/blog/backend/knowledge-cards/capability-outsourcing-depth/" data-link-title="Capability Outsourcing Depth（外包深度）" data-link-desc="說明外包一塊後端能力有三種深度（managed 基礎設施、feature SaaS、BaaS bundle）、深度決定保留多少控制權與遷出代價">外包深度</a>。Neon 是純 serverless PostgreSQL（managed 基礎設施）；Supabase 是把 Postgres 當其中一塊的 <a href="/blog/backend/knowledge-cards/baas/" data-link-title="BaaS（Backend as a Service）" data-link-desc="說明把認證、資料庫、檔案儲存、推播打包成現成模組、由前端 SDK 直連的後端交付形態">BaaS bundle</a>（同時含 Auth、Storage、Realtime）。只需要資料庫、兩者皆可比較且 Neon 更輕；要連認證、儲存一起到位、才是 Supabase 的賣點。這個外包深度差異與「該買整個 bundle 還是只用它的 Postgres」的判讀、見 <a href="/blog/backend/00-service-selection/capability-buy-vs-build/" data-link-title="0.22 能力級買 vs 建：feature-as-a-service 與 BaaS bundle 選型" data-link-desc="在交付形態決定整個系統要不要自建之後、逐能力判斷該外包還是自建：辨識 managed 基礎設施、feature SaaS 與 BaaS bundle 三種外包深度、no-code 到 dev-tool 的服務光譜、買 vs 建判準與權重浮動、整合接縫與遷出代價">0.22 能力級買 vs 建</a>。</p>
<h2 id="evaluation-dimensions">Evaluation Dimensions</h2>
<p>Evaluation dimensions 的核心責任是讓比較避免只看價格或品牌。</p>
<table>
  <thead>
      <tr>
          <th>維度</th>
          <th>審查問題</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>PostgreSQL fidelity</td>
          <td>engine version、extension、parameter、superuser 限制</td>
      </tr>
      <tr>
          <td>HA / DR</td>
          <td>AZ failover、cross-region replica、PITR、restore drill</td>
      </tr>
      <tr>
          <td>Connection</td>
          <td>max connection、pooler、proxy、serverless cold start</td>
      </tr>
      <tr>
          <td>Migration</td>
          <td>import/export、logical replication、downtime window</td>
      </tr>
      <tr>
          <td>Observability</td>
          <td>logs、metrics、slow query、audit、SIEM export</td>
      </tr>
      <tr>
          <td>Security</td>
          <td>network、IAM、KMS、TLS、RLS / pgAudit support</td>
      </tr>
      <tr>
          <td>Cost</td>
          <td>instance、storage、I/O、backup、egress、support</td>
      </tr>
      <tr>
          <td>Exit</td>
          <td>dump、logical replication、snapshot portability</td>
      </tr>
  </tbody>
</table>
<p>PostgreSQL fidelity 是第一關。若服務依賴 extension、logical decoding、superuser function、custom parameter 或 filesystem access，managed provider 的限制會直接影響可行性。</p>
<h2 id="workload-fit">Workload Fit</h2>
<p>Workload fit 的核心責任是把 provider 能力和產品需求對齊。</p>
<table>
  <thead>
      <tr>
          <th>Workload</th>
          <th>優先考量</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>SaaS OLTP</td>
          <td>HA、PITR、connection pool、online migration</td>
      </tr>
      <tr>
          <td>Analytics-heavy OLTP</td>
          <td>read replica、I/O cost、work_mem、warehouse boundary</td>
      </tr>
      <tr>
          <td>Dev / preview env</td>
          <td>branching、fast restore、low idle cost</td>
      </tr>
      <tr>
          <td>Regulated workload</td>
          <td>audit、KMS、network isolation、retention</td>
      </tr>
      <tr>
          <td>Extension-heavy app</td>
          <td>PostGIS、pgvector、TimescaleDB、logical decoding support</td>
      </tr>
  </tbody>
</table>
<p>Serverless / branching PG 適合 preview 與稀疏 workload，但 sustained high-throughput production 要審查 cold start、connection、storage separation latency 與 cost curve。</p>
<p>Aurora PostgreSQL 適合 AWS-heavy 架構與高可用 storage layer，但要審查 PostgreSQL compatibility、parameter 限制、I/O cost 與 migration / exit。</p>
<h2 id="migration-and-exit">Migration and Exit</h2>
<p>Migration and exit 的核心責任是避免 managed service 變成單向門。導入前要先知道如何進去、如何出來。</p>
<table>
  <thead>
      <tr>
          <th>流程</th>
          <th>Evidence</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Import</td>
          <td>dump / restore、logical replication、DMS</td>
      </tr>
      <tr>
          <td>Cutover</td>
          <td>freeze window、replica catch-up、validation</td>
      </tr>
      <tr>
          <td>Rollback</td>
          <td>source snapshot、write replay、DNS switch</td>
      </tr>
      <tr>
          <td>Exit</td>
          <td>pg_dump、logical replication、snapshot export</td>
      </tr>
      <tr>
          <td>Rehearsal</td>
          <td>staging restore、row count、checksum</td>
      </tr>
  </tbody>
</table>
<p>Exit route 要比口頭承諾更具體。至少要能在 staging 將資料匯出到 vanilla PostgreSQL 或下一個 managed provider，並跑 application smoke test。</p>
<h2 id="cost-review">Cost Review</h2>
<p>Cost review 的核心責任是把 managed convenience 轉成總成本。總成本包含 instance、storage、I/O、backup、replica、egress、support、observability、operation labor 與 incident cost。</p>
<table>
  <thead>
      <tr>
          <th>Cost driver</th>
          <th>常見誤判</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>I/O</td>
          <td>只看 instance price</td>
      </tr>
      <tr>
          <td>Backup retention</td>
          <td>長 retention 被忽略</td>
      </tr>
      <tr>
          <td>Cross-region replica</td>
          <td>data transfer / storage 增加</td>
      </tr>
      <tr>
          <td>Observability export</td>
          <td>log volume 與 SIEM 成本</td>
      </tr>
      <tr>
          <td>Serverless idle</td>
          <td>idle 低但 sustained workload 成本不同</td>
      </tr>
  </tbody>
</table>
<p>Cost review 要設 tripwire。當 I/O 成本占比提高、backup retention 變長、replica 增加或 serverless workload 變成常駐，重新評估方案。</p>
<h2 id="decision-route">Decision Route</h2>
<p>Decision route 的核心責任是把 provider 選型導向具體路線。</p>
<table>
  <thead>
      <tr>
          <th>需求</th>
          <th>優先路由</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>標準雲平台 PostgreSQL</td>
          <td>RDS / Cloud SQL / Azure PG</td>
      </tr>
      <tr>
          <td>AWS 生態 + HA storage layer</td>
          <td>Aurora PostgreSQL</td>
      </tr>
      <tr>
          <td>Preview branch / dev env</td>
          <td>Neon / Supabase branch workflow</td>
      </tr>
      <tr>
          <td>Extension / PG 專業支援</td>
          <td>specialist managed PG</td>
      </tr>
      <tr>
          <td>完整控制與特殊 extension</td>
          <td>self-managed PostgreSQL</td>
      </tr>
  </tbody>
</table>
<p>Managed provider 的最終選擇要回到 team skill。少維護元件是價值；把尚未理解的限制外包給 vendor，會在 incident 和 migration 時回來。</p>
<h2 id="下一步路由">下一步路由</h2>
<p>Managed PostgreSQL comparison 完成後，Aurora 遷移讀 <a href="../migrate-to-aurora/">PostgreSQL to Aurora Migration</a>；Aurora DSQL 讀 <a href="../migrate-to-aurora-dsql/">PostgreSQL to Aurora DSQL</a>；serverless / specialized variant 讀 <a href="../specialized-pg-variants/">Specialized PostgreSQL Variants</a>。</p>
]]></content:encoded></item></channel></rss>