<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Noah Grinstein</title>
    <description>The latest articles on DEV Community by Noah Grinstein (@noahcontrolplane).</description>
    <link>https://dev.to/noahcontrolplane</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4174139%2F487302f8-e41e-4e12-bec0-d721bcabfbea.jpg</url>
      <title>DEV Community: Noah Grinstein</title>
      <link>https://dev.to/noahcontrolplane</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/noahcontrolplane"/>
    <language>en</language>
    <item>
      <title>SaaS Uptime SLAs: What to Offer Enterprise Customers and How to Engineer 99.99% or Better</title>
      <dc:creator>Noah Grinstein</dc:creator>
      <pubDate>Mon, 02 Nov 2026 23:40:39 +0000</pubDate>
      <link>https://dev.to/noahcontrolplane/saas-uptime-slas-what-to-offer-enterprise-customers-and-how-to-engineer-9999-or-better-5947</link>
      <guid>https://dev.to/noahcontrolplane/saas-uptime-slas-what-to-offer-enterprise-customers-and-how-to-engineer-9999-or-better-5947</guid>
      <description>&lt;p&gt;Offer an SLA one step below what your architecture has proven it can deliver, commonly 99.9% for standard plans and 99.95% or 99.99% for enterprise plans, with clear measurement and service credits. 99.99% (about 52 minutes and 34 seconds of downtime per year) is hard to sustain end to end in a single region, because one region cannot survive a region-wide outage, and a single 15-hour regional outage uses about 17 years of four-nines error budget. The dependable path is active-active serving across at least two locations plus tested database failover. Control Plane runs a workload active-active across locations under a 99.999% availability SLA for workloads with at least two replicas in at least two locations, and those locations can be on different providers.&lt;/p&gt;

&lt;p&gt;Disclosure: Control Plane publishes this guide.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pick the SLA.&lt;/strong&gt; Set your external SLA below your internal SLO. 99.9% is a common enterprise baseline; 99.95% and 99.99% belong on premium and mission-critical tiers. Only promise what your architecture has sustained over multiple months.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Know the downtime math.&lt;/strong&gt; 99.99% allows 52 minutes and 34 seconds of downtime per year, or 4 minutes and 19 seconds per 30-day month. A single prolonged incident can exhaust your entire error budget.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architect for the tier.&lt;/strong&gt; Single-region multi-zone survives zone failures but not a region-wide outage. Active-passive multi-region adds recovery time. Active-active multi-region or multi-provider is the dependable path to 99.99% and beyond.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test failover regularly.&lt;/strong&gt; Run game days, drain one location at a time, and rehearse database promotion. Measure recovery time in every test.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How Control Plane fits.&lt;/strong&gt; A workload deployed to Control Plane’s Global Virtual Cloud (GVC), a set of locations a workload runs across, runs active-active in every location of that GVC. A global endpoint routes each request to the nearest healthy location, delivering failover without paying for idle standby capacity, under a 99.999% availability SLA for workloads with at least two replicas in at least two locations.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Uptime SLA Should a B2B SaaS Company Offer Enterprise Customers?
&lt;/h2&gt;

&lt;p&gt;Offer 99.9% on standard enterprise plans and 99.95% or 99.99% on premium tiers, set one step below an internal SLO your architecture has already met.&lt;/p&gt;

&lt;h3&gt;
  
  
  SLA vs. SLO vs. SLI
&lt;/h3&gt;

&lt;p&gt;These three terms are related but serve different purposes. A Service Level Indicator (SLI) is the metric you measure, such as the percentage of HTTP requests that return a successful response within 300 milliseconds. A Service Level Objective (SLO) is the internal target you set for that metric, for example 99.97% of requests succeed over a rolling 30-day window. A Service Level Agreement (SLA) is the contractual commitment you make to customers, backed by remedies like service credits if you miss it.&lt;/p&gt;

&lt;p&gt;Set the external SLA below the internal SLO. If your SLO is 99.97%, offer a 99.9% SLA. The error budget is 100% minus the SLO, here 0.03%, or about 13 minutes per 30-day month. When it runs out, teams slow releases and fix reliability. The gap between the SLO and the SLA is a safety margin, so a missed SLO triggers internal action before it triggers credits.&lt;/p&gt;

&lt;h3&gt;
  
  
  What to Put in the Contract
&lt;/h3&gt;

&lt;p&gt;A well-drafted uptime SLA needs several precise elements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Measurement method and window.&lt;/strong&gt; Define whether availability is calculated from synthetic health checks, production request success rates, or both. Specify the aggregation period, typically a calendar month or rolling 30-day window.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What counts as downtime.&lt;/strong&gt; State whether downtime means the API returns errors, the login page is unreachable, or a health-check endpoint fails. Be specific about which components are covered.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scheduled maintenance.&lt;/strong&gt; Exclude pre-announced maintenance windows from the downtime calculation, and state the minimum notice period, the maximum maintenance time per month, and the allowed time windows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exclusions.&lt;/strong&gt; Customer misconfigurations, force majeure events, beta features, and failures of services outside your control should be explicitly carved out.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Service credits.&lt;/strong&gt; Credits usually increase as availability drops. For example, the &lt;a href="https://aws.amazon.com/compute/sla/" rel="noopener noreferrer"&gt;AWS EC2 Region-Level SLA&lt;/a&gt; credits 10% of the monthly bill below 99.99%, 30% below 99.0%, and 100% below 95.0%. Many SaaS contracts cap total credits at a percentage of the monthly fee.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claim process.&lt;/strong&gt; Specify how customers submit credit requests, the evidence required, and the deadline for claims after an incident.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regional scope.&lt;/strong&gt; State whether availability is measured globally or per customer region. A global average can hide a full outage in the one region a customer uses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Partial degradation.&lt;/strong&gt; Define how elevated error rates, severe latency, or loss of a single feature count. A common approach counts a minute as down when the error rate exceeds a stated threshold.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chronic failure.&lt;/strong&gt; Enterprise buyers often ask for the right to terminate without penalty if the SLA is missed in several months within a set period.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits and liability.&lt;/strong&gt; State whether credits are the sole and exclusive remedy and whether they count toward the contract’s liability cap. Buyers negotiate both.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Common Tiers
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Typical SLA&lt;/th&gt;
&lt;th&gt;Suited For&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Self-serve / Starter&lt;/td&gt;
&lt;td&gt;Best effort or 99.5%&lt;/td&gt;
&lt;td&gt;Early adopters, non-critical workloads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Business&lt;/td&gt;
&lt;td&gt;99.9%&lt;/td&gt;
&lt;td&gt;Standard enterprise use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise&lt;/td&gt;
&lt;td&gt;99.95% or 99.99%&lt;/td&gt;
&lt;td&gt;Mission-critical applications, regulated industries&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Higher-tier SLAs justify premium pricing because they demand more infrastructure redundancy, tighter operational processes, and faster incident response.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Much Downtime Does Each SLA Allow?
&lt;/h2&gt;

&lt;p&gt;The table below is computed from 525,600 minutes per year, 43,200 minutes per 30-day month, and 10,080 minutes per week.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;SLA&lt;/th&gt;
&lt;th&gt;Downtime per Year&lt;/th&gt;
&lt;th&gt;Downtime per Month (30 days)&lt;/th&gt;
&lt;th&gt;Downtime per Week&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;99%&lt;/td&gt;
&lt;td&gt;5,256 min (3 days 15 hr 36 min)&lt;/td&gt;
&lt;td&gt;432 min (7 hr 12 min)&lt;/td&gt;
&lt;td&gt;100 min 48 sec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;99.5%&lt;/td&gt;
&lt;td&gt;2,628 min (1 day 19 hr 48 min)&lt;/td&gt;
&lt;td&gt;216 min (3 hr 36 min)&lt;/td&gt;
&lt;td&gt;50 min 24 sec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;99.9%&lt;/td&gt;
&lt;td&gt;525 min 36 sec (8 hr 45 min 36 sec)&lt;/td&gt;
&lt;td&gt;43 min 12 sec&lt;/td&gt;
&lt;td&gt;10 min 5 sec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;99.95%&lt;/td&gt;
&lt;td&gt;262 min 48 sec (4 hr 22 min 48 sec)&lt;/td&gt;
&lt;td&gt;21 min 36 sec&lt;/td&gt;
&lt;td&gt;5 min 2 sec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;99.99%&lt;/td&gt;
&lt;td&gt;52 min 34 sec&lt;/td&gt;
&lt;td&gt;4 min 19 sec&lt;/td&gt;
&lt;td&gt;1 min 0.5 sec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;99.999%&lt;/td&gt;
&lt;td&gt;5 min 15.4 sec&lt;/td&gt;
&lt;td&gt;25.9 sec&lt;/td&gt;
&lt;td&gt;6 sec&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;At 99.99%, a single five-minute outage wipes out more than a month’s error budget. At 99.999%, you have roughly 26 seconds per month. A human responder usually cannot be paged, diagnose the problem, and act within that budget, so detection and failover have to be automated.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do I Achieve 99.99% Uptime for a SaaS Application?
&lt;/h2&gt;

&lt;p&gt;Run active-active across at least two regions with automated health-based routing, give the database a tested failover path, and roll out changes one location at a time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Composite Availability: Why Dependencies Cap Your SLA
&lt;/h3&gt;

&lt;p&gt;When components are in series, meaning a request must pass through each one, their availabilities multiply. The composite availability formula is:&lt;/p&gt;

&lt;p&gt;A_composite = A_1 × A_2 × A_3 × … × A_n&lt;/p&gt;

&lt;p&gt;For example, if your API server has 99.99% availability and your database has 99.95% availability, the composite availability is 0.9999 × 0.9995 = 0.9994, or 99.94%. Your database just pulled your system below four nines even though your application tier met it.&lt;/p&gt;

&lt;p&gt;Adding redundancy helps. When two components operate in parallel so that the system fails only if both fail, the parallel availability formula is:&lt;/p&gt;

&lt;p&gt;A_parallel = 1 − (1 − A_1) × (1 − A_2)&lt;/p&gt;

&lt;p&gt;Two instances each at 99.9% yield 1 − (0.001 × 0.001) = 0.999999, or 99.9999%. That result assumes the two fail independently and that failover is instant. Real systems rarely meet either assumption. Replicas in the same region share power, network, and provider control-plane dependencies. Replicas running the same build share the same bugs. Replicas reading the same configuration fail together when that configuration is wrong. Treat the parallel result as an upper bound.&lt;/p&gt;

&lt;p&gt;Changes to a live system, meaning code deploys and configuration pushes, are a leading cause of outages; the &lt;a href="https://controlplane.com/blog/post/cloud-outage-tracker?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=saas-uptime-sla-enterprise-99-99" rel="noopener noreferrer"&gt;Control Plane Cloud Outage Tracker&lt;/a&gt; attributes 32% of major outages since 2020 to configuration or deployment changes. Redundancy does not protect against a bad change pushed to every location at once. Roll out changes one location at a time, gate each step on health metrics, and keep a fast rollback. Apply the same staged rollout to configuration, feature flags, and DNS changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture by Tier
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Single region, multi-zone.&lt;/strong&gt; Deploy across two or more availability zones in one cloud region. This protects against single-zone failures such as power or network issues within one zone. Cloud providers back multi-zone compute with SLAs as high as 99.99% (for example, the AWS EC2 Region-Level SLA), but that covers only the compute layer. Once databases, load balancers, and DNS are multiplied in, end-to-end availability is lower, and the design cannot survive a region-wide outage. Every major provider has had region-level &lt;a href="https://controlplane.com/blog/post/cloud-outage-tracker?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=saas-uptime-sla-enterprise-99-99" rel="noopener noreferrer"&gt;outages lasting hours&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Active-passive multi-region.&lt;/strong&gt; A primary region handles all traffic while a standby region stays ready. On failure, traffic is redirected to the standby. Recovery time depends on how quickly you detect the failure, promote databases, and reroute DNS. The standby infrastructure sits idle during normal operation, which means you pay for capacity that serves no traffic most of the time. For a deeper comparison, see &lt;a href="https://controlplane.com/blog/post/active-active-vs-active-passive-cost?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=saas-uptime-sla-enterprise-99-99" rel="noopener noreferrer"&gt;active-active vs. active-passive cost&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Active-active multi-region.&lt;/strong&gt; Every region serves live traffic simultaneously. A global load-balancing layer routes requests to the nearest healthy region. When health checks mark a location unhealthy, the load balancer stops sending it traffic. Failover speed depends on health-check intervals, failure thresholds, and DNS TTLs when routing is DNS-based. Surviving locations need enough spare capacity to absorb the lost traffic, and the database still needs its own failover design. It survives a full region outage without a recovery step, which is why it can sustain 99.99% and above. Every location serves production traffic, so no standby region sits idle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-provider.&lt;/strong&gt; Running across two or more cloud providers removes the single-provider risk. A region-wide outage on one provider does not affect locations on another. This adds complexity in identity, networking, and deployment but provides the strongest resilience posture. For a detailed breakdown of what each design can deliver, see &lt;a href="https://controlplane.com/blog/post/five-nines-uptime-architecture-what-single-region-multi-region-and-multi-cloud-designs-can-deliver?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=saas-uptime-sla-enterprise-99-99" rel="noopener noreferrer"&gt;five nines uptime architecture&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do I Fail Over a Database-Backed Application Between Cloud Regions?
&lt;/h2&gt;

&lt;p&gt;Database failover is the hardest part of multi-region resilience. The application tier is often stateless and easy to replicate, but the database holds state that must survive a region failure without corruption or data loss.&lt;/p&gt;

&lt;h3&gt;
  
  
  Managed Cross-Region Replicas with Promotion
&lt;/h3&gt;

&lt;p&gt;Major cloud databases offer cross-region replicas that can be promoted to primary on failure. &lt;a href="https://aws.amazon.com/rds/aurora/global-database/" rel="noopener noreferrer"&gt;Amazon Aurora Global Database&lt;/a&gt; replicates to secondary regions with typical lag under one second, and AWS says a secondary region can be promoted to read and write in under a minute. &lt;a href="https://docs.cloud.google.com/sql/docs/mysql/replication/cross-region-replicas" rel="noopener noreferrer"&gt;Cloud SQL&lt;/a&gt; supports cross-region read replicas that you promote manually, with replica failover and switchover on the Enterprise Plus edition. &lt;a href="https://learn.microsoft.com/en-us/azure/azure-sql/database/failover-group-sql-db?view=azuresql" rel="noopener noreferrer"&gt;Azure SQL Database failover groups&lt;/a&gt; replicate databases asynchronously to another region and keep the same connection endpoint after a failover. Promotion takes from under a minute to several minutes, depending on the service, replication lag, and DNS caching, and writes are unavailable during that window.&lt;/p&gt;

&lt;h3&gt;
  
  
  Synchronous vs. Asynchronous Replication
&lt;/h3&gt;

&lt;p&gt;Recovery Point Objective (RPO) is the most data, measured in time, you can afford to lose. Recovery Time Objective (RTO) is the longest the service can stay down before it is restored. Synchronous replication commits a write only after both the primary and secondary regions confirm it. This gives an RPO of zero, but every write waits for a round trip to the remote region, so latency grows with distance. It also ties write availability to the remote region: if the secondary is unreachable, the primary must either stop accepting writes or fall back to asynchronous mode and give up zero RPO. Asynchronous replication commits locally and ships changes to the secondary in the background. Writes are faster, but a failure can lose transactions that had not yet replicated, so RPO is above zero.&lt;/p&gt;

&lt;h3&gt;
  
  
  Distributed SQL Databases
&lt;/h3&gt;

&lt;p&gt;Databases like &lt;a href="https://www.cockroachlabs.com/" rel="noopener noreferrer"&gt;CockroachDB&lt;/a&gt; and &lt;a href="https://cloud.google.com/spanner" rel="noopener noreferrer"&gt;Google Cloud Spanner&lt;/a&gt; accept writes from clients in any region and use consensus replication (Raft in CockroachDB, Paxos in Spanner) to commit each write across regions. They provide strong consistency and automatic failover without manual promotion. The trade-off is write latency, because a write commits only after a majority of replicas acknowledge it, and some of those replicas may be in other regions. Surviving the loss of a full region requires replicas in at least three regions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fencing and Split-Brain Prevention
&lt;/h3&gt;

&lt;p&gt;When a primary region becomes unreachable, you must ensure it cannot continue accepting writes while the new primary is active. Fencing prevents split-brain, where two nodes both act as primary. Common methods are revoking the old primary’s network access or credentials, powering it off (often called STONITH), leader leases that expire, and fencing tokens, increasing numbers that storage checks so it rejects writes from a stale primary. Leases depend on bounded clock drift, so set lease timeouts with margin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Connection-String and DNS Changes
&lt;/h3&gt;

&lt;p&gt;After promotion, your application needs to reach the new primary. Strategies include DNS-based failover with low TTLs, connection proxies that abstract the primary endpoint, or application-level configuration that reads the current primary from a coordination service.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do I Test Failover Without Taking Production Down?
&lt;/h2&gt;

&lt;p&gt;Test failover in stages. Start in a non-production environment, then move to small, controlled slices of production traffic, with a rollback ready at every step. A failover path that has never been tested often fails when it is needed, and regular tests surface problems such as stale DNS records, expired credentials, and database promotion scripts that no longer work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Game Days
&lt;/h3&gt;

&lt;p&gt;Designate a scheduled window where your team deliberately triggers a failure scenario and practices the recovery process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Canary Traffic Slicing
&lt;/h3&gt;

&lt;p&gt;Fail over a small slice of traffic, such as internal users or a single tenant, to the secondary location. Observe behavior, latency, and error rates before committing to a full failover.&lt;/p&gt;

&lt;h3&gt;
  
  
  Draining One Location at a Time
&lt;/h3&gt;

&lt;p&gt;Remove one location from your load balancer and verify that all traffic shifts cleanly to remaining locations. This tests both the routing layer and the capacity of surviving locations to absorb the additional load.&lt;/p&gt;

&lt;h3&gt;
  
  
  Synthetic Checks
&lt;/h3&gt;

&lt;p&gt;Run synthetic transactions that exercise critical user flows, such as login, API calls, and data writes, from external vantage points. These catch failures that internal health checks miss, including DNS resolution problems, certificate expiration, and CDN misconfigurations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Chaos Engineering Tools
&lt;/h3&gt;

&lt;p&gt;Open-source projects like &lt;a href="https://chaos-mesh.org/" rel="noopener noreferrer"&gt;Chaos Mesh&lt;/a&gt; and &lt;a href="https://litmuschaos.io/" rel="noopener noreferrer"&gt;LitmusChaos&lt;/a&gt; inject faults into Kubernetes workloads, including pod kills, network partitions, and CPU stress. The major cloud providers offer their own fault injection services: &lt;a href="https://aws.amazon.com/fis/" rel="noopener noreferrer"&gt;AWS Fault Injection Service&lt;/a&gt;, &lt;a href="https://azure.microsoft.com/en-us/products/chaos-studio/" rel="noopener noreferrer"&gt;Azure Chaos Studio&lt;/a&gt;, and &lt;a href="https://docs.cloud.google.com/fault-injection-testing" rel="noopener noreferrer"&gt;Google Cloud Fault Injection Testing&lt;/a&gt; (in Preview). Some of these tools can simulate the loss of a zone or region without an actual outage; for example, AWS FIS includes an AZ power interruption scenario and a cross-Region connectivity scenario that blocks traffic to another region and pauses cross-region replication.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rollback Plan
&lt;/h3&gt;

&lt;p&gt;Every failover test needs a documented rollback path. If the failover itself causes unexpected issues, you need a way to restore the previous state quickly. Test the rollback too.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do I Stop Paying for Idle Disaster Recovery Infrastructure?
&lt;/h2&gt;

&lt;p&gt;Replace the standby region with active-active serving, where every location handles production traffic. Active-passive architectures require a standby region that consumes compute, storage, and database resources while serving no production traffic. You pay for capacity that exists solely to absorb a failover. In many organizations, this standby environment drifts out of sync with production because it receives less attention, fewer deployments, and less testing.&lt;/p&gt;

&lt;p&gt;In an active-active design, every location serves live traffic, and when one fails, the others absorb its load. Each location still needs headroom to take that load, but the headroom runs production traffic every day, so it is exercised constantly. The application tier has no cold start and no standby fleet to promote, though the database still needs its own failover design.&lt;/p&gt;

&lt;p&gt;On Control Plane, a workload deployed to a GVC runs active-active in every location of that GVC, and a global endpoint routes each request to the nearest healthy location. You get failover without paying for idle standby capacity. Customers typically cut compute costs 30 to 50 percent compared with running directly on AWS, GCP, or Azure.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do Financial Services Companies Stay Online During Cloud Outages?
&lt;/h2&gt;

&lt;p&gt;Financial services firms stay online by running active-active across at least two regions, often on more than one provider, mapping every external dependency, and proving recovery with drills they can show regulators. The &lt;a href="https://controlplane.com/blog/post/cloud-outage-tracker?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=saas-uptime-sla-enterprise-99-99" rel="noopener noreferrer"&gt;Control Plane Cloud Outage Tracker&lt;/a&gt; documents more than 60 major AWS, Azure, Google Cloud, and Cloudflare outages since 2020. No single region on any provider is immune.&lt;/p&gt;

&lt;p&gt;Regulated organizations combine these practices with regulatory requirements:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-region or multi-provider active-active.&lt;/strong&gt; Running in at least two regions, ideally on different providers, ensures that a single-region failure does not take down the service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regulatory expectations.&lt;/strong&gt; Regulators increasingly mandate operational resilience. The EU’s &lt;a href="https://eur-lex.europa.eu/eli/reg/2022/2554/oj" rel="noopener noreferrer"&gt;Digital Operational Resilience Act (DORA), Regulation (EU) 2022/2554&lt;/a&gt;, which applies from 17 January 2025, requires financial entities to identify, protect against, detect, respond to, and recover from ICT-related disruptions. It also requires them to manage ICT third-party risk, including concentration risk from relying on a small number of ICT providers such as cloud providers. Firms must run a digital operational resilience testing program, so recovery capabilities have to be tested as well as documented.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dependency mapping.&lt;/strong&gt; Catalog every external service your application depends on, including DNS providers, identity services, payment processors, and CDNs. Understand the availability of each and plan for its failure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regular drills.&lt;/strong&gt; Conduct failover exercises regularly; Google’s Well-Architected Framework suggests quarterly. Measure RTO and RPO in practice, not just on paper. Share results with leadership and regulators.&lt;/p&gt;

&lt;p&gt;For a practical guide to surviving a specific provider outage, see &lt;a href="https://controlplane.com/blog/post/keep-app-online-aws-region-outage?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=saas-uptime-sla-enterprise-99-99" rel="noopener noreferrer"&gt;how to keep your app online during an AWS region outage&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Questions Should a CIO Ask Vendors About Cloud Resilience, SLAs, and Multi-Failure Tolerance?
&lt;/h2&gt;

&lt;p&gt;Use this checklist when evaluating infrastructure vendors or SaaS providers for mission-critical workloads:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;What does your SLA cover?&lt;/strong&gt; Which services, endpoints, and features are included? Are there components excluded from the availability calculation?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How do you measure availability?&lt;/strong&gt; Is it based on synthetic checks, real user traffic, health-check endpoints, or a combination? What is the measurement interval?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What are the credit terms?&lt;/strong&gt; What percentage of the monthly fee is credited at each availability band? Is there a cap? Are credits the sole remedy, and can I terminate if you miss the SLA repeatedly? Is availability measured per region?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How many regions and providers do you operate in?&lt;/strong&gt; Can my workload run in more than one region simultaneously? More than one cloud provider?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How does your failover work?&lt;/strong&gt; Is it automatic or manual? What is the expected failover time? Is it active-active or active-passive?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How do you roll out changes?&lt;/strong&gt; Do code and configuration changes deploy one location at a time with health gates and automatic rollback? Can a single bad change reach every region at once?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How often do you test failover?&lt;/strong&gt; When was the last test? Can you share results or post-mortems?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What are your RTO and RPO?&lt;/strong&gt; Are these tested values or theoretical targets?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do you depend on a single region or provider?&lt;/strong&gt; What happens to my workload if that region or provider has a multi-hour outage?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do you publish incident history and post-mortems?&lt;/strong&gt; Is there a public status page with historical data?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How do you handle data durability?&lt;/strong&gt; Where are backups stored? Are they cross-region? How often are restores tested?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What are the exit terms?&lt;/strong&gt; Can I export my data and migrate away without penalty? What formats are available?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do you have a&lt;a href="https://controlplane.com/blog/post/best-cloud-disaster-recovery-solutions-for-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=saas-uptime-sla-enterprise-99-99" rel="noopener noreferrer"&gt;disaster recovery strategy&lt;/a&gt; that addresses multi-failure scenarios?&lt;/strong&gt; How do you handle simultaneous failures across zones or regions?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How Control Plane Approaches Uptime
&lt;/h2&gt;

&lt;p&gt;Control Plane is the platform for running unbreakable apps and agents. It combines locations on any cloud, neocloud, and bare metal into a single GVC.&lt;/p&gt;

&lt;p&gt;A workload deployed to a GVC runs active-active in every location of that GVC. A global endpoint routes each request to the nearest healthy location. Readiness probes, which can be HTTP, gRPC, TCP, or a command, decide when each replica can take traffic. When a location has no ready replicas, the global endpoint routes requests to another healthy location. The 99.999% availability SLA applies to workloads running at least two replicas in at least two locations. Those locations can be two regions of one cloud or locations on different providers, for example one AWS region and one neocloud location joined through Control Plane Managed Kubernetes (MK8s). Disabling a location in a GVC removes its replicas and routes traffic to the locations that remain, which turns a location drain into a one-step game-day test.&lt;/p&gt;

&lt;p&gt;Control Plane’s location routing options tune this per GVC. A routing tier sets priority: locations with the lowest tier number serve traffic, the lowest-latency location within that tier wins, and the next tier receives traffic only when every location in the higher-priority tier is unavailable. A latency offset makes a location appear closer or farther in milliseconds, which shifts more or less traffic to it.&lt;/p&gt;

&lt;p&gt;During the October 20, 2025 AWS us-east-1 outage, which lasted about 15 hours and affected 100+ AWS services in that region, 20 percent of Control Plane customers had us-east-1 in their GVC. Their workloads were “active and running in healthy locations within 10 seconds,” with no customer downtime, according to &lt;a href="https://controlplane.com/blog/post/beyond-backups-designing-systems-that-survive-the-inevitable?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=saas-uptime-sla-enterprise-99-99" rel="noopener noreferrer"&gt;Control Plane internal incident telemetry&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Control Plane handles Day 2 operations for you, including autoscaling, Capacity AI right-sizing (Control Plane’s right-sizing of CPU and memory based on historical usage), built-in observability, and security, with no Kubernetes cluster you have to operate. A tamper-proof audit trail records changes made through the Control Plane API, and built-in metrics, logs, and traces cover every location in one place.&lt;/p&gt;

&lt;p&gt;Control Plane runs serverless, standard, stateful, and cron workloads on AWS, GCP, and Azure and on Kubernetes clusters you already run, and runs VM workloads alongside them on your own servers, including on premises, turned into managed locations with MK8s. Many teams run Control Plane in a single region of one cloud for its Day 2 operations, and adding another region or provider later means adding a location to the GVC. Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant.&lt;/p&gt;

&lt;p&gt;Control Plane’s Universal Cloud Identity gives workloads short-lived, least-privilege access to 600+ AWS, GCP, and Azure services, with no long-lived cloud keys in your code.&lt;/p&gt;

&lt;p&gt;Databases still need a replication and failover design, and Control Plane helps there too. Stateful workloads give each replica its own persistent volume, and the Control Plane template catalog deploys databases built to span locations, including pgEdge active-active PostgreSQL with multi-master replication, a PostgreSQL cluster stretched across locations with automatic promotion in a surviving location, and CockroachDB. Pair one with the active-active application tier, in enough locations for the database’s quorum (three for CockroachDB), and both layers survive the loss of a location. Active-active serving with health-based routing removes any single replica, zone, or region as a point of failure for the application tier, and any single provider when the GVC spans providers. See also: &lt;a href="https://controlplane.com/blog/post/prevent-website-downtime?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=saas-uptime-sla-enterprise-99-99" rel="noopener noreferrer"&gt;how to prevent website downtime&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What uptime SLA should a B2B SaaS company offer enterprise customers?
&lt;/h3&gt;

&lt;p&gt;Offer 99.9% for standard enterprise plans and 99.95% or 99.99% for premium and mission-critical tiers. Set the external SLA one step below your proven internal SLO so you maintain error budget headroom. Only commit to an SLA your architecture has sustained over multiple months of production operation.&lt;/p&gt;

&lt;h3&gt;
  
  
  How much downtime does 99.99% uptime allow per year?
&lt;/h3&gt;

&lt;p&gt;99.99% uptime allows 52 minutes and 34 seconds of downtime per year, computed from 525,600 total minutes in a year. Per 30-day month, that is 4 minutes and 19 seconds. A single extended incident can exhaust the entire annual budget.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I achieve 99.99% uptime for a SaaS application?
&lt;/h3&gt;

&lt;p&gt;Deploy active-active across at least two regions with automated health-based failover, redundant databases with tested promotion, zero-downtime deployments rolled out one location at a time, and external synthetic monitoring. Single-region multi-zone architectures struggle to sustain 99.99% end to end because they cannot survive a region-wide outage.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between an SLA, SLO, and SLI?
&lt;/h3&gt;

&lt;p&gt;An SLI is the metric you measure, such as request success rate. An SLO is your internal target for that metric. An SLA is the contractual commitment to customers, backed by remedies like service credits. The SLA should always be set below the SLO.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I fail over a database between cloud regions?
&lt;/h3&gt;

&lt;p&gt;Options include managed cross-region replicas with promotion, synchronous replication for zero RPO, asynchronous replication for lower latency with non-zero RPO, and distributed SQL databases that accept writes in every region. Fencing mechanisms prevent split-brain, and you must rehearse promotion regularly.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I test failover without causing an outage?
&lt;/h3&gt;

&lt;p&gt;Run game days with deliberate failure injection, drain one location at a time to verify traffic shifts cleanly, use chaos engineering tools like Chaos Mesh or LitmusChaos, and test with a canary slice of traffic before full failover. Always have a documented rollback plan.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does Control Plane deliver 99.999% availability?
&lt;/h3&gt;

&lt;p&gt;Control Plane’s 99.999% availability SLA applies to workloads running at least two replicas in at least two locations, and those locations can be on different providers. Each workload runs active-active in every location of its Global Virtual Cloud (GVC), readiness probes decide which replicas take traffic, and a global endpoint routes each request to the nearest healthy location. During the October 2025 AWS us-east-1 outage, affected customers’ workloads were active in healthy locations within 10 seconds, according to Control Plane internal incident telemetry.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I stop paying for idle disaster recovery infrastructure?
&lt;/h3&gt;

&lt;p&gt;Use an active-active architecture where every location serves live traffic instead of active-passive where standby capacity sits idle. On Control Plane, workloads run active-active in every location of the GVC, so you get automatic failover without paying for idle standby capacity.&lt;/p&gt;

&lt;h3&gt;
  
  
  What questions should I ask vendors about cloud resilience?
&lt;/h3&gt;

&lt;p&gt;Ask about SLA scope and measurement method, credit terms and caps, number of regions and providers, failover design and test frequency, how changes roll out across locations, tested RTO and RPO, dependency on a single region or provider, incident history and post-mortems, status page availability, data durability, and exit terms.&lt;/p&gt;

&lt;h3&gt;
  
  
  How can my company avoid being taken down by the next major cloud outage?
&lt;/h3&gt;

&lt;p&gt;Run active-active across at least two regions, ideally on more than one provider. Map all dependencies, test failover quarterly, and monitor from external vantage points. Every major provider has had multi-hour regional outages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://controlplane.com/requestdemo?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=saas-uptime-sla-enterprise-99-99" rel="noopener noreferrer"&gt;Talk to the Control Plane team&lt;/a&gt; or &lt;a href="https://console.cpln.io/signup" rel="noopener noreferrer"&gt;sign up free&lt;/a&gt; to try it.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://controlplane.com/blog/post/saas-uptime-sla-enterprise-99-99?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=saas-uptime-sla-enterprise-99-99" rel="noopener noreferrer"&gt;Control Plane blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>sre</category>
      <category>devops</category>
      <category>cloud</category>
      <category>saas</category>
    </item>
    <item>
      <title>Build vs Rent GPUs: A Break-Even Model for AI Compute in 2026</title>
      <dc:creator>Noah Grinstein</dc:creator>
      <pubDate>Mon, 02 Nov 2026 23:39:40 +0000</pubDate>
      <link>https://dev.to/noahcontrolplane/build-vs-rent-gpus-a-break-even-model-for-ai-compute-in-2026-1b00</link>
      <guid>https://dev.to/noahcontrolplane/build-vs-rent-gpus-a-break-even-model-for-ai-compute-in-2026-1b00</guid>
      <description>&lt;p&gt;Owning GPUs is cheaper than renting only when you keep them busy enough over their useful life to clear a break-even utilization, so the decision turns on sustained utilization, the all-in cost of owning (hardware, power, cooling, networking, space, staff, and depreciation), and how fast your needs change. Most teams end up hybrid, owning a steady base and renting for peaks and new hardware generations. On Control Plane, one Global Virtual Cloud (GVC), Control Plane’s named set of locations that a workload runs across, can include GPU servers you own and rented cloud GPUs, so the build-versus-rent split changes by adding or removing locations instead of re-platforming.&lt;/p&gt;

&lt;p&gt;Disclosure: Control Plane publishes this guide.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Ownership wins on cost when sustained GPU utilization stays high over the hardware’s useful life. Renting wins when demand is variable, scale is small, or you need access to the latest generation quickly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The break-even rule.&lt;/strong&gt; Owned cost per useful GPU-hour must fall below the rented price per GPU-hour. That crossover depends mainly on utilization, useful life, hardware cost, operating cost, and the rental rate you can get.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What TCO must include.&lt;/strong&gt; Hardware, high-speed networking, storage, power, cooling, rack space or colocation, spares, maintenance, staff, software, and financing cost on the own side, with hardware amortized over its useful life. Per-GPU-hour or reserved pricing, storage, egress, networking, support tier, and idle reserved capacity on the rent side.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Neocloud vs hyperscaler.&lt;/strong&gt; GPU-focused neoclouds often list lower per-GPU-hour prices because they run leaner service stacks, but hyperscalers bundle ecosystem services, broader compliance attestations, and availability guarantees that can offset the sticker difference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Procurement and compliance factors.&lt;/strong&gt; GPU and server lead times, data center power and cooling capacity, network gear availability, data residency requirements, and attestation coverage all constrain the decision beyond pure cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How Control Plane fits.&lt;/strong&gt; On Control Plane, one GVC can include rented GPU capacity and GPU servers you own, which join as locations through Managed Kubernetes (MK8s), Control Plane’s way of turning your own servers into managed locations. A new location that offers the same GPU model runs every workload in the GVC, so the owned-versus-rented mix changes without editing workloads. GPU Ocean, Control Plane’s approach to pulling GPU capacity from any provider, works today through MK8s.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How do I estimate total cost of ownership for AI infrastructure with GPU clusters and networking?
&lt;/h2&gt;

&lt;p&gt;A rigorous TCO comparison requires enumerating every cost line, not just GPU purchase price or hourly rental rate. The table below lists every category you should account for, separated by ownership model and cost frequency.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Owning&lt;/th&gt;
&lt;th&gt;Renting&lt;/th&gt;
&lt;th&gt;One-Time or Recurring&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPU servers (GPUs, CPUs, memory, chassis)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;One-time (amortized)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;High-speed networking (InfiniBand or RoCE switches, optics, cables)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;One-time (amortized)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage (NVMe, networked file systems)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Included or add-on&lt;/td&gt;
&lt;td&gt;One-time (amortized) + recurring maintenance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Power (electricity for compute)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Included in hourly price&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cooling (CRAC units, liquid cooling loops, chilled water)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Included&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rack space or colocation fees&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spares and warranty replacements&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maintenance contracts (vendor support)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Staff (infrastructure engineers, on-call)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Reduced&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Software (orchestration, monitoring, security)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Partial overlap&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Financing cost (interest or opportunity cost of capital)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Depreciation (the amortized hardware rows above, not an extra cost)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Accounting (already counted in (H − S) / L)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPU failures and RMA turnaround (capacity lost while parts are out)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No (provider replaces)&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cluster software licenses (for example NVIDIA AI Enterprise, a per-GPU subscription)&lt;/td&gt;
&lt;td&gt;Yes, if used&lt;/td&gt;
&lt;td&gt;Yes, if used&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Insurance for owned equipment&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Decommissioning, data destruction, and resale value at end of life&lt;/td&gt;
&lt;td&gt;Yes (resale offsets cost)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;One-time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time to deploy (procurement, power, and install lead time before the cluster earns value)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Short&lt;/td&gt;
&lt;td&gt;One-time (opportunity cost)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Per-GPU-hour or reserved pricing&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data egress and transit&lt;/td&gt;
&lt;td&gt;Yes (IP transit and cross-connects, often billed on committed bandwidth)&lt;/td&gt;
&lt;td&gt;Yes (usually per GB)&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloud networking (VPC, load balancers)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Support tier (premium support plans)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Idle reserved capacity (committed instances not fully used)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;When building your own TCO model, assign each line a dollar value per year (or amortize one-time costs over the useful life you assume for the hardware). The sum of all owned lines divided by the number of productive GPU-hours gives you the true cost of ownership per GPU-hour, which is the number you compare against a rental quote.&lt;/p&gt;

&lt;p&gt;For a broader comparison of cloud, on-premises, and hybrid cost structures, see Control Plane’s &lt;a href="https://controlplane.com/blog/post/cloud-vs-on-premises-vs-hybrid-cost?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=build-vs-rent-gpus-break-even-model" rel="noopener noreferrer"&gt;cloud vs on-premises vs hybrid cost guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I evaluate ROI for building a GPU data center versus renting AI infrastructure capacity?
&lt;/h2&gt;

&lt;p&gt;Owning returns more than renting once your sustained utilization exceeds the break-even level defined below.&lt;/p&gt;

&lt;h3&gt;
  
  
  The break-even model
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Variables:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;H&lt;/code&gt; = total hardware cost (GPU servers, networking, storage, all one-time capex)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;S&lt;/code&gt; = expected resale value at end of life, minus decommissioning cost (use 0 if unsure)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;L&lt;/code&gt; = useful life in years (the period over which you amortize hardware)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;O&lt;/code&gt; = yearly operating cost (power, cooling, rack space or colocation, IP transit, spares, maintenance, insurance, staff, software and licenses, financing cost)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;N&lt;/code&gt; = number of GPUs in the cluster&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;U&lt;/code&gt; = average utilization (fraction of time GPUs are doing productive work, 0 to 1)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;R&lt;/code&gt; = rented cost per productive GPU-hour. For on-demand capacity you release when idle, use the hourly price. For reserved or committed capacity you pay for whether or not it is busy, use the committed hourly price divided by that capacity’s own utilization.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Owned cost per useful GPU-hour:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Owned cost per hour = ((H − S) / L + O) / (N × 8,760 × U)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The numerator is total yearly cost (amortized hardware plus operating expenses). The denominator is the number of useful GPU-hours produced per year.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Break-even condition:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ownership is cheaper when &lt;code&gt;Owned cost per hour &amp;lt; R&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Break-even utilization:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Rearranging for the utilization at which owned cost equals rented cost:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;U_breakeven = ((H − S) / L + O) / (N × 8,760 × R)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If your expected utilization exceeds &lt;code&gt;U_breakeven&lt;/code&gt;, owning is cheaper. If it falls below, renting is cheaper. If &lt;code&gt;U_breakeven&lt;/code&gt; comes out above 1, ownership cannot beat that rental rate at any utilization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to read the model.&lt;/strong&gt; Plug in your own numbers for hardware quotes, local power rates, colocation fees, staffing costs, and the best rental rate you can negotiate. Run the model at multiple useful-life assumptions (two years, three years, four years) because GPU generations can shift the resale and relevance window.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sensitivity: what moves the answer
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable&lt;/th&gt;
&lt;th&gt;Change&lt;/th&gt;
&lt;th&gt;Effect on Break-Even Utilization&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Actual utilization (&lt;code&gt;U&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;td&gt;No effect on break-even utilization; moves you further above it, so ownership wins by more&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resale value (&lt;code&gt;S&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;td&gt;Lowers net hardware cost, lowers break-even utilization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Useful life (&lt;code&gt;L&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Longer&lt;/td&gt;
&lt;td&gt;Lowers amortized hardware cost per year, lowers break-even utilization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Power price&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;td&gt;Raises yearly operating cost, raises break-even utilization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rented price discount (commitments)&lt;/td&gt;
&lt;td&gt;Deeper discount&lt;/td&gt;
&lt;td&gt;Lowers &lt;code&gt;R&lt;/code&gt;, raises break-even utilization (harder to beat renting)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Staff cost&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;td&gt;Raises yearly operating cost, raises break-even utilization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hardware purchase price (&lt;code&gt;H&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;td&gt;Raises amortized cost, raises break-even utilization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cluster size (&lt;code&gt;N&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Larger&lt;/td&gt;
&lt;td&gt;Lowers break-even utilization only if per-GPU cost falls with scale (shared staff, volume pricing); larger fabrics can add networking cost per GPU&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  How do I budget GPU hosting versus building my own?
&lt;/h3&gt;

&lt;p&gt;Structure the budget as a three-year plan with a review point when the next GPU generation ships. In year one, allocate capex (if building) or committed reservations (if renting), plus all operating lines. In years two and three, project operating costs with an escalation factor for power and staffing, and write down the hardware on your depreciation schedule for accounting. At the review point, run the model again for new purchases with updated rental rates and next-generation hardware prices. For hardware you already own, the purchase price is sunk: keep it while its operating cost plus the resale value you give up is below the cost of renting the same work. If the new generation delivers meaningfully more performance per watt or per dollar, that test can favor a shift toward renting the new generation while continuing to run owned hardware for workloads that do not need the upgrade.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is it cheaper to run GPU workloads on a neocloud than on AWS?
&lt;/h2&gt;

&lt;p&gt;GPU-focused neoclouds often list lower per-GPU-hour prices than the major hyperscalers. Neoclouds build fleets optimized for GPU density, carry fewer bundled services, and compete primarily on price and availability for AI workloads. Hyperscalers bundle extensive ecosystem services (managed databases, identity, networking, ML tooling), broader compliance attestation coverage, and multi-region availability guarantees that can offset the sticker-price gap.&lt;/p&gt;

&lt;p&gt;Factors that can narrow or reverse the neocloud price advantage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Egress fees.&lt;/strong&gt; Moving large datasets or model artifacts off a provider adds cost that is easy to overlook.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage.&lt;/strong&gt; High-performance storage for training data and checkpoints varies widely in pricing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support and SLAs.&lt;/strong&gt; Enterprise support tiers and uptime guarantees differ.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contract terms.&lt;/strong&gt; Commitment length, cancellation penalties, and price-lock provisions matter over a multi-year horizon.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance scope.&lt;/strong&gt; Not every provider holds the same attestations in every region.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ecosystem services.&lt;/strong&gt; If your pipeline depends on managed services (vector databases, model registries, logging), switching providers may require replacing those services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prices change often. Always compare current pricing pages before making a commitment. What each major provider offers, from its own official pages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://aws.amazon.com/ec2/" rel="noopener noreferrer"&gt;AWS EC2&lt;/a&gt; offers GPU instances across families such as P5, P6, and G6 with on-demand, reserved, and spot pricing, plus deep integration with SageMaker and other ML services.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cloud.google.com/gpu" rel="noopener noreferrer"&gt;Google Cloud GPUs&lt;/a&gt; provides A2, A3, A4, and A4X accelerator-optimized and G2 and G4 graphics-optimized machine series alongside TPU access, integrated with Gemini Enterprise Agent Platform (formerly Vertex AI).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/overview#gpu-accelerated" rel="noopener noreferrer"&gt;Microsoft Azure GPU VMs&lt;/a&gt; includes ND and NC series instances with Azure Machine Learning integration.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.coreweave.com/" rel="noopener noreferrer"&gt;CoreWeave&lt;/a&gt; is a GPU-specialized cloud built on Kubernetes (CoreWeave Kubernetes Service), offering NVIDIA GPUs from A100 and H100 through B200, B300, and GB300 NVL72.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://lambda.ai/instances" rel="noopener noreferrer"&gt;Lambda&lt;/a&gt; offers on-demand GPU instances, 1-Click Clusters of interconnected NVIDIA HGX B200 and H100 GPUs, and larger Superclusters for ML training and inference.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nebius.com/" rel="noopener noreferrer"&gt;Nebius&lt;/a&gt; offers GPU clusters with InfiniBand networking for large-scale AI training.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a more detailed comparison of these and other providers, see the &lt;a href="https://controlplane.com/blog/post/best-gpu-cloud-providers-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=build-vs-rent-gpus-break-even-model" rel="noopener noreferrer"&gt;best GPU cloud providers for 2026&lt;/a&gt; roundup.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I evaluate capacity constraints and lead times when procuring GPUs for AI infrastructure expansion?
&lt;/h2&gt;

&lt;p&gt;Cost modeling assumes you can actually get the hardware or capacity when you need it. In practice, procurement constraints shape the decision as much as price.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GPU and server lead times.&lt;/strong&gt; Demand for current-generation GPUs has often outpaced supply, which can stretch lead times. Lead times for servers vary by OEM, configuration, and order volume. Check with your vendor for current estimates rather than relying on published figures that may be outdated.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data center power and cooling capacity.&lt;/strong&gt; Dense GPU racks draw significantly more power than standard compute. Rack-scale systems such as &lt;a href="https://www.nvidia.com/en-us/data-center/gb200-nvl72/" rel="noopener noreferrer"&gt;NVIDIA GB200 NVL72&lt;/a&gt; use a liquid-cooled design, and not all colocation facilities support liquid cooling. Securing power capacity in a desired market can take months or longer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network gear lead times.&lt;/strong&gt; InfiniBand switches, high-speed optics, and cabling have their own supply chains. A server cannot join a training cluster until its fabric is installed, so order both together.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reserved capacity commitments in the cloud.&lt;/strong&gt; Hyperscalers and neoclouds offer reserved instances or committed-use contracts, but availability of specific GPU models in specific regions is not guaranteed. Quota limits may restrict how many GPUs you can provision without a quota increase request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generational timing risk.&lt;/strong&gt; Buying a large fleet of current-generation GPUs shortly before the next generation ships accelerates depreciation and may leave you with less competitive hardware. Stagger purchases or use shorter commitment windows to manage this risk.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What factors determine GPU hosting versus private cloud for compliant AI infrastructure workloads?
&lt;/h2&gt;

&lt;p&gt;Data residency, attestation coverage, GPU tenant isolation, where prompts and model weights are stored, audit logging, and exit terms decide between hosted GPUs and a private cloud. If a provider cannot meet one of these in the region you need, private or self-hosted capacity wins regardless of price.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which GPU hosting providers are best for developers and AI users who need compliance and privacy?
&lt;/h3&gt;

&lt;p&gt;The best providers for compliance-sensitive AI work hold your required attestations in your target region, offer dedicated GPU hosts, and state in writing that they do not retain prompts or outputs. Use this checklist to test any provider or self-hosted environment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data residency.&lt;/strong&gt; Confirm that the provider offers GPU capacity in the specific countries or regions your data must remain in. Not all GPU instance types are available in all regions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attestations.&lt;/strong&gt; Verify that the provider holds the attestations your workload requires (for example SOC 2 Type II, PCI DSS, ISO 27001) and, for HIPAA data, whether it will sign a business associate agreement (BAA), in the specific region you plan to use. Attestation scope can vary by region and service.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tenant isolation for GPUs.&lt;/strong&gt; Understand whether GPU memory is isolated between tenants, whether you get dedicated or shared GPU hosts, and how the provider handles GPU memory clearing between workloads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model weight and prompt storage.&lt;/strong&gt; Know where model weights, input prompts, and inference outputs are stored, cached, and logged. Confirm whether the provider retains any of this data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs.&lt;/strong&gt; Ensure the provider supplies audit logs for access, configuration changes, and data movement that meet your compliance framework’s requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exit terms.&lt;/strong&gt; Review data deletion guarantees, data export mechanisms, and contract termination provisions before signing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant. When you join your own GPU servers as locations with Control Plane Managed Kubernetes (MK8s), your workloads and the data they process run on your hardware, while Control Plane manages Kubernetes, orchestration, and routing and collects the logs and metrics behind its built-in observability.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I compare GPUs versus ASIC accelerators for AI compute cost, performance, and availability?
&lt;/h2&gt;

&lt;p&gt;Cloud ASICs can cost less per hour for models they support, while GPUs run on any provider and on hardware you own. GPUs, particularly NVIDIA’s lineup, offer broad framework support (PyTorch, JAX, TensorFlow) and portability across providers. A model trained on NVIDIA GPUs in one environment generally runs on NVIDIA GPUs in another with little or no code change, provided CUDA, driver, and framework versions are compatible.&lt;/p&gt;

&lt;p&gt;Cloud-specific ASICs take a different approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://cloud.google.com/tpu" rel="noopener noreferrer"&gt;Google Cloud TPUs&lt;/a&gt; are custom-designed accelerators optimized for large-scale training and inference. They can deliver strong price-performance for supported model architectures, work with JAX, PyTorch, and TensorFlow, usually with TPU-specific tuning, and are available only on Google Cloud.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://aws.amazon.com/ai/machine-learning/trainium/" rel="noopener noreferrer"&gt;AWS Trainium and Inferentia&lt;/a&gt; are purpose-built chips for training (Trainium) and inference (Inferentia). They offer competitive pricing for supported models but require the AWS Neuron SDK and run only on AWS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ASICs can lower per-hour cost for workloads that fit their supported frameworks and model architectures, but they tie you to a single cloud provider and toolchain. If your strategy depends on portability between owned and rented infrastructure, or between multiple providers, GPUs remain the safer choice. If you are committed to a single cloud and your models are well-supported by that cloud’s ASIC toolchain, the cost savings may justify the lock-in.&lt;/p&gt;

&lt;h2&gt;
  
  
  How can I invest in AI infrastructure that will withstand rising hardware costs?
&lt;/h2&gt;

&lt;p&gt;To limit exposure to rising hardware costs, keep workloads portable, spread purchases across GPU generations and providers, and cut the GPU-hours each request needs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keep workloads portable in containers.&lt;/strong&gt; Containerized workloads can move between owned GPU servers and rented cloud GPUs without rewriting application code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avoid over-buying a single generation.&lt;/strong&gt; Stagger hardware purchases across GPU release cycles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mix providers.&lt;/strong&gt; Spreading GPU capacity across multiple providers or between owned and rented infrastructure reduces dependency on any single vendor’s pricing, availability, or roadmap.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measure utilization before buying.&lt;/strong&gt; Run workloads on rented GPUs first to establish real utilization patterns, then apply the break-even model above to decide whether ownership is justified.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep model serving efficient.&lt;/strong&gt; Quantization (running models at lower precision), dynamic batching, and efficient model architectures reduce the number of GPU-hours each request consumes, lowering cost regardless of whether you own or rent. For a deeper look at running inference across multiple GPU sources, see &lt;a href="https://controlplane.com/blog/post/ai-inference-multiple-gpu-clouds?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=build-vs-rent-gpus-break-even-model" rel="noopener noreferrer"&gt;AI inference on multiple GPU clouds&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use shorter commitments.&lt;/strong&gt; One-year reserved instances or month-to-month colocation contracts preserve the ability to shift strategy when the next GPU generation arrives or rental prices drop.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How Control Plane approaches build-versus-rent
&lt;/h2&gt;

&lt;p&gt;Control Plane is the platform for running unbreakable apps and agents. It combines any cloud, neocloud, and bare metal into a Global Virtual Cloud (GVC). A workload deployed to a GVC runs active-active in every location of that GVC, and a global endpoint routes each request to the nearest healthy location.&lt;/p&gt;

&lt;p&gt;On Control Plane, GPU servers you own or colocate join the GVC as managed locations through MK8s. Rented GPU servers or Kubernetes clusters from a cloud or neocloud join the same GVC as additional locations through MK8s or BYOK (Bring Your Own Kubernetes, Control Plane’s option for connecting an existing cluster). GPU Ocean lets you pull GPU capacity from any provider, which you can do today with MK8s by joining GPU servers as locations.&lt;/p&gt;

&lt;p&gt;A workload’s GPU request applies in every location of its GVC, so group locations that offer the same GPU model. Put owned GPU locations in a higher-priority routing tier and rented locations in a lower one. Control Plane sends traffic to the lower tier only when every location in the higher tier is unavailable, and within a tier a latency offset makes a location more or less likely to receive traffic. Your owned GPU servers serve normal traffic, and rented GPUs take over if owned locations become unavailable, with no change to the workload. Rented locations still run the workload’s minimum replicas while on standby, so count those GPU-hours at the committed rate when you calculate R.&lt;/p&gt;

&lt;p&gt;On Control Plane-managed GPUs, drivers are installed automatically and Control Plane keeps driver versions current. Control Plane-managed regions offer NVIDIA T4 and A10G. For other GPU models, MK8s joins GPU servers you own or rent from neoclouds as additional locations. GPU workloads get the same Day 2 operations as any other workload on Control Plane, including built-in logs, metrics, and traces, mTLS with a deny-by-default internal firewall, and a tamper-proof audit trail, and MK8s locations expose full Kubernetes for teams that want operators or Helm charts.&lt;/p&gt;

&lt;p&gt;As you acquire more owned capacity, add those servers as locations, and as you scale down, remove rented locations. Changing the owned-versus-rented mix only changes the GVC’s location list, not the workload. Adopting a new GPU generation can mean updating that request or deploying to a GVC built around the new model. Control Plane’s Universal Cloud Identity gives workloads short-lived, least-privilege access to 600+ AWS, GCP, and Azure services, with no long-lived cloud keys in your code, so a GPU job on your own servers can read training data from Amazon S3 or Google Cloud Storage without stored keys.&lt;/p&gt;

&lt;p&gt;Control Plane’s 99.999% availability SLA applies to workloads running at least two replicas in at least two locations, and those locations can be on different providers, such as an owned MK8s location and a cloud region. Customers typically cut compute costs 30 to 50 percent compared with running directly on AWS, GCP, or Azure. That figure covers general compute; GPU rates are listed per GPU-hour on the pricing page.&lt;/p&gt;

&lt;p&gt;For practical guidance on combining GPU capacity from multiple sources, see &lt;a href="https://controlplane.com/blog/post/how-to-combine-gpu-capacity-across-providers?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=build-vs-rent-gpus-break-even-model" rel="noopener noreferrer"&gt;how to combine GPU capacity across providers&lt;/a&gt;. For the infrastructure requirements behind an inference layer, see &lt;a href="https://controlplane.com/blog/post/what-infrastructure-do-you-need-to-run-an-inference-layer?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=build-vs-rent-gpus-break-even-model" rel="noopener noreferrer"&gt;what infrastructure do you need to run an inference layer&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is it cheaper to buy or rent GPUs for AI workloads in 2026?
&lt;/h3&gt;

&lt;p&gt;Buying is cheaper only when sustained utilization exceeds the break-even level from this formula: &lt;code&gt;U_breakeven = ((H − S) / L + O) / (N × 8,760 × R)&lt;/code&gt;, where &lt;code&gt;S&lt;/code&gt; is resale value. If your actual utilization exceeds that threshold, owning is cheaper. If it falls below, renting is cheaper.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I estimate total cost of ownership for AI infrastructure with GPU clusters and networking?
&lt;/h3&gt;

&lt;p&gt;List every cost line for both options. For owning: hardware (GPUs, servers, InfiniBand or RoCE networking, storage), power, cooling, rack space, spares, maintenance, staff, software, and financing cost, with hardware amortized over its useful life. For renting: per-GPU-hour or reserved pricing, storage, egress, networking, support tier, and idle reserved capacity. Sum each side on an annual basis and divide by productive GPU-hours to get a comparable per-hour cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I evaluate ROI for building a GPU data center versus renting AI infrastructure capacity?
&lt;/h3&gt;

&lt;p&gt;Calculate the owned cost per useful GPU-hour using &lt;code&gt;((H − S) / L + O) / (N × 8,760 × U)&lt;/code&gt; and compare it to the rented price per GPU-hour &lt;code&gt;R&lt;/code&gt;. Run the model at multiple utilization and useful-life assumptions. Structure the analysis as a three-year budget with a review point when the next GPU generation ships.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is it cheaper to run GPU workloads on a neocloud than on AWS?
&lt;/h3&gt;

&lt;p&gt;Neocloud list prices are often lower per GPU-hour because they run GPU-focused fleets with fewer bundled services. However, egress fees, storage costs, support tiers, availability guarantees, compliance scope, and ecosystem services can offset the difference. Compare current pricing pages from each provider before committing, and see the &lt;a href="https://controlplane.com/blog/post/best-gpu-cloud-providers-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=build-vs-rent-gpus-break-even-model" rel="noopener noreferrer"&gt;best GPU cloud providers for 2026&lt;/a&gt; for a fuller comparison.&lt;/p&gt;

&lt;h3&gt;
  
  
  What factors determine GPU hosting versus private cloud for compliant AI infrastructure workloads?
&lt;/h3&gt;

&lt;p&gt;Data residency, attestation coverage (SOC 2 Type II, PCI DSS, ISO 27001), a signed HIPAA BAA where needed, tenant isolation for GPUs, storage of model weights and prompts, audit log availability, and exit terms. Verify each factor per provider and per region, not just at the company level.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I compare GPUs versus ASIC accelerators for AI compute?
&lt;/h3&gt;

&lt;p&gt;Choose GPUs for portability and ASICs for lower cost inside a single cloud. GPUs (NVIDIA) offer broad framework support and portability across providers. Cloud ASICs like Google TPUs and AWS Trainium can lower cost for supported models but tie you to one cloud and toolchain. If your strategy requires moving workloads between owned and rented infrastructure, GPUs are the portable choice.&lt;/p&gt;

&lt;h3&gt;
  
  
  How can I future-proof my AI infrastructure investment?
&lt;/h3&gt;

&lt;p&gt;Containerize workloads for portability, avoid over-buying a single GPU generation, use shorter commitment windows, mix providers, measure utilization before purchasing, and keep model serving efficient through quantization and batching. See &lt;a href="https://controlplane.com/blog/post/ai-inference-multiple-gpu-clouds?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=build-vs-rent-gpus-break-even-model" rel="noopener noreferrer"&gt;AI inference on multiple GPU clouds&lt;/a&gt; for practical patterns.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does Control Plane help with the build-versus-rent decision?
&lt;/h3&gt;

&lt;p&gt;Control Plane lets you run the same workload on GPU servers you own (joined via MK8s) and on rented cloud GPUs in a single GVC. Priority routing tiers and latency offsets let you prefer owned GPUs and use rented capacity as fallback. The build-versus-rent split changes by adding or removing GVC locations, without editing workload definitions.&lt;/p&gt;

&lt;h3&gt;
  
  
  What GPU models does Control Plane support?
&lt;/h3&gt;

&lt;p&gt;Workloads can attach NVIDIA GPUs, and Control Plane’s &lt;a href="https://controlplane.com/pricing?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=build-vs-rent-gpus-break-even-model" rel="noopener noreferrer"&gt;pricing page&lt;/a&gt; lists models from T4 to B200, with per-second billing on NVIDIA accelerators, subject to availability. Control Plane-managed regions offer NVIDIA T4 and A10G. For other models, MK8s joins GPU servers you own or rent from neoclouds as additional locations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I use a hybrid approach for GPU infrastructure?
&lt;/h3&gt;

&lt;p&gt;Most teams benefit from a hybrid strategy: own or reserve GPUs for steady baseline demand where utilization will be high, and rent on-demand or reserved cloud GPUs for peaks, experiments, and access to new hardware generations. On Control Plane, owned and rented GPU capacity are locations in the same GVC, so one workload definition covers both, and routing tiers keep rented capacity as failover for owned GPUs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://controlplane.com/requestdemo?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=build-vs-rent-gpus-break-even-model" rel="noopener noreferrer"&gt;Talk to the Control Plane team&lt;/a&gt; or &lt;a href="https://console.cpln.io/signup" rel="noopener noreferrer"&gt;sign up free&lt;/a&gt; to try it.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://controlplane.com/blog/post/build-vs-rent-gpus-break-even-model?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=build-vs-rent-gpus-break-even-model" rel="noopener noreferrer"&gt;Control Plane blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>gpu</category>
      <category>cloud</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Day 2 Operations for AI Infrastructure: How to Keep Model Serving Running 24/7</title>
      <dc:creator>Noah Grinstein</dc:creator>
      <pubDate>Mon, 02 Nov 2026 23:38:36 +0000</pubDate>
      <link>https://dev.to/noahcontrolplane/day-2-operations-for-ai-infrastructure-how-to-keep-model-serving-running-247-16ko</link>
      <guid>https://dev.to/noahcontrolplane/day-2-operations-for-ai-infrastructure-how-to-keep-model-serving-running-247-16ko</guid>
      <description>&lt;p&gt;Keeping AI infrastructure running 24/7 takes automated patching and upgrades, autoscaling, three layers of observability (infrastructure, serving, and model and data), tested incident response, and policy-controlled automation. You can staff all of it yourself, buy managed services piece by piece, or use a platform that handles the infrastructure layer for you. Control Plane handles Day 2 operations for the workloads it runs, including autoscaling, Capacity AI (Control Plane’s right-sizing of CPU and memory reservations from historical usage), built-in observability, and security, so teams focus on models and data instead of clusters.&lt;/p&gt;

&lt;p&gt;Disclosure: Control Plane publishes this guide.&lt;/p&gt;

&lt;p&gt;See Control Plane’s guides on &lt;a href="https://controlplane.com/blog/post/what-is-ai-ready-infrastructure?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=day-2-operations-ai-infrastructure" rel="noopener noreferrer"&gt;what is AI-ready infrastructure&lt;/a&gt; and &lt;a href="https://controlplane.com/blog/post/what-infrastructure-do-you-need-to-run-an-inference-layer?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=day-2-operations-ai-infrastructure" rel="noopener noreferrer"&gt;what infrastructure you need to run an inference layer&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Day 2 for AI&lt;/strong&gt; is everything after the first successful deployment: the ongoing work of patching, upgrading, scaling, monitoring, responding to incidents, controlling costs, and enforcing policy across inference infrastructure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The operations that matter most&lt;/strong&gt; are OS and node patching, GPU driver and CUDA upgrades, model server upgrades, autoscaling, capacity planning, certificate rotation, backups, observability, incident response, and cost control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three observability layers&lt;/strong&gt; are required: infrastructure metrics (CPU, memory, GPU utilization), serving metrics (latency percentiles, error rates, tokens per second), and model and data metrics (prediction quality, input drift, cost per request).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build vs. managed vs. platform&lt;/strong&gt; : you can run raw Kubernetes yourself, use hyperscaler managed services, or adopt a platform that operates the infrastructure layer for you. Each trades off control, staffing, and portability differently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control Plane&lt;/strong&gt; is the platform option built for Day 2. It runs workloads active-active across locations with no Kubernetes cluster you have to operate.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What are Day 2 operations for AI infrastructure?
&lt;/h2&gt;

&lt;p&gt;Day 1 is getting a model into production: provisioning compute, deploying a model server, and routing the first request. Day 2 is everything after. It covers patching, upgrades, scaling, monitoring, and incident response. A typical Day 2 failure is a GPU driver update that breaks CUDA compatibility and takes down a model server.&lt;/p&gt;

&lt;p&gt;AI infrastructure amplifies Day 2 complexity compared to traditional software. GPU resource constraints, model versioning, drift detection, and bursty workloads create failure modes that standard web services rarely encounter. Skipped Day 2 tasks rarely cause an outage right away. The risk builds until it shows up as a production incident, often during a traffic spike or an unrelated change.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Day 2 Task&lt;/th&gt;
&lt;th&gt;What Goes Wrong If Skipped&lt;/th&gt;
&lt;th&gt;Typical Recurrence&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OS and node patching&lt;/td&gt;
&lt;td&gt;Known CVEs remain exploitable; compliance audits fail&lt;/td&gt;
&lt;td&gt;Weekly to monthly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kubernetes upgrades&lt;/td&gt;
&lt;td&gt;Version goes out of support; API deprecations break workloads&lt;/td&gt;
&lt;td&gt;About every 4 months upstream; at least once a year to stay in standard support on EKS, GKE, or AKS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPU driver and CUDA upgrades&lt;/td&gt;
&lt;td&gt;New model frameworks require newer drivers; performance regressions go unfixed&lt;/td&gt;
&lt;td&gt;Quarterly to biannually&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model server upgrades&lt;/td&gt;
&lt;td&gt;Missing bug fixes, security patches, and performance improvements&lt;/td&gt;
&lt;td&gt;Monthly to quarterly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Autoscaling configuration&lt;/td&gt;
&lt;td&gt;Cold starts violate latency SLOs; idle GPUs waste budget&lt;/td&gt;
&lt;td&gt;Continuous tuning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPU capacity planning&lt;/td&gt;
&lt;td&gt;Spike in traffic exhausts GPU quota; requests queue or drop&lt;/td&gt;
&lt;td&gt;Monthly review&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Certificate and secret rotation&lt;/td&gt;
&lt;td&gt;Expired certs cause hard outages; leaked secrets enable breaches&lt;/td&gt;
&lt;td&gt;Automated, before expiry (Let’s Encrypt certificates last 90 days, and public TLS certificate lifetimes drop to 47 days by 2029); secrets per your rotation policy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backups&lt;/td&gt;
&lt;td&gt;Data loss after storage failure; no rollback path for model artifacts&lt;/td&gt;
&lt;td&gt;Daily to weekly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Observability&lt;/td&gt;
&lt;td&gt;Silent failures go undetected; debugging takes hours instead of minutes&lt;/td&gt;
&lt;td&gt;Continuous&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Incident response&lt;/td&gt;
&lt;td&gt;Mean time to recovery stretches from minutes to hours&lt;/td&gt;
&lt;td&gt;Every incident&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost control&lt;/td&gt;
&lt;td&gt;GPU spend grows unchecked; finance loses trust in engineering forecasts&lt;/td&gt;
&lt;td&gt;Weekly review&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Policy enforcement&lt;/td&gt;
&lt;td&gt;Misconfigured workloads reach production; compliance drift&lt;/td&gt;
&lt;td&gt;Every deployment&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How can AI operable infrastructure automate patching, upgrades, and policy enforcement for clusters?
&lt;/h2&gt;

&lt;p&gt;Automate them with managed node auto-upgrades, pinned and tested GPU driver images, rolling and canary rollouts, and admission-control policies that also run in CI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automated node image updates.&lt;/strong&gt; All three major managed Kubernetes services can roll out new node images for you. &lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html" rel="noopener noreferrer"&gt;Amazon EKS managed node groups&lt;/a&gt; update to the latest EKS optimized AMI in one operation that you start, and &lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/automode.html" rel="noopener noreferrer"&gt;EKS Auto Mode&lt;/a&gt; replaces nodes automatically at least every 21 days. &lt;a href="https://docs.cloud.google.com/kubernetes-engine/docs/how-to/node-auto-upgrades" rel="noopener noreferrer"&gt;Google Kubernetes Engine&lt;/a&gt; enables node auto-upgrade by default. &lt;a href="https://learn.microsoft.com/en-us/azure/aks/auto-upgrade-node-os-image" rel="noopener noreferrer"&gt;Azure Kubernetes Service&lt;/a&gt; offers node OS auto-upgrade channels and defaults new clusters to the weekly NodeImage channel. When a node must be replaced, it is drained and replaced in a rolling fashion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GPU driver and CUDA version management.&lt;/strong&gt; GPU driver upgrades are higher risk than standard node patches because a mismatch between the driver version, CUDA toolkit, and the model framework (PyTorch, TensorFlow, vLLM) can stop the model server from starting, crash inference, or quietly cost performance. The safe pattern is to pin a tested driver and CUDA version in your node image, validate it against your model server in a staging environment, and only then roll it out to production nodes. Avoid letting auto-upgrade channels change GPU drivers without testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rolling upgrades with surge capacity.&lt;/strong&gt; Rolling upgrades replace pods or nodes one at a time (or in small batches) while maintaining enough healthy replicas to serve traffic. For CPU nodes, a surge of one or two extra nodes prevents capacity dips. GPU surge capacity may be unavailable or costly, so many teams set surge to zero, keep enough spare replicas to lose one node, and upgrade off-peak. Set a PodDisruptionBudget, and gate traffic on a readiness probe that passes only after the model is loaded, so a replica is not drained before its replacement can serve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Canary upgrades for model servers.&lt;/strong&gt; Before promoting a new model server version to all replicas, deploy it to a single replica and compare its latency, error rate, and output quality against the existing version under real traffic. If metrics degrade beyond a threshold, roll back automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Policy as code.&lt;/strong&gt; Admission controllers such as &lt;a href="https://open-policy-agent.github.io/gatekeeper/website/" rel="noopener noreferrer"&gt;Open Policy Agent Gatekeeper&lt;/a&gt; and &lt;a href="https://kyverno.io/" rel="noopener noreferrer"&gt;Kyverno&lt;/a&gt; enforce rules at deploy time: requiring resource limits on GPU workloads, blocking images from untrusted registries, mandating labels for cost allocation, and preventing privileged containers. Running the same policies in CI catches violations before they reach the cluster.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I design observability and operations for AI-ready infrastructure supporting 24/7 model serving?
&lt;/h2&gt;

&lt;p&gt;Design it around three observability layers, SLOs with error budget burn-rate alerts, and a tested incident runbook, so every alert maps to a layer and a response.&lt;/p&gt;

&lt;h3&gt;
  
  
  How can I add observability for AI infrastructure including model metrics, data drift, and system logs?
&lt;/h3&gt;

&lt;p&gt;Add observability in three layers: infrastructure, serving, and model and data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Layer 1: Infrastructure metrics.&lt;/strong&gt; This layer covers the compute substrate. Key signals include CPU and memory utilization, GPU utilization and GPU memory headroom via &lt;a href="https://developer.nvidia.com/dcgm" rel="noopener noreferrer"&gt;NVIDIA DCGM&lt;/a&gt;, node health, disk I/O, network throughput, SM activity (a truer load signal than GPU utilization), power and thermal throttling, and GPUs that sit allocated but idle. System logs from the OS, kubelet, and container runtime surface hardware errors, OOM kills, and GPU Xid errors. Some Xid codes point to failing hardware (Xid 79 means the GPU has fallen off the bus), and others point to application or driver faults.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Layer 2: Serving metrics.&lt;/strong&gt; This layer covers the model server and its request handling. Key signals include request rate, server error rate (5xx) tracked apart from 429 rate-limit responses, latency percentiles (p50, p95, p99), time to first token and inter-token latency for streaming LLM endpoints, tokens per second, queue depth, batch size, KV cache usage and request preemptions (vLLM exports both as Prometheus metrics), model load time, and cold start frequency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Layer 3: Model and data metrics.&lt;/strong&gt; This layer covers the correctness of what the model produces. Key signals include prediction quality (accuracy, F1, or domain-specific metrics when labels are available), drift in input feature distributions compared to training data, feedback signals from users or downstream systems, and cost per request broken down by model and team. Silent failures, where the endpoint returns 200 OK but the output is wrong, are only caught at this layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tooling recommendations.&lt;/strong&gt; &lt;a href="https://opentelemetry.io/" rel="noopener noreferrer"&gt;OpenTelemetry&lt;/a&gt; provides a vendor-neutral standard for collecting traces, metrics, and logs. &lt;a href="https://prometheus.io/" rel="noopener noreferrer"&gt;Prometheus&lt;/a&gt; scrapes and stores time-series metrics. &lt;a href="https://grafana.com/" rel="noopener noreferrer"&gt;Grafana&lt;/a&gt; builds dashboards and supports alerting. Define SLOs for latency, availability, and error rate, then set alerts on error budget burn rate rather than raw thresholds. Use multiwindow, multi-burn-rate alerts as described in the Google SRE Workbook. A fast window catches sharp spikes and pages. A slow window catches gradual burn and opens a ticket.&lt;/p&gt;

&lt;h2&gt;
  
  
  What managed operations services help run AI infrastructure 24/7 with reliability and incident response?
&lt;/h2&gt;

&lt;p&gt;Managed options include hyperscaler Kubernetes services (Amazon EKS, Google Kubernetes Engine, Azure Kubernetes Service), hyperscaler ML platforms, and platforms such as Control Plane that handle Day 2 operations for the workloads they run.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which providers offer managed AI operations and maintenance for AI infrastructure?
&lt;/h3&gt;

&lt;p&gt;The three approaches differ in what you still operate, how many platform engineers you need, and how portable your workloads are.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Platform (Control Plane)&lt;/th&gt;
&lt;th&gt;Self-Managed Kubernetes&lt;/th&gt;
&lt;th&gt;Hyperscaler Managed Services&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;What you still operate&lt;/td&gt;
&lt;td&gt;Models, data, and application logic. On Control Plane-provided compute, the platform handles compute, GPU drivers, scaling, infrastructure and serving observability, networking, and security&lt;/td&gt;
&lt;td&gt;Everything: OS, Kubernetes, GPU drivers, networking, observability, scaling, security&lt;/td&gt;
&lt;td&gt;Kubernetes control plane is managed; you operate node pools, GPU driver version testing, model servers, observability, scaling policies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Staffing needed&lt;/td&gt;
&lt;td&gt;No dedicated platform team required&lt;/td&gt;
&lt;td&gt;Dedicated platform engineering team&lt;/td&gt;
&lt;td&gt;Smaller platform team, but still needed for GPU ops and observability&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Portability&lt;/td&gt;
&lt;td&gt;Workloads run on AWS, GCP, Azure, neocloud GPU servers, and on premises, in any mix and active-active, through one API; full Kubernetes stays available on your own clusters and servers&lt;/td&gt;
&lt;td&gt;High (standard Kubernetes)&lt;/td&gt;
&lt;td&gt;Workloads are portable, but node pools, IAM, networking, and GPU setup are per cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best for&lt;/td&gt;
&lt;td&gt;Teams that want &lt;a href="https://controlplane.com/blog/post/production-grade-infrastructure-without-platform-team?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=day-2-operations-ai-infrastructure" rel="noopener noreferrer"&gt;production-grade infrastructure without a platform team&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Teams with deep Kubernetes expertise that want to own and staff every layer&lt;/td&gt;
&lt;td&gt;Teams committed to one cloud with moderate operational capacity&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Hyperscaler managed Kubernetes services (&lt;a href="https://aws.amazon.com/eks/" rel="noopener noreferrer"&gt;Amazon EKS&lt;/a&gt;, &lt;a href="https://cloud.google.com/kubernetes-engine" rel="noopener noreferrer"&gt;Google Kubernetes Engine&lt;/a&gt;, &lt;a href="https://azure.microsoft.com/en-us/products/kubernetes-service" rel="noopener noreferrer"&gt;Azure Kubernetes Service&lt;/a&gt;) reduce the burden of managing the Kubernetes control plane but still leave GPU driver version testing, node pool configuration, autoscaling policies, observability setup, and security hardening to you. Each cloud also offers managed ML platforms (&lt;a href="https://aws.amazon.com/sagemaker/ai/" rel="noopener noreferrer"&gt;Amazon SageMaker AI&lt;/a&gt;, &lt;a href="https://cloud.google.com/products/gemini-enterprise-agent-platform" rel="noopener noreferrer"&gt;Google Gemini Enterprise Agent Platform (formerly Vertex AI)&lt;/a&gt;, &lt;a href="https://azure.microsoft.com/en-us/products/machine-learning" rel="noopener noreferrer"&gt;Azure Machine Learning&lt;/a&gt;), which further abstract infrastructure but tie your training and serving pipelines to that cloud’s APIs, identity, and storage, making a move to another cloud harder.&lt;/p&gt;

&lt;h2&gt;
  
  
  How should I handle incident response for AI model serving?
&lt;/h2&gt;

&lt;p&gt;Handle incidents with SLO-based detection, triage by observability layer, rollback before root-cause analysis, failover to healthy locations, early stakeholder updates, and a written post-incident review.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Detect&lt;/strong&gt; with SLO-based alerts. An error budget burn rate alert fires when errors are using up the budget fast enough to matter, well before it runs out.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Triage by layer.&lt;/strong&gt; Is the problem infrastructure (node down, GPU error), serving (model server crash, queue backup), or model/data (drift, bad predictions)? Check each observability layer in order.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Roll back the model or the deployment.&lt;/strong&gt; If a recent model update or infrastructure change correlates with the alert, roll back first and investigate second.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fail over to another location.&lt;/strong&gt; If the problem is localized to a region or availability zone, shift traffic to healthy locations. Multi-location serving makes this possible without manual intervention.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Communicate.&lt;/strong&gt; Notify stakeholders with what is known, what is being done, and when the next update will come.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write a post-incident review.&lt;/strong&gt; Document the timeline, root cause, contributing factors, and action items. Share it broadly.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Multi-location serving shortens incidents because traffic shifts to replicas already running in other locations. Size each location with enough headroom, or enough autoscaling room, to absorb a failed location’s traffic. This matters because major cloud regions experience multi-hour outages regularly. Control Plane’s &lt;a href="https://controlplane.com/blog/post/cloud-outage-tracker?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=day-2-operations-ai-infrastructure" rel="noopener noreferrer"&gt;cloud outage tracker&lt;/a&gt; documents these events across AWS, GCP, and Azure, showing that relying on a single region creates a predictable availability ceiling.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I implement CI/CD for AI infrastructure and machine learning pipelines on Kubernetes?
&lt;/h2&gt;

&lt;p&gt;Version code, data, and models together, gate every model on evaluation results, and deploy through GitOps with canary rollouts and automatic rollback.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Version everything.&lt;/strong&gt; Store application code in Git. Track data versions with &lt;a href="https://dvc.org/" rel="noopener noreferrer"&gt;DVC&lt;/a&gt; or a similar tool. Store model artifacts in a model registry with metadata about training data, hyperparameters, and evaluation results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build model-server containers.&lt;/strong&gt; Use reproducible container builds that pin the base image by digest, the CUDA runtime version (which the host GPU driver must support), and the model framework version. Tag images with the model version and the commit hash.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run evaluation gates before promotion.&lt;/strong&gt; Automated tests compare the candidate model’s accuracy, latency, and resource consumption against the current production model. If the candidate fails any gate, the pipeline stops.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deploy with GitOps or a CI tool.&lt;/strong&gt; &lt;a href="https://argoproj.github.io/cd/" rel="noopener noreferrer"&gt;Argo CD&lt;/a&gt; and &lt;a href="https://fluxcd.io/" rel="noopener noreferrer"&gt;Flux&lt;/a&gt; watch a Git repository for changes and reconcile the cluster state to match. Alternatively, a CI tool can apply Kubernetes manifests or Helm charts directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Canary and roll back.&lt;/strong&gt; Route a small fraction of traffic to the new deployment. Monitor serving metrics and model quality. If metrics degrade, roll back automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep infrastructure as code.&lt;/strong&gt; Define all infrastructure, including clusters, node pools, networking, and policies, in version-controlled templates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which tools automate AI infrastructure provisioning and policy enforcement for multi-cloud environments?
&lt;/h2&gt;

&lt;p&gt;Infrastructure as code tools, policy engines, GitOps controllers, and multi-cloud platforms handle provisioning and policy enforcement across clouds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Infrastructure as code.&lt;/strong&gt; &lt;a href="https://developer.hashicorp.com/terraform" rel="noopener noreferrer"&gt;Terraform&lt;/a&gt; and &lt;a href="https://opentofu.org/" rel="noopener noreferrer"&gt;OpenTofu&lt;/a&gt; use declarative HCL to provision resources across AWS, GCP, and Azure. &lt;a href="https://www.pulumi.com/" rel="noopener noreferrer"&gt;Pulumi&lt;/a&gt; offers the same capability using general-purpose programming languages. All three support state management and plan previews, and can detect drift by comparing live resources with recorded state; scheduled drift detection is a feature of HCP Terraform and Pulumi Cloud paid tiers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Policy engines.&lt;/strong&gt; &lt;a href="https://www.openpolicyagent.org/" rel="noopener noreferrer"&gt;Open Policy Agent&lt;/a&gt; evaluates policies written in Rego against Kubernetes admission requests, Terraform plan output, and API calls. Gatekeeper runs OPA policies as a Kubernetes admission controller, and Kyverno is an alternative that uses YAML and CEL policies instead of Rego.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitOps controllers.&lt;/strong&gt; Argo CD and Flux reconcile cluster state against a Git repository, providing an audit trail of every change and enabling rollback by reverting a commit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Platforms that expose one API across clouds.&lt;/strong&gt; Rather than maintaining separate Terraform modules, CI pipelines, and observability stacks for each cloud, a platform approach provides a single API for deploying and operating workloads everywhere. Control Plane takes this approach, with one API across AWS, GCP, Azure, neoclouds, and your own servers. Control Plane ships its own &lt;a href="https://registry.terraform.io/providers/controlplane-com/cpln/latest/docs" rel="noopener noreferrer"&gt;Terraform&lt;/a&gt; and &lt;a href="https://www.pulumi.com/registry/packages/cpln/" rel="noopener noreferrer"&gt;Pulumi&lt;/a&gt; providers, so it complements the infrastructure as code you already run.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the best AI controlled infrastructure platforms for managing spot instances?
&lt;/h2&gt;

&lt;p&gt;Spot and preemptible instances offer deep discounts (&lt;a href="https://aws.amazon.com/ec2/spot/" rel="noopener noreferrer"&gt;AWS&lt;/a&gt; advertises up to 90% off On-Demand prices, &lt;a href="https://cloud.google.com/spot-vms" rel="noopener noreferrer"&gt;Google Cloud&lt;/a&gt; up to 91%, and &lt;a href="https://azure.microsoft.com/en-us/products/virtual-machines/spot" rel="noopener noreferrer"&gt;Azure&lt;/a&gt; up to 90% off pay-as-you-go prices) but can be reclaimed at short notice. AWS gives a two-minute interruption notice, and Google Cloud and Azure give about 30 seconds. Model load time often exceeds that window, so a replica on spot capacity must stop taking traffic and drain as soon as the notice arrives. Tools that manage this include Karpenter on AWS, which watches for interruption notices and replaces nodes, and GKE Spot node pools with the cluster autoscaler. Spot GPUs are also scarcer than spot CPUs, so expect reclaims and stockouts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good candidates for spot capacity:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Batch inference jobs that can be restarted&lt;/li&gt;
&lt;li&gt;Training runs with periodic checkpointing, so progress is not lost on interruption&lt;/li&gt;
&lt;li&gt;Stateless inference replicas with sufficient headroom, where losing one replica does not drop all traffic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Poor candidates for spot capacity:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single-replica serving endpoints, where an interruption means a full outage&lt;/li&gt;
&lt;li&gt;Latency-sensitive endpoints without fallback replicas on on-demand capacity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The recommended approach is to mix on-demand and spot capacity. Run a baseline of on-demand replicas to guarantee minimum availability, and add spot replicas for burst capacity. Checkpoint training jobs frequently. Use multi-location fallback so that if spot capacity is reclaimed in one location, traffic shifts to replicas in another.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is it safe to let AI agents help operate AI infrastructure?
&lt;/h2&gt;

&lt;p&gt;Yes, if agents start with read-only access and every change goes through scoped permissions, approval gates, and an audit trail.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Low risk with read-only access:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read-only diagnosis: querying logs, metrics, and deployment status (treat log content as untrusted input, and redact secrets)&lt;/li&gt;
&lt;li&gt;Summarizing error patterns across time windows&lt;/li&gt;
&lt;li&gt;Proposing configuration changes for human review&lt;/li&gt;
&lt;li&gt;Generating runbook steps from incident context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Requires guardrails:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Restarting or scaling workloads (scoped permissions, approval gates)&lt;/li&gt;
&lt;li&gt;Modifying network policies or secrets (approval for destructive actions)&lt;/li&gt;
&lt;li&gt;Deploying new versions (CI/CD pipeline integration, not direct API calls)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Give agents least-privilege permissions and record every action they take. On Control Plane, the &lt;a href="https://controlplane.com/blog/post/let-claude-chatgpt-deploy-your-app?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=day-2-operations-ai-infrastructure" rel="noopener noreferrer"&gt;MCP server&lt;/a&gt; connects AI assistants such as Claude to the Control Plane API over the Model Context Protocol, so they can &lt;a href="https://docs.controlplane.com/ai/tools?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=day-2-operations-ai-infrastructure" rel="noopener noreferrer"&gt;query logs and metrics, diagnose a failing workload, and restart or roll it back&lt;/a&gt;, within the orgs you authorize and the toolset profile you choose, including a read-only profile. Every action is recorded in Control Plane’s tamper-proof audit trail. The CLI, console, Terraform and Pulumi providers, and the MCP server all work through the same Control Plane API.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Control Plane approaches Day 2 operations for AI workloads
&lt;/h2&gt;

&lt;p&gt;Control Plane is the platform for running unbreakable apps and agents. It combines AWS, GCP, Azure, neocloud and bare-metal servers, and on-premises machines into Control Plane’s Global Virtual Cloud (GVC), a set of locations a workload runs across. On Control Plane-provided compute, there is no Kubernetes cluster you have to operate. Control Plane handles Day 2 operations for you, including autoscaling, Capacity AI right-sizing of CPU and memory, built-in observability, and security.&lt;/p&gt;

&lt;p&gt;For teams that need to use their own servers, including GPU servers, Control Plane’s Managed Kubernetes (MK8s) turns those machines into managed locations. Control Plane operates the Kubernetes layer on servers you join, and the hardware stays yours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built-in observability&lt;/strong&gt; collects metrics and logs for every workload in every location, plus traces once tracing is turned on for the org or GVC, with no third-party agent to install. Each org gets Grafana with built-in alert rules, and a workload can expose its own metrics, such as a model server’s tokens per second or queue depth, for Control Plane to scrape and autoscale on. Logs can be forwarded to Datadog, Coralogix, Syslog, Fluentd, or any OpenTelemetry target, and metrics can be federated into your own Prometheus. Model quality and drift monitoring stay in your ML tooling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-location availability&lt;/strong&gt; is a core architectural feature. A workload deployed to a GVC runs active-active in every location of that GVC, and a global endpoint routes each request to the nearest healthy location. Readiness probes (HTTP, gRPC, TCP, or a command) decide when each replica can take traffic, and when a location has no ready replicas the global endpoint routes requests to another healthy location. The 99.999% availability SLA applies to workloads running at least two replicas in at least two locations. Those locations can be two regions of one cloud or locations on different providers.&lt;/p&gt;

&lt;p&gt;This architecture proved its value during the October 20, 2025 AWS us-east-1 outage, which lasted about 15 hours and affected more than 100 AWS services. Control Plane customers with us-east-1 in their GVC had no downtime, and their workloads were “active and running in healthy locations within 10 seconds,” according to &lt;a href="https://controlplane.com/blog/post/beyond-backups-designing-systems-that-survive-the-inevitable?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=day-2-operations-ai-infrastructure" rel="noopener noreferrer"&gt;Control Plane internal incident telemetry&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GPU workloads.&lt;/strong&gt; Workloads can attach NVIDIA GPUs, and the &lt;a href="https://controlplane.com/pricing?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=day-2-operations-ai-infrastructure" rel="noopener noreferrer"&gt;pricing page&lt;/a&gt; lists models from T4 to B200. On Control Plane-managed GPUs, drivers are installed automatically and Control Plane keeps driver versions current. Teams serving &lt;a href="https://controlplane.com/blog/post/ai-inference-multiple-gpu-clouds?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=day-2-operations-ai-infrastructure" rel="noopener noreferrer"&gt;AI inference across several GPU providers&lt;/a&gt; group those GPU locations into one GVC. Control Plane-managed regions offer NVIDIA T4 and A10G, and for other models MK8s joins GPU servers from neoclouds or your own data center as additional locations. The workload’s GPU request applies in every location of the GVC.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security defaults.&lt;/strong&gt; Workloads are closed by default behind a deny-by-default internal firewall. Traffic between workloads uses mTLS. Each workload is isolated with cgroups, namespaces, and restricted syscalls and capabilities. Control Plane’s built-in secrets management keeps secret values out of code and images. Universal Cloud Identity, Control Plane’s credential-free cloud access, gives workloads short-lived, least-privilege access to 600+ services across AWS, GCP, and Azure, such as pulling model weights from Amazon S3 or Google Cloud Storage, with no long-lived cloud keys in your code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost efficiency.&lt;/strong&gt; Customers typically cut compute costs 30 to 50 percent compared with running directly on AWS, GCP, or Azure. On Control Plane-provided compute, you pay for the CPU and memory you reserve, by the millicore and the megabyte, with no contracts or minimums. Egress, storage, observability, dedicated load balancers, and GPUs are billed separately.&lt;/p&gt;

&lt;p&gt;Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What are Day 2 operations for AI infrastructure?
&lt;/h3&gt;

&lt;p&gt;Day 2 operations are the ongoing tasks required after initial deployment to keep AI inference services running reliably. They include patching, upgrading, autoscaling, observability, incident response, cost control, and policy enforcement.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do Day 2 operations differ from Day 1 for AI systems?
&lt;/h3&gt;

&lt;p&gt;Day 1 is provisioning compute and deploying a model for the first time. Day 2 is maintaining that deployment over weeks, months, and years, handling upgrades, scaling, monitoring, and incidents as they arise.&lt;/p&gt;

&lt;h3&gt;
  
  
  What observability do I need for AI infrastructure including model metrics, data drift, and system logs?
&lt;/h3&gt;

&lt;p&gt;Three layers: infrastructure metrics (CPU, memory, GPU utilization, node health), serving metrics (latency, error rate, tokens per second, queue depth), and model and data metrics (prediction quality, input drift, cost per request). OpenTelemetry, Prometheus, and Grafana are widely used open-source tools for collecting and visualizing these signals.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which providers offer managed AI operations for scalable and reliable deployment?
&lt;/h3&gt;

&lt;p&gt;Hyperscaler managed Kubernetes services (Amazon EKS, Google Kubernetes Engine, Azure Kubernetes Service) manage the Kubernetes control plane but leave GPU operations, observability, and scaling to you. On Control Plane-provided compute, Control Plane operates the infrastructure layer, including GPU drivers, autoscaling, observability, networking, and security, so teams focus on their models and application logic. On your own servers, Control Plane’s Managed Kubernetes (MK8s) operates the Kubernetes layer while the hardware stays yours.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I implement CI/CD for AI infrastructure and machine learning pipelines on Kubernetes?
&lt;/h3&gt;

&lt;p&gt;Version code, data, and models. Build reproducible model-server containers. Run evaluation gates before promotion. Deploy with GitOps tools like Argo CD or Flux. Use canary deployments with automatic rollback based on serving and model quality metrics.&lt;/p&gt;

&lt;h3&gt;
  
  
  What tools automate AI infrastructure provisioning and policy enforcement for multi-cloud environments?
&lt;/h3&gt;

&lt;p&gt;Infrastructure as code tools (Terraform, OpenTofu, Pulumi), policy engines (Open Policy Agent with Gatekeeper, or Kyverno), and GitOps controllers (Argo CD, Flux) form the foundation. Control Plane adds a single API across clouds with its own Terraform and Pulumi providers.&lt;/p&gt;

&lt;h3&gt;
  
  
  How should I handle incident response for AI model serving?
&lt;/h3&gt;

&lt;p&gt;Detect with SLO-based alerts, triage by observability layer (infrastructure, serving, model), roll back recent changes, fail over to healthy locations, communicate with stakeholders, and write a post-incident review. Multi-location serving shortens incidents because traffic shifts to replicas already running elsewhere, as long as those locations have headroom.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is it safe to let AI agents help operate AI infrastructure?
&lt;/h3&gt;

&lt;p&gt;Yes, if agents start read-only. Querying logs and metrics is low risk, though log content should be treated as untrusted input. Actions that modify state, such as restarting workloads or deploying new versions, need scoped permissions, approval gates, and a tamper-proof audit trail. On Control Plane, the MCP server can connect with a read-only toolset profile for safe diagnosis, reaches only the orgs you authorize, instructs the assistant to explain the impact and get your approval before it deletes or overwrites resources, and records every action in Control Plane’s tamper-proof audit trail.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the best approaches for managing spot instances for AI workloads?
&lt;/h3&gt;

&lt;p&gt;Spot capacity works well for batch inference, training with checkpoints, and stateless inference with headroom. It is risky for single-replica serving. Mix on-demand and spot capacity, checkpoint frequently, and use multi-location fallback to handle interruptions.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does Control Plane handle Day 2 operations for AI workloads?
&lt;/h3&gt;

&lt;p&gt;Control Plane handles autoscaling, Capacity AI right-sizing, built-in observability, security, and multi-location failover with no Kubernetes cluster to operate. Workloads run active-active across locations with a global endpoint that routes to the nearest healthy replica. The 99.999% availability SLA applies to workloads running at least two replicas in at least two locations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://controlplane.com/requestdemo?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=day-2-operations-ai-infrastructure" rel="noopener noreferrer"&gt;Talk to the Control Plane team&lt;/a&gt; or &lt;a href="https://console.cpln.io/signup" rel="noopener noreferrer"&gt;sign up free&lt;/a&gt; to try it.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://controlplane.com/blog/post/day-2-operations-ai-infrastructure?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=day-2-operations-ai-infrastructure" rel="noopener noreferrer"&gt;Control Plane blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>kubernetes</category>
      <category>sre</category>
    </item>
    <item>
      <title>How to Run Regulated Apps in the Cloud: SOC 2, HIPAA, and PCI DSS Platforms, Data Residency With Failover, and a Compliance Checklist</title>
      <dc:creator>Noah Grinstein</dc:creator>
      <pubDate>Mon, 02 Nov 2026 23:37:24 +0000</pubDate>
      <link>https://dev.to/noahcontrolplane/how-to-run-regulated-apps-in-the-cloud-soc-2-hipaa-and-pci-dss-platforms-data-residency-with-664</link>
      <guid>https://dev.to/noahcontrolplane/how-to-run-regulated-apps-in-the-cloud-soc-2-hipaa-and-pci-dss-platforms-data-residency-with-664</guid>
      <description>&lt;p&gt;A compliant application platform gives you audited infrastructure controls, but compliance is shared: you still need your own controls for data classification, identity, secrets management, and logging. To keep data in one country with failover, run in at least two locations inside that country and ensure every replica, backup, and log stays there. Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant, and it runs a workload only in the locations you choose across AWS, GCP, Azure, and your own servers.&lt;/p&gt;

&lt;p&gt;Disclosure: Control Plane publishes this guide.&lt;/p&gt;

&lt;p&gt;This is general guidance, not legal or audit advice.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What platform compliance covers.&lt;/strong&gt; SOC 2 Type II, HIPAA eligibility, and PCI DSS attestations apply to the platform’s services, not your application logic or data handling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How to verify a platform ’s claims.&lt;/strong&gt; Request the SOC 2 Type II report under NDA, the PCI DSS Attestation of Compliance, and a signed BAA. Check which services and regions are in scope.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data residency with failover.&lt;/strong&gt; Choose two or more locations inside the same country, run active-active or active-passive between them, and pin replicas, backups, logs, and keys to those locations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The compliance checklist.&lt;/strong&gt; Classify data, enforce region allow-lists with policy as code, manage secrets outside your codebase, isolate tenants, log everything immutably, and document AI data flows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How Control Plane fits.&lt;/strong&gt; On Control Plane, a workload runs only in the locations of Control Plane’s Global Virtual Cloud (GVC), a set of locations a workload runs across, so you control data residency by choosing locations. Workloads deploy active-active across every location in a GVC, and a global endpoint routes each request to the nearest healthy location.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Which application platforms are SOC 2 Type II, HIPAA, and PCI DSS compliant?
&lt;/h2&gt;

&lt;p&gt;AWS, Google Cloud, and Azure each hold SOC 2 Type II reports and PCI DSS Level 1 service provider attestations, and each signs a BAA covering a published list of HIPAA-eligible services. Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant. Its SOC 2 Type II audit was completed by Prescient Assurance, and its SOC 2 Type II report and PCI DSS Attestation of Compliance are available from &lt;a href="mailto:support@controlplane.com"&gt;support@controlplane.com&lt;/a&gt;, and its docs publish a PCI Responsibility Matrix.&lt;/p&gt;

&lt;h3&gt;
  
  
  What each framework means for a platform buyer
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;SOC 2 Type II&lt;/strong&gt; is an attestation report from an independent CPA firm. The auditor tests whether a platform’s controls operated effectively over a review period, commonly three to twelve months. A Type I report covers only control design at a single point in time. Platforms renew the report each year, so check the period end date and ask for a bridge letter if it ended months ago. A badge on a marketing page shows none of the scope or exceptions, so ask for the report itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HIPAA&lt;/strong&gt; has no official certification program. The U.S. Department of Health and Human Services does not certify software or cloud platforms as “HIPAA compliant.” Instead, look for two things: a signed Business Associate Agreement (BAA), which sets out how the platform must protect electronic protected health information (ePHI), and a clear list of HIPAA-eligible services. Under the HITECH Act, a platform that handles ePHI as a business associate is also directly liable for complying with the HIPAA Security Rule. Any service not on that list should not touch ePHI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PCI DSS&lt;/strong&gt; compliance is documented in an Attestation of Compliance (AoC), the official PCI Security Standards Council form summarizing the results of an assessment. Platforms that process, store, or transmit cardholder data are assessed as service providers. Card brands such as Visa and Mastercard classify a service provider as Level 1 when it handles more than 300,000 card transactions a year, and Level 1 requires an annual assessment by a Qualified Security Assessor (QSA) and a Report on Compliance. The AoC states which services and environments are in scope.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to verify a platform’s compliance
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Request the &lt;strong&gt;SOC 2 Type II report&lt;/strong&gt; under NDA. Read the auditor’s opinion, the description of the system boundary, and any exceptions noted.&lt;/li&gt;
&lt;li&gt;Request the &lt;strong&gt;PCI DSS Attestation of Compliance&lt;/strong&gt;. Confirm the service provider level and check which services and data center regions are covered.&lt;/li&gt;
&lt;li&gt;Request a signed &lt;strong&gt;BAA&lt;/strong&gt; before any ePHI touches the platform. Confirm the list of HIPAA-eligible services.&lt;/li&gt;
&lt;li&gt;Check &lt;strong&gt;scope&lt;/strong&gt; : which regions, which services, and which deployment models are included. A platform may be compliant in some regions but not others.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;AWS, Google Cloud, and Azure each publish compliance programs with lists of in-scope services. AWS maintains its &lt;a href="https://aws.amazon.com/compliance/programs/" rel="noopener noreferrer"&gt;compliance programs page&lt;/a&gt;, Google Cloud publishes its &lt;a href="https://cloud.google.com/security/compliance/offerings" rel="noopener noreferrer"&gt;compliance offerings&lt;/a&gt;, and Azure documents its &lt;a href="https://learn.microsoft.com/en-us/azure/compliance/offerings/" rel="noopener noreferrer"&gt;compliance offerings&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who owns which compliance controls, the platform or the customer?
&lt;/h2&gt;

&lt;p&gt;The table below maps common control areas to who typically owns them.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Control Area&lt;/th&gt;
&lt;th&gt;Typically Responsible&lt;/th&gt;
&lt;th&gt;Evidence to Collect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Infrastructure security (host OS, hypervisor, physical)&lt;/td&gt;
&lt;td&gt;Platform&lt;/td&gt;
&lt;td&gt;SOC 2 Type II report, penetration test summaries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network segmentation and firewalls&lt;/td&gt;
&lt;td&gt;Shared&lt;/td&gt;
&lt;td&gt;Network architecture diagrams, firewall rule exports&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Identity and access management&lt;/td&gt;
&lt;td&gt;Customer&lt;/td&gt;
&lt;td&gt;SSO configuration, MFA enforcement logs, RBAC policies, access reviews&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Secrets management&lt;/td&gt;
&lt;td&gt;Customer&lt;/td&gt;
&lt;td&gt;Secrets manager configuration, rotation logs, proof secrets are not in code&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data encryption (at rest and in transit)&lt;/td&gt;
&lt;td&gt;Shared&lt;/td&gt;
&lt;td&gt;Encryption configuration, key custody documentation, TLS certificates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Logging and audit trails&lt;/td&gt;
&lt;td&gt;Shared&lt;/td&gt;
&lt;td&gt;Log retention policies, tamper-resistance proof, SIEM integration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Application code security&lt;/td&gt;
&lt;td&gt;Customer&lt;/td&gt;
&lt;td&gt;SAST/DAST scan results, dependency vulnerability reports, change approvals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data classification&lt;/td&gt;
&lt;td&gt;Customer&lt;/td&gt;
&lt;td&gt;Data inventory, classification tags, handling procedures&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backups and disaster recovery&lt;/td&gt;
&lt;td&gt;Shared&lt;/td&gt;
&lt;td&gt;Backup location confirmation, restoration test results, RTO/RPO evidence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Incident response&lt;/td&gt;
&lt;td&gt;Shared&lt;/td&gt;
&lt;td&gt;Incident response plan, tabletop exercise records, notification procedures&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A platform’s audit reports cover the rows marked Platform and the platform’s part of the Shared rows. Rows marked Customer or Shared need your own controls and evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I keep customer data in a specific country while still having multi-region failover?
&lt;/h2&gt;

&lt;p&gt;Run the application in two or more locations inside the country, replicate data only between those locations, and keep every replica, backup, log, and key in-country. Traffic fails over between the in-country locations, never to a region abroad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architecture options:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Active-active&lt;/strong&gt; between two in-country locations removes failover delay, because each location already serves traffic, and a global load balancer routes requests to the nearest healthy one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Active-passive&lt;/strong&gt; keeps a standby location in-country that takes over during an outage. It costs less but introduces failover time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Databases in active-active.&lt;/strong&gt; The application tier can run active-active, but most relational databases accept writes on one primary. Put the primary in one in-country location and a replica in the other, and send writes from both locations to the primary. Synchronous replication gives a recovery point objective (RPO) of zero, meaning no committed write is lost, at the cost of added write latency. In-country locations are usually close enough to keep that cost low. Asynchronous replication adds no write latency but can lose writes not yet copied when the primary fails. On failure, promote the replica and repoint the application. Use a quorum or fencing so two primaries never accept writes at once. To accept writes in every location, use a distributed SQL database such as CockroachDB, YugabyteDB, or Google Cloud Spanner, and keep all of its nodes in-country.&lt;/p&gt;

&lt;p&gt;For a deeper comparison of these patterns, see &lt;a href="https://controlplane.com/blog/post/active-active-vs-active-passive-cost?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=run-regulated-apps-cloud-soc2-hipaa-pci-data-residency" rel="noopener noreferrer"&gt;active-active vs. active-passive cost and architecture trade-offs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to pin in-country:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Primary database and all replicas&lt;/li&gt;
&lt;li&gt;Backups and snapshots&lt;/li&gt;
&lt;li&gt;Object storage buckets&lt;/li&gt;
&lt;li&gt;Application logs and audit logs&lt;/li&gt;
&lt;li&gt;Encryption keys&lt;/li&gt;
&lt;li&gt;Cache layers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What to check:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where does the platform’s support staff access data from?&lt;/li&gt;
&lt;li&gt;Where do telemetry and monitoring data flow?&lt;/li&gt;
&lt;li&gt;Where does TLS terminate? Global load balancers and CDNs can decrypt requests at edge sites outside the country.&lt;/li&gt;
&lt;li&gt;Where do managed AI APIs send prompts and responses for processing?&lt;/li&gt;
&lt;li&gt;Does the platform offer contractual commitments on data location?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Where can I find a cloud provider that keeps my data in one country to reduce risk?
&lt;/h3&gt;

&lt;p&gt;AWS, Google Cloud, and Azure each run two or more regions in the United States, Canada, Australia, Japan, and India, so one provider can cover in-country failover in those countries. Not every country has two cloud regions from a single provider. In those cases, combining regions from multiple providers, or adding your own data center, may be the only viable in-country option. A detailed breakdown of provider coverage by country is available in &lt;a href="https://controlplane.com/blog/post/best-cloud-providers-data-sovereignty-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=run-regulated-apps-cloud-soc2-hipaa-pci-data-residency" rel="noopener noreferrer"&gt;best cloud providers for data sovereignty in 2026&lt;/a&gt;. For architectural patterns, see &lt;a href="https://controlplane.com/blog/post/sovereign-cloud-architecture-data-residency-compliance?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=run-regulated-apps-cloud-soc2-hipaa-pci-data-residency" rel="noopener noreferrer"&gt;sovereign cloud architecture for data residency compliance&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What practical controls ensure data residency and sovereignty in a multi-cloud infrastructure?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Region allow-lists enforced by policy.&lt;/strong&gt; Each major cloud has a native mechanism: AWS &lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html" rel="noopener noreferrer"&gt;Service Control Policies&lt;/a&gt; with &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-requested-region.html" rel="noopener noreferrer"&gt;aws:RequestedRegion conditions&lt;/a&gt; (with exemptions for global services such as IAM), &lt;a href="https://learn.microsoft.com/en-us/azure/governance/policy/samples/built-in-policies#general" rel="noopener noreferrer"&gt;Azure Policy’s built-in Allowed locations policy&lt;/a&gt;, and the Google Cloud &lt;a href="https://docs.cloud.google.com/organization-policy/restrict-locations" rel="noopener noreferrer"&gt;resource locations organization policy constraint&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data classification and tagging.&lt;/strong&gt; Tag every resource with its data classification (e.g., &lt;code&gt;data-class: phi&lt;/code&gt;, &lt;code&gt;data-class: pci&lt;/code&gt;). Use tags to trigger policy enforcement and to generate audit reports.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encryption with keys held in-region.&lt;/strong&gt; Store encryption keys in the same jurisdiction as the data they protect. Cross-border key storage can undermine sovereignty even if the ciphertext stays in-country.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Egress controls.&lt;/strong&gt; Block or alert on data transfers to regions outside the approved list. Use VPC flow logs, firewall rules, and DLP inspection at egress points.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Residency-aware backups.&lt;/strong&gt; Explicitly configure backup destinations. Some services copy backups or geo-redundant replicas to a second region by default or with a single setting, and that region is not always in the same country. For example, Azure geo-redundant storage replicates to the paired region, and Brazil South is paired with South Central US. Multi-region storage locations such as Google Cloud’s EU or US buckets span several countries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logging location.&lt;/strong&gt; Route logs to a logging service or bucket pinned to an approved region. If you use a third-party logging provider, confirm where they store and process your data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regular audits.&lt;/strong&gt; Periodically scan for resources created outside approved regions. Automated compliance scanners can flag drift before it becomes an audit finding.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What cloud compliance checklist should I follow when migrating a regulated application to AI infrastructure?
&lt;/h2&gt;

&lt;p&gt;AI workloads introduce new compliance surfaces. Prompts, model outputs, training data, and vector store contents can all contain regulated data. Follow this checklist:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Classify data before it reaches a model.&lt;/strong&gt; Determine whether inputs contain ePHI, cardholder data, PII, or other regulated categories. Apply classification before inference, not after.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decide what can go to third-party model APIs.&lt;/strong&gt; If you use external APIs for inference, confirm the provider’s compliance posture, sign the appropriate agreements (BAA, DPA), and understand where prompts and responses are processed and stored. Confirm in writing that prompts are not used for training and how long the provider keeps them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prefer self-hosted or in-region inference for regulated data.&lt;/strong&gt; Running models on infrastructure you control, within approved regions, keeps regulated data off third-party networks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Log prompts and outputs with redaction.&lt;/strong&gt; Maintain audit logs of what was sent to a model and what it returned. Redact or tokenize regulated fields before logging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apply access control to models and vector stores.&lt;/strong&gt; Treat model endpoints and vector databases as regulated data stores. Enforce RBAC, authentication, and network segmentation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep training and fine-tuning data in-region.&lt;/strong&gt; If you fine-tune models on regulated data, the training data, checkpoints, and resulting model weights must stay within approved jurisdictions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document data flows for auditors.&lt;/strong&gt; Create a data flow diagram that shows how regulated data moves through your AI pipeline: ingestion, preprocessing, inference, post-processing, storage, and deletion. Auditors will ask for this.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan for deletion.&lt;/strong&gt; Embeddings and fine-tuned weights derived from personal data must be deletable when a data subject asks for erasure, so record which data each one came from.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What are the best practices for secrets management in IaC pipelines to meet cloud compliance requirements?
&lt;/h2&gt;

&lt;p&gt;Secrets in infrastructure-as-code pipelines are a frequent audit finding and a common attack vector.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No secrets in code, state files, or CI logs.&lt;/strong&gt; Credentials leaked in repositories are a common way attackers get cloud access. Terraform writes values read through data sources into state; Terraform 1.10 added ephemeral resources and 1.11 added write-only arguments to keep secrets out of state and plan files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use a secrets manager, referenced by name.&lt;/strong&gt; Store secrets in a dedicated service such as &lt;a href="https://aws.amazon.com/secrets-manager/" rel="noopener noreferrer"&gt;AWS Secrets Manager&lt;/a&gt;, &lt;a href="https://cloud.google.com/security/products/secret-manager" rel="noopener noreferrer"&gt;Google Cloud Secret Manager&lt;/a&gt;, or &lt;a href="https://azure.microsoft.com/en-us/products/key-vault/" rel="noopener noreferrer"&gt;Azure Key Vault&lt;/a&gt;, or in &lt;a href="https://developer.hashicorp.com/vault" rel="noopener noreferrer"&gt;HashiCorp Vault&lt;/a&gt;. IaC templates should reference secret names, never values.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Short-lived credentials through workload identity federation.&lt;/strong&gt; Replace static API keys with short-lived federated tokens that expire automatically, typically within an hour. AWS, GCP, and Azure all support workload identity federation natively.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Least-privilege pipeline roles.&lt;/strong&gt; The CI/CD service account should have only the permissions needed for the current deployment. Separate roles for plan and apply stages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rotation.&lt;/strong&gt; Automate rotation on a defined schedule, and rotate immediately after a suspected exposure or when someone with access leaves. Log every rotation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secret scanning in CI.&lt;/strong&gt; Run tools like &lt;a href="https://github.com/gitleaks/gitleaks" rel="noopener noreferrer"&gt;Gitleaks&lt;/a&gt; or &lt;a href="https://github.com/trufflesecurity/trufflehog" rel="noopener noreferrer"&gt;TruffleHog&lt;/a&gt; in your CI pipeline to catch secrets before they merge.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encrypted and access-controlled IaC state.&lt;/strong&gt; Terraform and Pulumi state files can contain sensitive values. Encrypt state at rest, restrict access to the state backend, and audit who reads it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How should I structure governance and policy as code for compliant multi cloud infrastructure using IaC?
&lt;/h2&gt;

&lt;p&gt;Policy as code turns compliance rules into enforceable, version-controlled, auditable artifacts. Structure it in layers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preventive guardrails at the account or organization level.&lt;/strong&gt; These are the broadest controls. Service Control Policies in AWS, Organization Policies in Google Cloud, and Azure Policy assignments at the management group level prevent non-compliant resources from being created in the first place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Policy checks in CI before apply.&lt;/strong&gt; Before any IaC change reaches production, validate it against your compliance rules. &lt;a href="https://www.openpolicyagent.org/" rel="noopener noreferrer"&gt;Open Policy Agent (OPA)&lt;/a&gt; is a widely adopted open-source engine for this purpose. Evaluate the JSON output of &lt;code&gt;terraform plan&lt;/code&gt; with OPA through a tool such as Conftest, or use Pulumi CrossGuard policy packs with &lt;code&gt;pulumi preview&lt;/code&gt;, and fail the pipeline on violations. In Kubernetes, OPA Gatekeeper or Kyverno applies the same rules at admission time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Runtime detection.&lt;/strong&gt; Even with preventive controls, configuration drift happens. Use runtime scanners to detect resources that have drifted from their compliant state and alert or auto-remediate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Evidence collection for audits.&lt;/strong&gt; Every policy evaluation, pass or fail, should produce a log entry. These logs become audit evidence showing that controls were in place and operating continuously.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples of rules to codify:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Allowed deployment regions (for example, only the regions inside the country your data must stay in)&lt;/li&gt;
&lt;li&gt;Required encryption on all storage resources&lt;/li&gt;
&lt;li&gt;Required classification tags on every resource&lt;/li&gt;
&lt;li&gt;No public access on storage buckets or object stores&lt;/li&gt;
&lt;li&gt;MFA required for privileged roles&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What cloud solutions offer multi tenant protection against cross tenant data breaches?
&lt;/h2&gt;

&lt;p&gt;Cloud platforms separate tenants at three layers: separate accounts or projects (AWS accounts, Google Cloud projects, Azure subscriptions), compute isolation (separate clusters or microVM sandboxes such as Kata Containers), and data isolation (separate databases and per-tenant encryption keys).&lt;/p&gt;

&lt;h3&gt;
  
  
  Tenant isolation models
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Isolation&lt;/th&gt;
&lt;th&gt;What tenants still share&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Separate accounts or projects&lt;/td&gt;
&lt;td&gt;All layers&lt;/td&gt;
&lt;td&gt;Highest&lt;/td&gt;
&lt;td&gt;Only organization-level billing and policy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Separate clusters in one account&lt;/td&gt;
&lt;td&gt;Compute&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Cloud IAM, network, and account quotas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Separate namespaces in one cluster&lt;/td&gt;
&lt;td&gt;Compute&lt;/td&gt;
&lt;td&gt;Low to moderate&lt;/td&gt;
&lt;td&gt;Kernel, nodes, and cluster control plane; relies on network policies, RBAC, quotas, and pod security&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Separate database instances&lt;/td&gt;
&lt;td&gt;Data&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Network and admin credentials&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Separate databases or schemas on one instance&lt;/td&gt;
&lt;td&gt;Data&lt;/td&gt;
&lt;td&gt;Moderate&lt;/td&gt;
&lt;td&gt;Database engine, memory, and admin accounts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Row-level security on shared tables&lt;/td&gt;
&lt;td&gt;Data&lt;/td&gt;
&lt;td&gt;Lowest&lt;/td&gt;
&lt;td&gt;Everything; one missing tenant context or a role that bypasses RLS exposes other tenants&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Choose a compute model and a data model separately. A common pattern is separate accounts for the most sensitive tenants and shared clusters with separate databases for the rest.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I design AI infrastructure for cloud compliance using BYOK and tenant data segregation?
&lt;/h2&gt;

&lt;p&gt;In this context, BYOK (bring your own key) means encrypting data with keys you control, generated or imported into a cloud key management service, instead of provider-managed keys. Tenant isolation and per-tenant encryption are the two pillars of preventing cross-tenant data exposure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Per-tenant encryption keys
&lt;/h3&gt;

&lt;p&gt;Store each tenant’s encryption key in a cloud KMS (such as &lt;a href="https://aws.amazon.com/kms/" rel="noopener noreferrer"&gt;AWS KMS&lt;/a&gt;, &lt;a href="https://docs.cloud.google.com/kms/docs" rel="noopener noreferrer"&gt;Google Cloud KMS&lt;/a&gt;, or &lt;a href="https://azure.microsoft.com/en-us/products/key-vault/" rel="noopener noreferrer"&gt;Azure Key Vault&lt;/a&gt;). The application references the tenant’s key ID when encrypting or decrypting that tenant’s data. If one tenant’s key is compromised, only that tenant’s data is exposed. Disabling or deleting a tenant’s key makes their data unreadable, which supports offboarding and deletion requests, and KMS logs show every use of each tenant’s key. Scope the application’s decrypt permission per tenant, or one compromised service can still use every key.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tenant separation in AI workloads
&lt;/h3&gt;

&lt;p&gt;Vector stores and model caches introduce new cross-tenant risks. If multiple tenants share a vector database, queries from one tenant could surface embeddings from another. Mitigations include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Namespace or collection-level separation within the vector store&lt;/li&gt;
&lt;li&gt;Tenant-scoped query filters enforced at the application layer&lt;/li&gt;
&lt;li&gt;Separate model inference endpoints per tenant for the most sensitive workloads&lt;/li&gt;
&lt;li&gt;Scoping prompt caches and response caches to one tenant. Inference servers that reuse the KV cache for shared prompt prefixes, and semantic caches that return a stored answer for a similar prompt, can leak data or timing signals across tenants. Add the tenant ID to the cache key or disable cross-tenant cache sharing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How Control Plane approaches regulated workloads
&lt;/h2&gt;

&lt;p&gt;Control Plane is the unbreakable platform for production workloads. It combines any cloud, neocloud, bare metal, and your own servers into what Control Plane calls a Global Virtual Cloud (GVC), and teams run it in a single region, a single cloud, or across clouds. Control Plane handles Day 2 operations for you, including autoscaling, right-sizing, built-in observability, and security, with no Kubernetes cluster you have to operate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compliance posture.&lt;/strong&gt; Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant. These controls and the evidence they produce support your compliance, though they do not make you compliant on their own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data residency through location selection.&lt;/strong&gt; A workload runs only in the locations of its GVC, which can include AWS, GCP, and Azure regions, Kubernetes clusters you already run, and servers in your own data center or from bare-metal and GPU providers. Control Plane Managed Kubernetes (MK8s) joins those servers into a cluster that Control Plane runs for you as a location. You can keep two or more locations inside one country, including combinations of providers, so the GVC’s location list acts as the region allow-list for that workload. Two in-country locations can also meet the 99.999% SLA condition below. Platform data is handled separately: org secrets are encrypted with envelope encryption and held in cloud HSMs across multiple providers, and logs are aggregated by Control Plane (30-day default retention) and can also be shipped to destinations you control, such as an Amazon S3 bucket or CloudWatch in your chosen region.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Active-active failover.&lt;/strong&gt; A workload deployed to a GVC runs active-active in every location of that GVC, and a global endpoint routes each request to the nearest healthy location. The 99.999% availability SLA applies to workloads running at least two replicas in at least two locations. Those locations can be two regions of one cloud or locations on different providers. For strategies on surviving a single-region outage, see &lt;a href="https://controlplane.com/blog/post/keep-app-online-aws-region-outage?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=run-regulated-apps-cloud-soc2-hipaa-pci-data-residency" rel="noopener noreferrer"&gt;how to keep your app online during an AWS region outage&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security defaults.&lt;/strong&gt; Workloads are closed by default behind a deny-by-default internal firewall, and traffic between them uses mTLS, with each workload’s client certificate rotated every hour. All data is encrypted at rest and in transit. Each workload is isolated with cgroups, namespaces, and restricted syscalls and capabilities, and Control Plane Sandboxes, isolated environments for AI coding agents and untrusted code, run in dedicated Kata Containers microVMs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Secrets and identity.&lt;/strong&gt; Control Plane’s built-in secrets management lets workloads reference a secret as cpln://secret/NAME once their identity is granted the reveal permission, so secret values stay out of code and images. Control Plane’s Universal Cloud Identity gives workloads short-lived, least-privilege access to 600+ AWS, GCP, and Azure services, with no long-lived cloud keys in your code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Audit trail.&lt;/strong&gt; Every action, whether made through the console, CLI, Terraform, Pulumi, or AI agents using the Control Plane MCP server, is recorded in a tamper-proof audit trail. Your own workloads can write application events to the same audit trail through a custom audit context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Policy and IaC.&lt;/strong&gt; Control Plane policies are org-scoped and grant fine-grained permissions on every resource type to users, groups, service accounts, and workload identities. Control Plane ships its own Terraform and Pulumi providers, so it complements the infrastructure as code you already run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost.&lt;/strong&gt; Customers typically cut compute costs 30 to 50 percent compared with running directly on AWS, GCP, or Azure. SAFE Health, a connected-diagnostics platform working with Mayo Clinic, &lt;a href="https://controlplane.com/customers/safehealth?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=run-regulated-apps-cloud-soc2-hipaa-pci-data-residency" rel="noopener noreferrer"&gt;migrated 8 environments from AWS to Control Plane and cut its AWS spend 75 percent&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For teams looking to simplify multi-cloud operations or consolidate existing infrastructure, see &lt;a href="https://controlplane.com/blog/post/consolidate-multiple-clouds-one-platform?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=run-regulated-apps-cloud-soc2-hipaa-pci-data-residency" rel="noopener noreferrer"&gt;how to consolidate multiple clouds into one platform&lt;/a&gt;. For a comparison of managed platform services versus building your own portability layer, see &lt;a href="https://controlplane.com/blog/post/managed-services-vs-portability-cloud-lock-in?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=run-regulated-apps-cloud-soc2-hipaa-pci-data-residency" rel="noopener noreferrer"&gt;managed services vs. portability and cloud lock-in&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does a SOC 2 Type II report mean a platform is secure?
&lt;/h3&gt;

&lt;p&gt;No. A SOC 2 Type II report shows that an independent auditor tested specific controls and found they operated effectively over a defined period. Read the report’s scope, exceptions, and complementary user entity controls to understand what the platform covers and what you must handle.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is there an official HIPAA certification for cloud platforms?
&lt;/h3&gt;

&lt;p&gt;No. The U.S. Department of Health and Human Services does not certify cloud platforms as HIPAA compliant. Look for a signed Business Associate Agreement and a published list of HIPAA-eligible services. The BAA sets the platform’s contractual obligations for safeguarding ePHI, and under HIPAA a business associate is also directly liable for certain requirements, including the Security Rule.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between PCI DSS Level 1 and other levels?
&lt;/h3&gt;

&lt;p&gt;Level 1 is the top tier for service providers. Visa and Mastercard assign it to service providers that handle more than 300,000 card transactions a year, and it requires an annual assessment by a Qualified Security Assessor, who issues a Report on Compliance (ROC) and an Attestation of Compliance (AoC). Level 2 service providers can self-assess with Self-Assessment Questionnaire D. Ask any provider for its responsibility matrix, which PCI DSS v4.0 requirement 12.9.2 obliges it to provide on request.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I achieve multi-region failover while keeping all data in one country?
&lt;/h3&gt;

&lt;p&gt;Yes, if the country has two or more available cloud regions or data center locations. Run active-active or active-passive between them and pin all replicas, backups, logs, and encryption keys to those locations. If a single provider lacks two in-country regions, combine providers or add your own data center.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I prevent secrets from leaking in IaC pipelines?
&lt;/h3&gt;

&lt;p&gt;Store secrets in a dedicated secrets manager and reference them by name in your IaC templates. Use short-lived credentials through workload identity federation, run secret-scanning tools in CI, encrypt your IaC state files, and restrict access to the state backend.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the shared responsibility model in cloud compliance?
&lt;/h3&gt;

&lt;p&gt;The platform is responsible for infrastructure-level controls such as physical security, hypervisor patching, and network fabric. You are responsible for identity and access management, secrets, application code security, and data classification. Network segmentation, encryption, logging, backups, and incident response are shared.&lt;/p&gt;

&lt;h3&gt;
  
  
  How should I handle regulated data in AI inference pipelines?
&lt;/h3&gt;

&lt;p&gt;Classify data before it reaches a model. Use self-hosted or in-region inference for regulated data. Log prompts and outputs with redaction of sensitive fields. Apply access control to model endpoints and vector stores. Document the full data flow for auditors.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does Control Plane make my application compliant?
&lt;/h3&gt;

&lt;p&gt;No. Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant and provides audited controls and evidence that support your compliance, but your application still needs its own controls for data classification, identity, secrets, application security, and logging.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can Control Plane keep my workload in a single cloud?
&lt;/h3&gt;

&lt;p&gt;Yes. Many teams run Control Plane in a single cloud for its Day 2 operations and security defaults. A GVC can contain locations from a single provider, and two regions of one cloud qualify for the 99.999% SLA when a workload runs at least two replicas in those two locations.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does Control Plane handle workload isolation?
&lt;/h3&gt;

&lt;p&gt;Each workload is isolated with cgroups, namespaces, and restricted syscalls and capabilities, and Control Plane Sandboxes run in dedicated Kata Containers microVMs. Workloads are closed by default behind a deny-by-default internal firewall, and traffic between them uses mTLS.&lt;/p&gt;

&lt;p&gt;See how Control Plane runs regulated workloads.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://controlplane.com/requestdemo?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=run-regulated-apps-cloud-soc2-hipaa-pci-data-residency" rel="noopener noreferrer"&gt;Talk to the Control Plane team&lt;/a&gt; or &lt;a href="https://console.cpln.io/signup" rel="noopener noreferrer"&gt;sign up free&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://controlplane.com/blog/post/run-regulated-apps-cloud-soc2-hipaa-pci-data-residency?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=run-regulated-apps-cloud-soc2-hipaa-pci-data-residency" rel="noopener noreferrer"&gt;Control Plane blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>compliance</category>
      <category>security</category>
      <category>cloud</category>
      <category>devops</category>
    </item>
    <item>
      <title>Managed Services vs Portability: When Cloud Lock-In Is Worth It and How to Stay Cloud-Agnostic</title>
      <dc:creator>Noah Grinstein</dc:creator>
      <pubDate>Sat, 31 Oct 2026 04:36:00 +0000</pubDate>
      <link>https://dev.to/noahcontrolplane/managed-services-vs-portability-when-cloud-lock-in-is-worth-it-and-how-to-stay-cloud-agnostic-30ph</link>
      <guid>https://dev.to/noahcontrolplane/managed-services-vs-portability-when-cloud-lock-in-is-worth-it-and-how-to-stay-cloud-agnostic-30ph</guid>
      <description>&lt;p&gt;Lock-in is worth accepting when a managed service saves more engineering time than it will cost to leave, and it is not worth it for the core compute runtime that every workload depends on. The runtime is the layer you should keep portable. Control Plane keeps the runtime portable across AWS, GCP, Azure, and your own servers, including on premises, while still letting workloads use each cloud’s managed services through Universal Cloud Identity, Control Plane’s credential-free access to AWS, GCP, and Azure services. This guide offers an honest framework for deciding when lock-in is a fair price, a service-by-service map of proprietary services to portable alternatives, and a practical exit plan you can act on today.&lt;/p&gt;

&lt;p&gt;Disclosure: Control Plane publishes this guide.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Lock-in becomes a problem when it is accidental, unmeasured, or applied to the wrong layer.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;When lock-in is worth it:&lt;/strong&gt; A managed service materially reduces staffing, improves reliability, or accelerates delivery, and you have documented the exit cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When it is not:&lt;/strong&gt; The service is your core compute runtime or your identity plane, where switching costs compound across every workload. Managed Kubernetes is fine when workload definitions stay in standard manifests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The portable layer to protect:&lt;/strong&gt; Application code, container images, deployment pipelines, data formats, and the runtime itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The exit plan:&lt;/strong&gt; Maintain a service-dependency register, test data exports quarterly, keep infrastructure as code, and budget for egress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How Control Plane fits:&lt;/strong&gt; Control Plane runs workloads on AWS, GCP, Azure, your own Kubernetes clusters through Control Plane’s Bring Your Own Kubernetes (BYOK), and your own machines, from bare metal to on-premises servers, joined as locations with Control Plane Managed Kubernetes (MK8s), all mixed in one environment. Universal Cloud Identity lets those workloads call AWS, GCP, and Azure managed services without long-lived cloud keys in your code. You get managed-service benefits without surrendering runtime portability.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a deeper look at the full lock-in landscape, see our companion piece on &lt;a href="https://controlplane.com/blog/post/how-to-avoid-cloud-vendor-lock-in?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=managed-services-vs-portability-cloud-lock-in" rel="noopener noreferrer"&gt;how to avoid cloud vendor lock-in&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Do Managed Platform Services Increase Vendor Lock-In?
&lt;/h2&gt;

&lt;p&gt;Managed services create lock-in in five ways, and they differ in how hard they are to undo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Proprietary APIs
&lt;/h3&gt;

&lt;p&gt;When your application code calls a vendor-specific API, every call is a line of migration debt. The more deeply integrated the API, the more refactoring a move requires. This is the most visible form of lock-in and the one engineers think of first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Gravity and Egress Costs
&lt;/h3&gt;

&lt;p&gt;Large datasets are expensive to move. Cloud providers charge for data leaving their network, and the sheer time to transfer terabytes or petabytes creates inertia. Transfer time and egress fees grow with data volume, so the cost of leaving rises the longer you stay.&lt;/p&gt;

&lt;h3&gt;
  
  
  Proprietary Identity and Permissions
&lt;/h3&gt;

&lt;p&gt;IAM systems differ significantly between AWS, GCP, and Azure. Policies, roles, and service accounts written for one cloud do not translate to another. Migrating identity is tedious, error-prone, and security-sensitive.&lt;/p&gt;

&lt;h3&gt;
  
  
  Proprietary Serverless Runtimes
&lt;/h3&gt;

&lt;p&gt;Functions tied to a specific serverless platform carry implicit dependencies on the platform’s event model, scaling behavior, timeout limits, and deployment tooling. These are difficult to replicate elsewhere.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contract Terms
&lt;/h3&gt;

&lt;p&gt;Committed-use discounts, enterprise agreements, and reserved capacity create financial lock-in. Breaking a contract early can mean forfeiting discounts or paying penalties.&lt;/p&gt;

&lt;p&gt;Data gravity and proprietary identity are the hardest to undo. Moving data is a large but bounded transfer project, while identity must be redesigned and re-audited for every workload. Proprietary APIs come next, then serverless runtimes, then contract terms, which have a defined end date.&lt;/p&gt;

&lt;h2&gt;
  
  
  Decision Framework: When Is the Managed Option Worth It?
&lt;/h2&gt;

&lt;p&gt;Use this table to evaluate each service category.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service Category&lt;/th&gt;
&lt;th&gt;Lock-In Level&lt;/th&gt;
&lt;th&gt;Switching Cost Drivers&lt;/th&gt;
&lt;th&gt;When the Managed Option Is Worth It&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Compute runtime&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Every workload depends on it; migration touches everything&lt;/td&gt;
&lt;td&gt;Rarely worth locking in. Keep this portable.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kubernetes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Storage classes, load balancer and ingress annotations, CNI plugins, and the link between pods and cloud IAM (EKS Pod Identity, Workload Identity Federation for GKE, Microsoft Entra Workload ID) are cloud-specific&lt;/td&gt;
&lt;td&gt;Use managed Kubernetes for convenience, but keep workload definitions portable via standard manifests.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Relational databases&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Schema compatibility is high (PostgreSQL, MySQL), but managed features (replication, backups) differ&lt;/td&gt;
&lt;td&gt;Worth it when the managed service handles HA, patching, and backups you would otherwise staff for.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NoSQL databases&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Proprietary query languages, data models, and SDKs (DynamoDB, Cosmos DB)&lt;/td&gt;
&lt;td&gt;Worth it for rapid prototyping or when throughput requirements match the service exactly. Document the exit path.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Object storage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Low (API), Medium (large datasets)&lt;/td&gt;
&lt;td&gt;S3-compatible APIs are a de facto standard, though Azure Blob Storage uses its own API. Egress fees and transfer time scale with data volume. Lifecycle rules, storage classes, and event notifications differ by provider.&lt;/td&gt;
&lt;td&gt;Almost always worth it. For large buckets, budget for egress and keep an export or replication path.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Queues and streaming&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Client SDKs, delivery semantics, ordering, and retention differ across SQS, Pub/Sub, Event Hubs, and Kinesis&lt;/td&gt;
&lt;td&gt;Worth it for most workloads. Wrap producers and consumers behind an interface, or use a Kafka- or AMQP-compatible managed service so client code stays portable.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Serverless functions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Event sources, cold-start behavior, and runtime constraints are proprietary&lt;/td&gt;
&lt;td&gt;Worth it for event-driven glue code, spiky traffic, and low-traffic endpoints. For core business logic, keep handlers thin and put the logic in plain libraries that can also run in a container.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Identity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Policies, roles, and trust relationships are cloud-specific&lt;/td&gt;
&lt;td&gt;Abstract identity where possible. Use workload identity federation over long-lived keys.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Observability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Proprietary query languages and dashboards; data export is usually feasible&lt;/td&gt;
&lt;td&gt;Worth it when the team is small. Adopt OpenTelemetry for instrumentation to keep the data portable.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Managed AI / model APIs&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Medium-High&lt;/td&gt;
&lt;td&gt;Model-specific prompt tuning, fine-tuning artifacts, and pricing models&lt;/td&gt;
&lt;td&gt;Worth it for speed to market. Use an abstraction layer for model calls.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Which Open-Source Alternatives to Managed Databases Best Support Portability?
&lt;/h2&gt;

&lt;p&gt;When a managed service’s lock-in level is too high for your risk tolerance, open-source alternatives can restore portability. The table below maps common managed services to their portable counterparts.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Managed Service&lt;/th&gt;
&lt;th&gt;Portable Alternative&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Amazon RDS for PostgreSQL, Cloud SQL for PostgreSQL, Azure Database for PostgreSQL&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.postgresql.org/" rel="noopener noreferrer"&gt;PostgreSQL&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Schema-level compatibility is strong. Run it on any cloud or on premises.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon RDS for MySQL, Cloud SQL for MySQL&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.mysql.com/" rel="noopener noreferrer"&gt;MySQL&lt;/a&gt; or &lt;a href="https://mariadb.org/" rel="noopener noreferrer"&gt;MariaDB&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Widely supported. MariaDB began as a MySQL fork and is compatible with many MySQL workloads, though the two have diverged in newer versions.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DynamoDB, Cosmos DB&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.scylladb.com/" rel="noopener noreferrer"&gt;ScyllaDB&lt;/a&gt; or &lt;a href="https://cassandra.apache.org/" rel="noopener noreferrer"&gt;Apache Cassandra&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Both are wide-column databases. Apache Cassandra is open source. ScyllaDB is source-available since 2025 and offers Alternator, a DynamoDB-compatible API. Cosmos DB also offers a Cassandra-compatible API, which eases moves in either direction.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon SQS, Google Pub/Sub&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://kafka.apache.org/" rel="noopener noreferrer"&gt;Apache Kafka&lt;/a&gt;, &lt;a href="https://nats.io/" rel="noopener noreferrer"&gt;NATS&lt;/a&gt;, or &lt;a href="https://www.rabbitmq.com/" rel="noopener noreferrer"&gt;RabbitMQ&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Kafka excels at high-throughput streaming and is the closer match for Pub/Sub. RabbitMQ is mature for task queues and is the closer match for SQS. NATS is lightweight and supports both patterns.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AWS Lambda, Cloud Functions, Azure Functions&lt;/td&gt;
&lt;td&gt;Standard containers&lt;/td&gt;
&lt;td&gt;Package functions as containers to decouple from the serverless runtime. Any container platform can run them.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon ElastiCache&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://redis.io/" rel="noopener noreferrer"&gt;Redis&lt;/a&gt; or &lt;a href="https://valkey.io/" rel="noopener noreferrer"&gt;Valkey&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Redis is widely deployed and, from Redis 8, is available under AGPLv3 as well as source-available licenses. Valkey is a BSD-licensed Linux Foundation fork of Redis 7.2.4. ElastiCache supports both engines, so the move is usually low-friction.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The right choice depends on your team’s operational capacity and workload requirements, not on a blanket recommendation.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Is It Worth Accepting Platform Lock-In for Managed AI Services?
&lt;/h2&gt;

&lt;p&gt;AI services are the newest and fastest-moving category of managed cloud offerings. The lock-in calculus here is different because the field changes so quickly that today’s best model may not be tomorrow’s.&lt;/p&gt;

&lt;h3&gt;
  
  
  Evaluate Five Factors
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Speed to market.&lt;/strong&gt; Managed AI APIs remove the work of hosting, scaling, and updating models, so you can ship a first version without building GPU infrastructure. If time-to-market is critical, the lock-in trade-off is often favorable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model quality.&lt;/strong&gt; Some proprietary models outperform open alternatives on specific tasks. Benchmark on your data before committing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data sensitivity.&lt;/strong&gt; Sending data to a third-party model API may conflict with compliance requirements. On-premises or private inference may be necessary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost at scale.&lt;/strong&gt; API pricing that looks cheap at prototype volume can become prohibitive at production scale. Model the cost curve before you commit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ability to swap models behind an abstraction.&lt;/strong&gt; If your application calls models through a thin abstraction layer, switching providers is mostly a configuration change. You still need to re-test prompts and tool calls, re-run evaluations, and re-embed stored vectors if the embedding model changes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Use managed AI APIs for experimentation and initial deployment, and build an abstraction layer for model calls from day one. For production inference at scale, portable containers running on GPU infrastructure give you the flexibility to move between clouds or neoclouds as pricing and performance shift. On Control Plane, workloads can attach NVIDIA GPUs, and MK8s lets you join GPU servers from other providers as locations. See our guide on &lt;a href="https://controlplane.com/blog/post/ai-inference-multiple-gpu-clouds?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=managed-services-vs-portability-cloud-lock-in" rel="noopener noreferrer"&gt;running AI inference across multiple GPU clouds&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Multi-Cloud Infrastructure Patterns Reduce Dependence on Proprietary Managed Services?
&lt;/h2&gt;

&lt;p&gt;Six engineering patterns reduce dependence on proprietary managed services when applied across the stack.&lt;/p&gt;

&lt;h3&gt;
  
  
  Containerize the Runtime
&lt;/h3&gt;

&lt;p&gt;Package every workload as a standard container image that follows the OCI image spec. An image packages application code and dependencies so any runtime that supports the OCI image spec can run it. Portability still has limits. Build multi-architecture images if you may run on both x86 and Arm nodes, keep configuration in environment variables or secrets rather than the image, and treat kernel features and GPU drivers as host dependencies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Infrastructure as Code
&lt;/h3&gt;

&lt;p&gt;Define all infrastructure in code with tools such as Terraform, OpenTofu, or Pulumi. Infrastructure as code makes environments reproducible and auditable. On Control Plane, the CLI, console, and Control Plane’s own Terraform and Pulumi providers all work through the same Control Plane API, so your definitions stay consistent.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Protocols and Formats
&lt;/h3&gt;

&lt;p&gt;Prefer open standards: OpenTelemetry for observability, S3-compatible APIs for object storage, SQL for relational data, AMQP or NATS for messaging. Open protocols reduce the surface area of proprietary dependency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Isolate Provider-Specific Code Behind Interfaces
&lt;/h3&gt;

&lt;p&gt;When you do use a managed service, wrap it behind a well-defined interface in your application code. A storage interface, a queue interface, or a model-call interface means you can swap implementations without touching business logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scheduled Data Replication
&lt;/h3&gt;

&lt;p&gt;For critical datasets, replicate data to a second cloud or to your own infrastructure on a schedule. This keeps a current copy outside the primary provider for migration or disaster recovery. Replication adds ongoing egress and storage costs, so limit it to data you cannot rebuild.&lt;/p&gt;

&lt;h3&gt;
  
  
  Workload Identity Instead of Long-Lived Keys
&lt;/h3&gt;

&lt;p&gt;Long-lived API keys and service account credentials are both a security risk and a portability obstacle. Use workload identity federation to grant short-lived credentials scoped to the current task. On Control Plane, Universal Cloud Identity does this for AWS, GCP, and Azure services.&lt;/p&gt;

&lt;p&gt;For a broader look at cloud-native design principles that support portability, see our guide on &lt;a href="https://controlplane.com/blog/post/cloud-native-architecture-principles-patterns-and-building-portable-systems?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=managed-services-vs-portability-cloud-lock-in" rel="noopener noreferrer"&gt;cloud-native architecture principles, patterns, and building portable systems&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Should I Choose PaaS or SaaS for Vendor Lock-In and Portability?
&lt;/h2&gt;

&lt;p&gt;Choose a PaaS when portability matters. A PaaS runs your application, so you keep the code, images, and data. A SaaS product replaces the application, so only your data can move.&lt;/p&gt;

&lt;p&gt;The platform provides the runtime, networking, and operational tooling. If the PaaS uses standard container images and open APIs, your application is portable even if the platform itself is not.&lt;/p&gt;

&lt;p&gt;With SaaS, the contract usually says you own your data, but the export format and completeness depend on the vendor. You do not control the application logic, the runtime, or the operational model. Portability depends entirely on the vendor’s data export capabilities and API compatibility. Switching SaaS providers often means rebuilding workflows from scratch.&lt;/p&gt;

&lt;p&gt;A PaaS keeps these advantages only if it runs standard containers and does not impose a proprietary build or deployment format. For a detailed comparison of PaaS options, see our &lt;a href="https://controlplane.com/blog/post/best-paas-providers-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=managed-services-vs-portability-cloud-lock-in" rel="noopener noreferrer"&gt;guide to the best PaaS providers in 2026&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Contract Clauses Should I Require for Data Portability and Service Exit?
&lt;/h2&gt;

&lt;p&gt;Before signing a cloud or managed-service agreement, negotiate terms that protect your ability to leave. The following checklist covers the essentials.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is general guidance, not legal advice. Consult qualified counsel for your specific situation.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data export format and timeline.&lt;/strong&gt; The provider must export your data in a standard, documented format within a defined number of days after termination.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exit assistance.&lt;/strong&gt; The contract should include a transition period during which the provider supports migration activities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Egress fee terms.&lt;/strong&gt; Cap or waive egress fees during the transition period. At minimum, get clarity on per-GB costs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notice periods.&lt;/strong&gt; Ensure notice periods for termination are reasonable and symmetric. You should not need 12 months’ notice to leave.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Termination for convenience.&lt;/strong&gt; You should be able to terminate without cause, subject to reasonable notice and payment for services consumed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Price change caps.&lt;/strong&gt; Limit annual price increases to a defined percentage, or require advance notice that gives you time to evaluate alternatives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data deletion certification.&lt;/strong&gt; After migration, the provider must certify in writing that your data has been deleted from their systems, including backups, within a specified timeframe.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Maintain a service-dependency register that tracks each provider-specific component, its owner, data location, export procedure, portable alternative, and estimated exit cost. Review it quarterly.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Control Plane Approaches Portability
&lt;/h2&gt;

&lt;p&gt;Control Plane is the platform for running unbreakable apps and agents. It combines any cloud, neocloud, and bare metal into what Control Plane calls a Global Virtual Cloud (GVC), a set of locations a workload runs across.&lt;/p&gt;

&lt;p&gt;On Control Plane, a workload deployed to a GVC runs active-active in every location of that GVC, and a global endpoint routes each request to the nearest healthy location, so you get failover without paying for idle standby capacity. The 99.999% availability SLA applies to workloads running at least two replicas in at least two locations, and those locations can be on different providers.&lt;/p&gt;

&lt;p&gt;During the October 2025 AWS us-east-1 outage, which lasted about 15 hours, Control Plane customers with us-east-1 in their GVC had no downtime, and their workloads were “active and running in healthy locations within 10 seconds,” according to Control Plane internal incident telemetry. See &lt;a href="https://controlplane.com/blog/post/beyond-backups-designing-systems-that-survive-the-inevitable?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=managed-services-vs-portability-cloud-lock-in" rel="noopener noreferrer"&gt;designing systems that survive the inevitable&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Control Plane runs serverless, standard, stateful, cron, and VM workloads on AWS, GCP, and Azure, on clusters you already run through Control Plane’s Bring Your Own Kubernetes (BYOK), on your own machines (bare metal or VMs) turned into managed locations with Control Plane Managed Kubernetes (MK8s), and on premises. On Control Plane-provided compute, there is no Kubernetes cluster you have to operate, and Control Plane handles Day 2 operations for you, including autoscaling, Capacity AI (Control Plane’s right-sizing of CPU and memory based on historical usage), built-in observability, and security. You pay for the CPU and memory you reserve, by the millicore and the megabyte, with no contracts or minimums. Egress, storage, observability, dedicated load balancers, and GPUs are billed separately.&lt;/p&gt;

&lt;p&gt;On Control Plane, the template catalog deploys open-source data services such as PostgreSQL, MySQL, MariaDB, Cassandra, Kafka, NATS, RabbitMQ, and Redis or Valkey into a GVC, so the portable alternatives above run on the same platform as your workloads.&lt;/p&gt;

&lt;p&gt;Control Plane’s Universal Cloud Identity gives workloads short-lived, least-privilege access to 600+ AWS, GCP, and Azure services, with no long-lived cloud keys in your code. The Control Plane MCP server uses the same API as the CLI, console, and Terraform and Pulumi providers, so Control Plane complements the infrastructure as code you already run.&lt;/p&gt;

&lt;p&gt;Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant.&lt;/p&gt;

&lt;p&gt;Customers typically cut compute costs 30 to 50 percent compared with running directly on AWS, GCP, or Azure.&lt;/p&gt;

&lt;p&gt;You use each cloud’s managed services where they earn their place, and your runtime stays free to move. For a walkthrough of deploying the same application across AWS, GCP, and Azure, see &lt;a href="https://controlplane.com/blog/post/run-same-app-aws-gcp-azure?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=managed-services-vs-portability-cloud-lock-in" rel="noopener noreferrer"&gt;how to run the same app on AWS, GCP, and Azure&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  When do managed platform services increase vendor lock-in?
&lt;/h3&gt;

&lt;p&gt;Managed services increase lock-in when they expose proprietary APIs, store large volumes of data subject to egress fees, impose proprietary identity models, or use non-standard event systems. The more deeply your application integrates with these surfaces, the higher the switching cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which open-source alternatives to managed databases best support portability?
&lt;/h3&gt;

&lt;p&gt;PostgreSQL, MySQL, MariaDB, Apache Cassandra, Redis, and Valkey are widely adopted portable alternatives. ScyllaDB is a source-available option with a DynamoDB-compatible API. For queues and streaming, Apache Kafka, NATS, and RabbitMQ replace proprietary offerings.&lt;/p&gt;

&lt;h3&gt;
  
  
  When is it worth accepting platform lock-in for managed AI services?
&lt;/h3&gt;

&lt;p&gt;It is worth it when speed to market is critical and you build an abstraction layer over model calls from day one. Avoid deep lock-in for production inference at scale; portable containers on GPU infrastructure give you pricing and performance flexibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  What multi-cloud infrastructure patterns reduce dependence on proprietary managed services?
&lt;/h3&gt;

&lt;p&gt;Containerize workloads, define infrastructure as code, use open protocols (OpenTelemetry, S3-compatible APIs, SQL), isolate provider-specific code behind interfaces, replicate critical data on a schedule, and use workload identity instead of long-lived keys.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I choose PaaS or SaaS for vendor lock-in and portability?
&lt;/h3&gt;

&lt;p&gt;Choose PaaS when portability is a priority, because you keep control of your application code, container images, and data. SaaS portability depends almost entirely on the vendor’s data export capabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  What contract clauses should I require for data portability and service exit?
&lt;/h3&gt;

&lt;p&gt;Require data export in standard formats within a defined timeline, exit assistance during a transition period, capped or waived egress fees, reasonable notice periods, termination for convenience, price change caps, and written data deletion certification.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does Control Plane keep the runtime portable while using managed services?
&lt;/h3&gt;

&lt;p&gt;On Control Plane, workloads (containers or VMs) run on a Global Virtual Cloud (GVC), Control Plane’s set of locations that can span AWS, GCP, Azure, Kubernetes clusters you bring through Control Plane’s Bring Your Own Kubernetes (BYOK), and your own servers on premises. Control Plane’s Universal Cloud Identity lets those workloads use AWS, GCP, and Azure managed services without long-lived cloud keys in your code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is multi-cloud the same as cloud-agnostic?
&lt;/h3&gt;

&lt;p&gt;No. Multi-cloud means using more than one cloud provider. Cloud-agnostic means your workloads can move between providers with minimal effort. You can be multi-cloud and still deeply locked in to each provider’s proprietary services. True cloud-agnostic architecture requires portable runtimes, open standards, and abstraction layers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does containerization solve cloud portability?
&lt;/h3&gt;

&lt;p&gt;Only partly. Containers make application code and dependencies portable, as long as images are built for the CPU architectures you target. They do not solve portability for databases, storage, identity, networking, or observability, which often remain cloud-specific. You need additional patterns, such as open protocols and interface abstraction, to address those layers.&lt;/p&gt;

&lt;h3&gt;
  
  
  How often should I test my cloud exit plan?
&lt;/h3&gt;

&lt;p&gt;Test your cloud exit plan on a fixed schedule set by how critical the system is, such as quarterly for revenue-critical workloads, and after any major architecture change. Each test should export real data and deploy a representative workload on an alternative cloud.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://controlplane.com/requestdemo?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=managed-services-vs-portability-cloud-lock-in" rel="noopener noreferrer"&gt;Talk to the Control Plane team&lt;/a&gt; or &lt;a href="https://console.cpln.io/signup" rel="noopener noreferrer"&gt;sign up free&lt;/a&gt; to try it.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://controlplane.com/blog/post/managed-services-vs-portability-cloud-lock-in?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=managed-services-vs-portability-cloud-lock-in" rel="noopener noreferrer"&gt;Control Plane blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>devops</category>
      <category>architecture</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How to Consolidate Multiple Clouds and Accounts Into One Platform: An Enterprise Guide for 2026</title>
      <dc:creator>Noah Grinstein</dc:creator>
      <pubDate>Sat, 31 Oct 2026 02:09:38 +0000</pubDate>
      <link>https://dev.to/noahcontrolplane/how-to-consolidate-multiple-clouds-and-accounts-into-one-platform-an-enterprise-guide-for-2026-2lk0</link>
      <guid>https://dev.to/noahcontrolplane/how-to-consolidate-multiple-clouds-and-accounts-into-one-platform-an-enterprise-guide-for-2026-2lk0</guid>
      <description>&lt;p&gt;Consolidating clouds means putting every account and provider under one deployment model, one identity and policy layer, and one view of cost and health, while workloads can keep running where they are. The fastest route is a platform layer over the existing clouds rather than a mass migration to one provider. Control Plane puts AWS, GCP, Azure, and your own servers under one API, one policy model, and one billing account whose Cost &amp;amp; Usage view covers every org.&lt;/p&gt;

&lt;p&gt;Disclosure: Control Plane publishes this guide.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Cloud consolidation means bringing every cloud account, provider, and workload under a single operational model for identity, policy, deployment, and cost visibility. It does not require moving every workload to one provider.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The program:&lt;/strong&gt; Inventory everything, classify workloads, set a policy baseline, deploy in waves starting with stateless services, retire duplicates, measure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How to measure ROI:&lt;/strong&gt; Sum the savings from retired tools, reduced idle capacity, fewer undifferentiated engineering hours, and lower incident cost. Subtract one-time costs (migration, training, parallel running) and recurring platform fees over a fixed horizon, and report the payback period.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The merger case:&lt;/strong&gt; Inventory and federate identity in the first 30 days, apply shared policies and observability and move the first stateless workloads by Day 90, then migrate stateful services and fold in contracts as they renew.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How Control Plane fits:&lt;/strong&gt; A Control Plane org holds workloads, policies, secrets, and identities across AWS, GCP, Azure, your own clusters, and your own servers. Control Plane’s Bring Your Own Kubernetes (BYOK) adds clusters you already run, and Control Plane’s Managed Kubernetes (MK8s) turns bare metal or VMs into managed locations. Control Plane’s Global Virtual Cloud (GVC) is the set of locations a workload runs across. Enterprises can run several orgs, for example one per environment or business unit, under one billing account. Customers typically cut compute costs 30 to 50 percent compared with running directly on AWS, GCP, or Azure.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why do enterprises end up with cloud sprawl?
&lt;/h2&gt;

&lt;p&gt;Cloud sprawl builds up through acquisitions, team autonomy, and regional expansion. Acquisitions bring new AWS accounts and Azure subscriptions overnight. Business units spin up their own projects in GCP because the central team’s ticket queue is too slow. Shadow IT flourishes when developers need a sandbox faster than procurement can provide one. Region-by-region expansion adds accounts in new geographies to meet data residency rules. Different teams also pick different tools: one group standardizes on one provider’s managed database, another on a competing provider’s ML platform.&lt;/p&gt;

&lt;p&gt;Sprawl creates five recurring costs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Duplicated tooling and contracts.&lt;/strong&gt; Multiple monitoring agents, multiple secret managers, multiple container registries, each with its own license and support agreement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inconsistent security policy.&lt;/strong&gt; What counts as “least privilege” in one account may not exist in another. Firewall rules drift.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fragmented identity.&lt;/strong&gt; Engineers juggle separate credentials for each cloud. Service accounts accumulate long-lived keys that nobody rotates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Idle and overlapping capacity.&lt;/strong&gt; Dev environments left running, reserved instances bought by one team that another team duplicates in a different provider.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No single view of spend or health.&lt;/strong&gt; Finance cannot answer “how much do we spend on compute?” without pulling reports from three consoles and a spreadsheet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of these problems is manageable in isolation. Together, they create an environment where security incidents take longer to investigate, cost overruns go undetected for months, and platform teams spend their time on undifferentiated operations instead of building product.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does consolidating clouds actually mean?
&lt;/h2&gt;

&lt;p&gt;There are three common models.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Model A: Migrate to one cloud&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Model B: Govern each cloud separately&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Model C: Platform layer across clouds&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;What changes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;All workloads move to a single provider&lt;/td&gt;
&lt;td&gt;Each cloud is managed with its own native tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Migration effort&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Low (no workload moves; per-cloud tooling setup remains)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Lock-in&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High (single provider)&lt;/td&gt;
&lt;td&gt;Moderate per provider (each workload still uses native tools; operational complexity stays)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Governance consistency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High within one provider&lt;/td&gt;
&lt;td&gt;Low across providers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Best for&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Small estates with few provider-specific dependencies&lt;/td&gt;
&lt;td&gt;Organizations with strong per-cloud teams and low cross-cloud interaction&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Model A can be the right call for a small estate with workloads that have no deep provider-specific dependencies. Model B is the status quo for many large enterprises, and it works until the sprawl costs exceed the governance budget. Model C fits organizations that need consistent identity, policy, and cost control without a mass migration. On Control Plane, clusters you already run and your own servers join the same environment as cloud regions, so consolidation does not start with a mass migration. Workloads on Control Plane are standard containers and VM images, and Control Plane ships its own Terraform and Pulumi providers, so your definitions stay portable.&lt;/p&gt;

&lt;h2&gt;
  
  
  How can large enterprises consolidate multiple cloud accounts and providers into a single unified platform?
&lt;/h2&gt;

&lt;p&gt;This seven-step program works with an in-house platform or a commercial one.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Inventory accounts, workloads, owners, and spend.&lt;/strong&gt; List every cloud account and subscription. Map each workload to an owner, a cost center, and a classification (production, staging, dev, sandbox). Record monthly spend per account.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Classify workloads: keep, move, retire.&lt;/strong&gt; Some workloads belong where they are (tightly coupled to a provider service, subject to data residency rules). Some should move (running in an expensive region for no reason, duplicated across providers). Some should be retired (orphaned environments, abandoned projects).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Define one identity and policy baseline.&lt;/strong&gt; Decide on a single identity provider for human access (federated through your existing directory). Define a minimum policy set: tagging requirements, network segmentation rules, encryption standards, and least-privilege access patterns. Write these as code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick the deployment model.&lt;/strong&gt; Choose from the three models above. For most large enterprises, this means selecting a platform layer and integrating it with existing infrastructure-as-code pipelines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Move workloads in waves, starting with stateless services.&lt;/strong&gt; Stateless web services and APIs are the lowest-risk workloads to consolidate first. They can run active-active in old and new locations during the transition. Stateful services (databases, queues, caches) come later, with careful data migration planning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retire duplicate tools and contracts.&lt;/strong&gt; As workloads consolidate, decommission redundant monitoring agents, secret managers, container registries, and CI/CD systems. Renegotiate or cancel contracts as they come up for renewal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measure.&lt;/strong&gt; Record a baseline during step 1, then track accounts retired, policy compliance rate, spend reduction, deployment frequency, lead time for changes, and mean time to recovery. Report monthly to the executive sponsor.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What is the best way to standardize deployment and governance across dozens of cloud accounts?
&lt;/h2&gt;

&lt;p&gt;Standardize on eight controls that apply to every account.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Account structure.&lt;/strong&gt; Organize accounts using each provider’s native hierarchy: &lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html" rel="noopener noreferrer"&gt;AWS Organizations&lt;/a&gt; for grouping AWS accounts under organizational units, &lt;a href="https://learn.microsoft.com/en-us/azure/governance/management-groups/overview" rel="noopener noreferrer"&gt;Azure management groups&lt;/a&gt; for nesting subscriptions under a management hierarchy, and &lt;a href="https://docs.cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy" rel="noopener noreferrer"&gt;Google Cloud resource hierarchy&lt;/a&gt; for organizing projects under folders and an organization node. These structures let you apply policies at the right scope.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Policy as code.&lt;/strong&gt; Express security and compliance rules as code using engines like &lt;a href="https://www.openpolicyagent.org/" rel="noopener noreferrer"&gt;Open Policy Agent&lt;/a&gt;. Evaluate policies in CI before deployment, and enforce them again at the provider level (AWS service control policies, Azure Policy, Google Cloud organization policies) to catch changes made outside the pipeline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure as code.&lt;/strong&gt; Use &lt;a href="https://developer.hashicorp.com/terraform" rel="noopener noreferrer"&gt;Terraform&lt;/a&gt;, &lt;a href="https://opentofu.org/" rel="noopener noreferrer"&gt;OpenTofu&lt;/a&gt;, or &lt;a href="https://www.pulumi.com/" rel="noopener noreferrer"&gt;Pulumi&lt;/a&gt; to define all infrastructure. No manual changes in consoles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One CI/CD path.&lt;/strong&gt; Every workload deploys through the same pipeline, regardless of target cloud. This reduces “works on my cloud” problems and makes every deployment auditable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workload identity instead of long-lived keys.&lt;/strong&gt; Replace static API keys and service account JSON files with short-lived, scoped credentials issued at runtime. Each major cloud supports this natively, for example IAM roles for EC2 and EKS Pod Identity on AWS, managed identities and Microsoft Entra Workload ID on Azure, and service account attachment and Workload Identity Federation on Google Cloud.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tagging and cost allocation.&lt;/strong&gt; Enforce a mandatory tag set (owner, cost center, environment, service) at deployment time. Reject resources that lack required tags.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Central audit log.&lt;/strong&gt; Aggregate &lt;a href="https://aws.amazon.com/cloudtrail/" rel="noopener noreferrer"&gt;AWS CloudTrail&lt;/a&gt;, &lt;a href="https://learn.microsoft.com/en-us/azure/azure-monitor/fundamentals/activity-log" rel="noopener noreferrer"&gt;Azure Activity Log&lt;/a&gt;, and &lt;a href="https://docs.cloud.google.com/logging/docs/audit" rel="noopener noreferrer"&gt;Google Cloud Audit Logs&lt;/a&gt; into a single, immutable store. Set retention policies that meet your regulatory requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Golden paths and templates.&lt;/strong&gt; Publish a standard set of approved architectures (a web service, a background worker, a scheduled job, a database) as reusable modules. Teams pick from the catalog instead of building from scratch.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is the ROI of consolidating disparate cloud environments into one virtual cloud platform?
&lt;/h2&gt;

&lt;p&gt;ROI varies by estate. The model below gives you a framework to estimate it from your own inventory. Do not plug in industry averages; use your actual numbers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Formula:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pick a fixed horizon, such as three years, so one-time costs are spread over the period that benefits from them.&lt;/p&gt;

&lt;p&gt;ROI over the horizon (%) = (total savings – one-time costs – recurring costs) / (one-time costs + recurring costs) × 100. Report it together with the payback period.&lt;/p&gt;

&lt;p&gt;Payback period = the first month in which cumulative savings minus cumulative recurring costs exceed one-time costs. At steady state this is one-time costs / (monthly savings – monthly recurring costs).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Savings lines:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Line item&lt;/th&gt;
&lt;th&gt;How to estimate from your inventory&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Retired tools and licenses&lt;/td&gt;
&lt;td&gt;Sum annual cost of monitoring, security, CI/CD, and secret management tools that will be replaced or consolidated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reduced idle and overlapping capacity&lt;/td&gt;
&lt;td&gt;Identify dev/staging environments running 24/7, duplicate reserved instances across providers, and unused accounts. Sum their monthly cost and multiply by 12.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rightsized compute&lt;/td&gt;
&lt;td&gt;Compare current resource reservations to actual utilization (pull from provider cost explorers). The gap is the savings opportunity.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fewer engineer hours on undifferentiated operations&lt;/td&gt;
&lt;td&gt;Estimate hours per month spent on account provisioning, credential rotation, patching, and incident triage across clouds. Multiply the hours you expect to remove by fully loaded hourly cost, then by 12.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lower incident cost&lt;/td&gt;
&lt;td&gt;Estimate average cost per incident (engineer hours, customer impact, SLA credits). Multiply by the number of incidents per year you expect to avoid through consistent policy and faster detection.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Cost lines:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Line item&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;How to estimate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Migration effort&lt;/td&gt;
&lt;td&gt;One-time&lt;/td&gt;
&lt;td&gt;Engineer hours to onboard workloads, rewrite provider-specific integrations, and validate in the new model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Platform fees&lt;/td&gt;
&lt;td&gt;Recurring&lt;/td&gt;
&lt;td&gt;Annual cost of the platform layer or tooling you adopt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Training&lt;/td&gt;
&lt;td&gt;One-time, plus a smaller recurring amount for new hires&lt;/td&gt;
&lt;td&gt;Cost of upskilling teams on the new model and tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Parallel running during transition&lt;/td&gt;
&lt;td&gt;One-time&lt;/td&gt;
&lt;td&gt;Cost of running workloads in both old and new locations until cutover is complete&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Contract exit and data transfer&lt;/td&gt;
&lt;td&gt;One-time&lt;/td&gt;
&lt;td&gt;Early-termination fees on contracts you exit before renewal, and egress charges for moving data between providers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Savings ramp up as waves complete, so model them by quarter rather than assuming the full figure from month one. Count each dollar once: capacity you shut down as idle cannot also count as rightsizing.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do large organizations reduce redundant cloud spend from overlapping AWS and Azure subscriptions?
&lt;/h2&gt;

&lt;p&gt;Redundant spend usually sits in five places.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Find duplicate services across clouds.&lt;/strong&gt; Two monitoring platforms, two container registries, two managed Kubernetes clusters doing the same job in different providers. Pick one or consolidate to a platform that covers both.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rationalize commitments and reservations before they renew.&lt;/strong&gt; Review AWS Savings Plans and Reserved Instances, Azure reservations and savings plans, and Google Cloud committed use discounts. Most cannot be cancelled mid-term, so decide before each purchase or renewal whether to renew, resize, or let the commitment lapse. Coordinate across business units so one team’s commitment does not duplicate another’s.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retire idle accounts.&lt;/strong&gt; Sandbox accounts, former employee projects, and abandoned proof-of-concept environments accumulate cost. Inventory them, archive what is needed, and shut down the rest.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rightsize.&lt;/strong&gt; Use each provider’s cost tools (AWS Cost Explorer, Microsoft Cost Management, Google Cloud Billing Reports) to find over-provisioned instances. Downsize or switch to burstable types.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consolidate observability and security tools.&lt;/strong&gt; Running three APM agents, three log shippers, and three vulnerability scanners for the same workloads adds cost without adding coverage.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a deeper walkthrough, see the &lt;a href="https://controlplane.com/blog/post/cloud-cost-optimization-guide?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=consolidate-multiple-clouds-one-platform" rel="noopener noreferrer"&gt;cloud cost optimization guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I consolidate cloud infrastructure after a merger or acquisition with minimal downtime?
&lt;/h2&gt;

&lt;p&gt;Integrate the acquired estate, with its own accounts, identity providers, tools, and contracts, in three phases, moving stateless workloads active-active so traffic shifts gradually.&lt;/p&gt;

&lt;h3&gt;
  
  
  Day 0 to 30: Discover and stabilize
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Inventory the acquired company’s cloud accounts, workloads, identity providers, and spend. Use the same inventory template as your existing estate.&lt;/li&gt;
&lt;li&gt;Connect identity. Day 0 is legal close, so prepare federation before close and switch it on after a security review of the acquired identity provider (MFA, conditional access, admin accounts). Federate the acquired directory into your identity provider for single sign-on, then map each user’s cloud roles so you can see who has access to what. Merge directories later.&lt;/li&gt;
&lt;li&gt;Freeze new sprawl. Require all new workloads in the acquired estate to go through your provisioning process. No new shadow accounts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Day 30 to 90: Align policy and observability
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Apply your minimum policy baseline (tagging, encryption, network segmentation) to the acquired accounts. Use policy-as-code tools to enforce, not just audit.&lt;/li&gt;
&lt;li&gt;Ship the acquired company’s logs and metrics to your central observability stack. This gives you one place to detect incidents across both estates.&lt;/li&gt;
&lt;li&gt;Move the first stateless workloads. Pick low-risk APIs or web services. Run them active-active in both the old and new locations during the transition. This works only if the data each service reads is reachable from both locations. Traffic then shifts gradually and can shift back if something breaks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Day 90 and beyond: Consolidate data and contracts
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Migrate stateful services (databases, queues, object stores) with careful data validation. Use replication tools such as AWS Database Migration Service, Azure Database Migration Service, or Google Cloud Database Migration Service to keep source and target in sync until a short final cutover.&lt;/li&gt;
&lt;li&gt;Consolidate contracts. As the acquired company’s reserved instances and enterprise agreements come up for renewal, fold them into your master agreements or let them expire.&lt;/li&gt;
&lt;li&gt;Decommission the acquired company’s redundant tooling: CI/CD, monitoring, secret management, container registries.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stateful services still need a planned cutover or replication window, and DNS-based shifts are limited by record TTLs and client caching.&lt;/p&gt;

&lt;p&gt;On Control Plane, you can add the acquired company’s existing Kubernetes clusters as locations through BYOK. Once a workload is deployed through Control Plane to a GVC that includes those clusters and your cloud regions, it runs active-active across all of them, and the global endpoint sends each request to the nearest healthy location. Workloads still running outside Control Plane do not gain active-active until they are deployed this way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which tools support consolidating shadow IT cloud accounts?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What tools help reduce cloud vendor sprawl across business units?
&lt;/h3&gt;

&lt;p&gt;Tools for cloud consolidation fall into six categories. Each solves a different piece of the problem.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;What it solves&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Discovery&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Finding shadow accounts and unsanctioned cloud services&lt;/td&gt;
&lt;td&gt;Billing and payment-card records, SSO sign-in logs, &lt;a href="https://learn.microsoft.com/en-us/defender-cloud-apps/set-up-cloud-discovery" rel="noopener noreferrer"&gt;Microsoft Defender for Cloud Apps&lt;/a&gt; cloud discovery&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cloud-native governance services&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Account structure, policy guardrails, and compliance within a single provider&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html" rel="noopener noreferrer"&gt;AWS Organizations&lt;/a&gt;, &lt;a href="https://learn.microsoft.com/en-us/azure/governance/policy/overview" rel="noopener noreferrer"&gt;Azure Policy&lt;/a&gt;, &lt;a href="https://docs.cloud.google.com/organization-policy/overview" rel="noopener noreferrer"&gt;Google Cloud Organization Policy&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Infrastructure as code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Reproducible, auditable provisioning across providers&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://developer.hashicorp.com/terraform" rel="noopener noreferrer"&gt;Terraform&lt;/a&gt;, &lt;a href="https://opentofu.org/" rel="noopener noreferrer"&gt;OpenTofu&lt;/a&gt;, &lt;a href="https://www.pulumi.com/" rel="noopener noreferrer"&gt;Pulumi&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Policy engines&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cross-cloud policy evaluation and enforcement&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.openpolicyagent.org/" rel="noopener noreferrer"&gt;Open Policy Agent&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;FinOps and cost tools&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cost visibility, allocation, and optimization. Native tools cover one provider each; a cross-cloud view needs a common billing export such as the FinOps Foundation’s FOCUS specification, which AWS, Azure, and Google Cloud support&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://aws.amazon.com/aws-cost-management/aws-cost-explorer/" rel="noopener noreferrer"&gt;AWS Cost Explorer&lt;/a&gt;, &lt;a href="https://azure.microsoft.com/en-us/products/cost-management" rel="noopener noreferrer"&gt;Microsoft Cost Management&lt;/a&gt;, &lt;a href="https://docs.cloud.google.com/billing/docs/reports" rel="noopener noreferrer"&gt;Google Cloud Billing Reports&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Platform layers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Unified deployment, identity, policy, and observability across all clouds&lt;/td&gt;
&lt;td&gt;Control Plane; see the &lt;a href="https://controlplane.com/blog/post/10-best-multi-cloud-management-platforms-in-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=consolidate-multiple-clouds-one-platform" rel="noopener noreferrer"&gt;multi-cloud management platforms roundup&lt;/a&gt; for a vendor comparison&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Infrastructure as code and policy engines work across providers but require a team to build and maintain the glue. FinOps tools give you visibility but do not deploy or govern workloads. Platform layers cover deployment, identity, policy, observability, and cost for the workloads that run on them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which vendors specialize in enterprise cloud consolidation for regulated industries like finance and healthcare?
&lt;/h2&gt;

&lt;p&gt;Shortlist vendors that can show current compliance evidence scoped to where your workloads run, then test them against the five criteria below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Evaluation criteria for regulated buyers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Compliance attestations.&lt;/strong&gt; Request current SOC 2 Type II reports, PCI DSS attestations of compliance, and HIPAA business associate agreements. Ask for the scope of each attestation: does it cover the vendor’s management layer, the infrastructure where your workloads run, or both?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data residency controls.&lt;/strong&gt; Can you restrict workloads and data to specific regions or jurisdictions? Is this enforced by policy, or just documented?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit trails.&lt;/strong&gt; Does the platform produce a tamper-evident log of every change to configuration, policy, and access? Can you export it to your own SIEM?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Identity and least privilege.&lt;/strong&gt; Does the platform support workload identity with short-lived credentials? Can you enforce least-privilege access to cloud provider services without embedding long-lived keys?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exit terms.&lt;/strong&gt; What happens if you leave the platform? Can you export your workload definitions, policies, and configuration? Are there data portability guarantees in the contract?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant. On Control Plane, every action, whether made through the console, CLI, Terraform, Pulumi, or AI agents using the Control Plane MCP server, is recorded in a tamper-proof audit trail. A workload runs only in the locations of its GVC, so you control residency by choosing locations. Workloads are closed by default behind a deny-by-default internal firewall, and traffic between them uses mTLS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which enterprise platforms unify identity, billing, and deployment across multiple clouds?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How can I get a single pane of glass view across all our cloud providers and regions?
&lt;/h3&gt;

&lt;p&gt;On Control Plane, an org is an isolated boundary that holds workloads, secrets, policies, and identities. Enterprises can run several orgs, for example to separate environments or business units, and pay for all of them from one billing account. The CLI, console, Terraform and Pulumi providers, and the Control Plane MCP server all work through the same Control Plane API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 2 operations.&lt;/strong&gt; Control Plane handles Day 2 operations for you, including autoscaling, Capacity AI right-sizing (Control Plane’s automatic right-sizing of CPU and memory reservations between a minimum and maximum you set, based on historical usage), built-in observability, and security, with no Kubernetes cluster you have to operate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deployment.&lt;/strong&gt; A GVC can mix AWS, GCP, and Azure regions, clusters you already run (added through BYOK), and your own servers (added through MK8s). A workload deployed to a GVC runs active-active in every location of that GVC, and a global endpoint routes each request to the nearest healthy location. You get failover without paying for idle standby capacity. The 99.999% availability SLA applies to workloads running at least two replicas in at least two locations. For more detail, see how to &lt;a href="https://controlplane.com/blog/post/run-same-app-aws-gcp-azure?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=consolidate-multiple-clouds-one-platform" rel="noopener noreferrer"&gt;run the same app on AWS, GCP, and Azure&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Identity.&lt;/strong&gt; Control Plane’s Universal Cloud Identity gives workloads short-lived, least-privilege access to 600+ AWS, GCP, and Azure services, with no long-lived cloud keys in your code. Access policies are defined once per org and govern every resource in it, in every location.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observability.&lt;/strong&gt; Built-in metrics, logs, and traces cover every location in one place, with no third-party agent to install. Logs can also be forwarded to the logging stack you already run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost visibility.&lt;/strong&gt; A Cost &amp;amp; Usage view adds together every org on the billing account and breaks spend down per org and per resource, with a projected total. A billing_viewer role lets finance teams see costs without accessing workload configuration. A monthly spend alert, once you set an amount, emails every billing admin.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://controlplane.com/customers/safehealth?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=consolidate-multiple-clouds-one-platform" rel="noopener noreferrer"&gt;SAFE Health&lt;/a&gt;, a connected-diagnostics platform working with Mayo Clinic, migrated 8 environments from AWS to Control Plane and cut its AWS spend 75 percent. In their words: “We migrated 8 environments from AWS to Control Plane and no one noticed! Everything just worked.”&lt;/p&gt;

&lt;p&gt;During the October 20, 2025 AWS us-east-1 outage, which lasted about 15 hours and affected 100+ AWS services, the 20 percent of Control Plane customers with us-east-1 in their GVC had no downtime, and their workloads were “active and running in healthy locations within 10 seconds,” according to Control Plane internal incident telemetry. A detailed write-up is available in the post on &lt;a href="https://controlplane.com/blog/post/beyond-backups-designing-systems-that-survive-the-inevitable?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=consolidate-multiple-clouds-one-platform" rel="noopener noreferrer"&gt;designing systems that survive the inevitable&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;On Control Plane-provided compute, you pay for the CPU and memory you reserve, by the millicore and the megabyte, with no contracts or minimums. Egress, storage, observability, dedicated load balancers, and GPUs are billed separately. Control Plane is just as useful on a single region or a single cloud, where teams adopt it for the Day 2 operations alone.&lt;/p&gt;

&lt;p&gt;For a broader look at hybrid and multi-cloud management approaches, see the &lt;a href="https://controlplane.com/blog/post/hybrid-cloud-management?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=consolidate-multiple-clouds-one-platform" rel="noopener noreferrer"&gt;hybrid cloud management guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What does cloud consolidation mean?
&lt;/h3&gt;

&lt;p&gt;Cloud consolidation means bringing every cloud account, provider, and workload under one identity layer, one policy framework, one deployment model, and one view of cost and health. It does not require migrating everything to a single cloud provider.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I consolidate multiple cloud providers without migrating everything?
&lt;/h3&gt;

&lt;p&gt;Use a platform layer that sits above your existing clouds. Onboard accounts and workloads incrementally. Start with governance and visibility, then move workloads in waves if needed. On Control Plane, you add existing clusters through BYOK and your own servers through MK8s as locations, then deploy your containerized applications to them without re-architecting. See the guide on &lt;a href="https://controlplane.com/blog/post/how-to-move-off-a-single-cloud-provider-without-re-architecting-your-apps?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=consolidate-multiple-clouds-one-platform" rel="noopener noreferrer"&gt;moving off a single cloud provider without re-architecting your apps&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  How long does cloud consolidation take for a large enterprise?
&lt;/h3&gt;

&lt;p&gt;For a large enterprise it is a multi-quarter program, paced mostly by data migrations and contract renewal dates. Governance and cost visibility come first and can land within the first 90 days. Stateless workloads follow in waves. Stateful services and contracts take longest, because data needs validation and contracts end on their own renewal dates.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the biggest risk of cloud consolidation?
&lt;/h3&gt;

&lt;p&gt;Two risks dominate: downtime during a hard cutover, and concentrating every workload on one region or provider. Avoid both by running workloads active-active across multiple locations and providers, so traffic moves gradually during the transition and an outage in one location does not take down your services. Also confirm the platform’s exit terms, so you can export workload definitions and configuration.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I handle cloud consolidation after an acquisition?
&lt;/h3&gt;

&lt;p&gt;Inventory the acquired estate and federate identity in the first 30 days, apply shared policies and observability and move the first stateless workloads by Day 90, then migrate stateful services and fold in contracts as they renew. Run stateless workloads active-active in old and new locations so traffic shifts gradually instead of in one cutover.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I consolidate clouds without a dedicated platform team?
&lt;/h3&gt;

&lt;p&gt;Yes. A platform layer that handles Day 2 operations (autoscaling, right-sizing, observability, security) reduces the need for a large platform team. See the guide on &lt;a href="https://controlplane.com/blog/post/production-grade-infrastructure-without-platform-team?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=consolidate-multiple-clouds-one-platform" rel="noopener noreferrer"&gt;production-grade infrastructure without a platform team&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I measure the ROI of cloud consolidation?
&lt;/h3&gt;

&lt;p&gt;Sum savings from retired tools, reduced idle capacity, rightsized compute, fewer engineering hours on operations, and lower incident cost. Subtract one-time costs (migration, training, parallel running, contract exit) and recurring platform fees over a fixed horizon such as three years, and report the payback period. Use your own numbers from the inventory, not industry averages.&lt;/p&gt;

&lt;h3&gt;
  
  
  What compliance certifications should I require from a cloud consolidation platform?
&lt;/h3&gt;

&lt;p&gt;At minimum, request current SOC 2 Type II reports, PCI DSS attestations of compliance, and HIPAA business associate agreements if you handle protected health information. Verify the scope covers both the vendor’s management layer and the infrastructure where your workloads run.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does Control Plane handle billing across multiple clouds?
&lt;/h3&gt;

&lt;p&gt;Control Plane puts every org on one billing account, and its Cost &amp;amp; Usage view shows spend per org and per resource with a projected total. A billing_viewer role gives finance teams read-only access to cost data. On Control Plane-provided compute, you pay for the CPU and memory you reserve, by the millicore and the megabyte, with no contracts or minimums. In locations you add through BYOK or MK8s, workloads run on nodes you supply, so your provider bills you for those nodes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does consolidating clouds mean I am locked into a new vendor?
&lt;/h3&gt;

&lt;p&gt;Not necessarily. Evaluate exit terms before adopting any platform. Look for the ability to export workload definitions, policies, and configuration. Use infrastructure as code to keep your deployments portable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://controlplane.com/requestdemo?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=consolidate-multiple-clouds-one-platform" rel="noopener noreferrer"&gt;Talk to the Control Plane team&lt;/a&gt; or &lt;a href="https://console.cpln.io/signup" rel="noopener noreferrer"&gt;sign up free&lt;/a&gt; to try it.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://controlplane.com/blog/post/consolidate-multiple-clouds-one-platform?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=consolidate-multiple-clouds-one-platform" rel="noopener noreferrer"&gt;Control Plane blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>devops</category>
      <category>aws</category>
      <category>azure</category>
    </item>
    <item>
      <title>How to Let Claude or ChatGPT Deploy Your App (Safely)</title>
      <dc:creator>Noah Grinstein</dc:creator>
      <pubDate>Fri, 30 Oct 2026 20:53:11 +0000</pubDate>
      <link>https://dev.to/noahcontrolplane/how-to-let-claude-or-chatgpt-deploy-your-app-safely-38og</link>
      <guid>https://dev.to/noahcontrolplane/how-to-let-claude-or-chatgpt-deploy-your-app-safely-38og</guid>
      <description>&lt;p&gt;You let Claude or ChatGPT deploy your app by connecting the assistant to a deployment platform through the Model Context Protocol (MCP), with sign-in and per-org permissions, so it can build, deploy, and check your app with tools instead of pasted commands. Control Plane is a listed connector in Claude and a listed plugin in ChatGPT, so connecting takes a few clicks.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;An AI assistant on its own writes code and suggests commands. An assistant connected to a platform over MCP can also build an image, deploy it, read the logs, and roll back a bad release. The connection is what turns “here is a Dockerfile” into “your app is live at this URL.”&lt;/p&gt;

&lt;p&gt;The 4-step version:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Connect.&lt;/strong&gt; Add Control Plane from Claude’s connector directory or install it from the ChatGPT Plugin directory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authorize.&lt;/strong&gt; Sign in to Control Plane and pick the orgs the assistant may access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Describe the app.&lt;/strong&gt; Tell the assistant what to build or deploy, and where.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review the result.&lt;/strong&gt; Check the URL, the workload status, and the audit trail. Approve anything destructive yourself.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How do AI assistants deploy apps?
&lt;/h2&gt;

&lt;p&gt;MCP is an open-source standard for connecting AI applications such as Claude and ChatGPT to external tools and data. A platform publishes an MCP server, the assistant connects to it, and the assistant can then run the actions the server exposes, such as creating a workload or reading logs. The specification is public at &lt;a href="https://modelcontextprotocol.io" rel="noopener noreferrer"&gt;modelcontextprotocol.io&lt;/a&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Assistant that only writes code&lt;/th&gt;
&lt;th&gt;Assistant connected to a platform&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;Source files and commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Who runs the commands&lt;/td&gt;
&lt;td&gt;You, by pasting them&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build&lt;/td&gt;
&lt;td&gt;You run the build&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verification&lt;/td&gt;
&lt;td&gt;You check the result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failure handling&lt;/td&gt;
&lt;td&gt;You read logs and report back&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access control&lt;/td&gt;
&lt;td&gt;Your terminal session&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Pasted commands also run with whatever credentials your shell holds. A connected assistant uses the access you granted on the platform, and nothing more.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I let Claude or ChatGPT deploy my application?
&lt;/h2&gt;

&lt;p&gt;Connect the assistant to a platform that exposes deployment tools over MCP, then ask it to deploy. With Control Plane, the Claude and ChatGPT paths are directory listings, so there is no JSON to edit and no API key to paste. Coding agents and other MCP clients connect with a plugin or a URL. Each path is below.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I let Claude deploy my application?
&lt;/h3&gt;

&lt;p&gt;Control Plane is a listed connector in Claude’s directory. These steps work in claude.ai and in the Claude desktop app. Connectors sync across both.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Claude’s connector directory.&lt;/li&gt;
&lt;li&gt;Find &lt;strong&gt;Control Plane&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Connect to Claude&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Sign in to Control Plane with Google, GitHub, Microsoft, or SAML.&lt;/li&gt;
&lt;li&gt;Pick the orgs Claude may access.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Directory listings connect on the core toolset profile. Full setup details are in the &lt;a href="https://docs.controlplane.com/ai/claude-web?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=let-claude-chatgpt-deploy-your-app" rel="noopener noreferrer"&gt;Claude setup guide&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can Claude deploy my app to production?
&lt;/h3&gt;

&lt;p&gt;Yes, once it is connected to a platform that deploys to production. Claude itself writes the code and calls tools. The platform does the build and the deploy, inside the orgs you selected during sign-in.&lt;/p&gt;

&lt;p&gt;Three practices keep that safe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Grant only the orgs Claude needs. An org you did not select is out of reach.&lt;/li&gt;
&lt;li&gt;Start on the readonly toolset profile, added as a custom connector at &lt;code&gt;https://mcp.cpln.io/mcp?toolsets=readonly&lt;/code&gt;, if you want Claude to inspect before it changes anything.&lt;/li&gt;
&lt;li&gt;Review the result and the audit trail after every change.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Can ChatGPT deploy my app?
&lt;/h3&gt;

&lt;p&gt;Yes. Control Plane is a listed plugin in the ChatGPT Plugin directory.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the Control Plane listing in the ChatGPT Plugin directory.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Install plugin&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Authorize the orgs ChatGPT may access.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The same listing reaches ChatGPT on the web, desktop, and mobile, and Codex. As with Claude, directory listings connect on the core toolset profile. See the &lt;a href="https://docs.controlplane.com/ai/chatgpt?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=let-claude-chatgpt-deploy-your-app" rel="noopener noreferrer"&gt;ChatGPT setup guide&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do coding agents and other MCP clients connect?
&lt;/h3&gt;

&lt;p&gt;Claude Code, Codex, and Antigravity CLI can use the Control Plane AI plugin. It bundles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The MCP server.&lt;/li&gt;
&lt;li&gt;Control Plane domain skills.&lt;/li&gt;
&lt;li&gt;Two guided agents: workload troubleshooting, and migration from Kubernetes, Docker Compose, or Helm.&lt;/li&gt;
&lt;li&gt;Slash commands.&lt;/li&gt;
&lt;li&gt;Guardrails.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The plugin is also listed in Anthropic’s community plugin marketplace, where every listing has passed Anthropic’s review. See the &lt;a href="https://docs.controlplane.com/ai/plugin?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=let-claude-chatgpt-deploy-your-app" rel="noopener noreferrer"&gt;AI plugin guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Other MCP clients, including Cursor, VS Code, Amp, and OpenCode, connect to &lt;code&gt;https://mcp.cpln.io/mcp&lt;/code&gt;. The &lt;a href="https://docs.controlplane.com/ai/overview?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=let-claude-chatgpt-deploy-your-app" rel="noopener noreferrer"&gt;AI overview&lt;/a&gt; lists every supported client.&lt;/p&gt;

&lt;p&gt;The MCP server has over 100 tools in four toolset profiles: readonly, core, mk8s, and full. Directory listings use core. To use readonly, mk8s, or full, add the MCP URL by hand.&lt;/p&gt;

&lt;p&gt;The MCP server cannot read your local filesystem. A folder on your machine builds with the CLI (&lt;code&gt;cpln image build --remote&lt;/code&gt;) from an agent that has a terminal. A repository, an existing image, or code the assistant writes in the chat does not need the CLI.&lt;/p&gt;

&lt;p&gt;The CLI, console, Terraform and Pulumi providers, and the MCP server all work through the same Control Plane API.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should I ask the assistant to do?
&lt;/h2&gt;

&lt;p&gt;Job tools do a whole task in one call. Examples are deploying an app, adding a database, creating or rotating a secret, and diagnosing a workload. The prompts below are quoted from &lt;a href="https://docs.controlplane.com/ai/examples?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=let-claude-chatgpt-deploy-your-app" rel="noopener noreferrer"&gt;Control Plane’s examples page&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create an app from scratch
&lt;/h3&gt;

&lt;p&gt;Create me a small Flask app that shows a random quote on each refresh and deploy it to org “my-org”. Give me the URL and the source code when it is up.&lt;/p&gt;

&lt;p&gt;The assistant writes the code, builds it into an image in your org’s private registry, and deploys it as a public workload. It reports the URL and a link to download the source.&lt;/p&gt;

&lt;h3&gt;
  
  
  Deploy an existing image
&lt;/h3&gt;

&lt;p&gt;Deploy nginx:latest as a public app called “web” on port 80 in GVC “production” and give me its URL.&lt;/p&gt;

&lt;p&gt;A GVC is Control Plane’s Global Virtual Cloud, the set of locations a workload runs in. One call deploys the image with production defaults: health checks and two replicas, so a deploy does not take it offline.&lt;/p&gt;

&lt;h3&gt;
  
  
  Build from a repository
&lt;/h3&gt;

&lt;p&gt;Build &lt;a href="https://github.com/my-org/my-app" rel="noopener noreferrer"&gt;https://github.com/my-org/my-app&lt;/a&gt; on the main branch and deploy it as a public app called “my-app” in GVC “production”.&lt;/p&gt;

&lt;p&gt;The repository is built on Control Plane. No Docker daemon or CLI is involved.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recover from a bad deploy
&lt;/h3&gt;

&lt;p&gt;Workload “api-server” in GVC “production” started failing after the last deploy. Diagnose it, and if the new image is the cause, roll it back and confirm it is healthy again.&lt;/p&gt;

&lt;h3&gt;
  
  
  Databases, caches, and secrets
&lt;/h3&gt;

&lt;p&gt;Databases and caches come from the Template Catalog. Secrets can be created or rotated without the value passing through the chat, so the credential never lands in the conversation history.&lt;/p&gt;

&lt;h3&gt;
  
  
  Check workload health (illustration)
&lt;/h3&gt;

&lt;p&gt;This prompt is an illustration, not quoted from Control Plane’s documentation.&lt;/p&gt;

&lt;p&gt;Show me the status of every workload in GVC “production” and list any that are unhealthy.&lt;/p&gt;

&lt;p&gt;Pair a prompt like this with the readonly profile when you want the assistant to look and not touch.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I give an AI agent safe access to my cloud infrastructure?
&lt;/h2&gt;

&lt;p&gt;Start with principles that apply on any platform, then check how your platform implements them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vendor-neutral principles&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Least privilege.&lt;/strong&gt; Give the agent only the permissions the task needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scoped tokens.&lt;/strong&gt; Limit credentials by account, project, or org, and prefer short-lived ones.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read-only first.&lt;/strong&gt; Let the agent observe before it can change anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit trail.&lt;/strong&gt; Record every change the agent makes, with the identity that made it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human review for destructive actions.&lt;/strong&gt; Deletes, scale-downs, and secret changes need a person to approve.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep secrets out of the chat.&lt;/strong&gt; A value pasted into a conversation can be stored, logged, or repeated.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How Control Plane applies them&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Principle&lt;/th&gt;
&lt;th&gt;Control Plane behavior&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Scoped access&lt;/td&gt;
&lt;td&gt;OAuth sign-in with per-org consent on every path. You scope each AI tool to the orgs it needs.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Read-only first&lt;/td&gt;
&lt;td&gt;The readonly toolset profile advertises no tool that creates, updates, deletes, or executes anything. An assistant on it cannot change a live resource.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No privilege creep&lt;/td&gt;
&lt;td&gt;The profile is fixed for the life of a connection. An agent cannot expand it mid-session.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Human review&lt;/td&gt;
&lt;td&gt;Before a deletion, the assistant states what it removes and what breaks, then waits for your explicit yes.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Audit trail&lt;/td&gt;
&lt;td&gt;Every change is recorded in the audit trail.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Secrets&lt;/td&gt;
&lt;td&gt;Job tools create or rotate secrets without the value passing through the chat.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A practical rollout:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connect the assistant to a test org first.&lt;/li&gt;
&lt;li&gt;Begin on the readonly profile and ask it to describe what is running.&lt;/li&gt;
&lt;li&gt;Reconnect on core, the profile the directory listings use, when you want it to deploy.&lt;/li&gt;
&lt;li&gt;Keep production in a separate org, and grant it only when needed.&lt;/li&gt;
&lt;li&gt;Review the audit trail after the first few sessions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a deeper look at risk and controls, see &lt;a href="https://controlplane.com/blog/post/ai-agents-production-infrastructure-safely?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=let-claude-chatgpt-deploy-your-app" rel="noopener noreferrer"&gt;how to run AI agents on production infrastructure safely&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where can I find a cloud friendly deployment platform for AI models?
&lt;/h2&gt;

&lt;p&gt;The flow in this guide also deploys inference services. A model server is a workload like any other. Workloads can attach NVIDIA GPUs, and the pricing page lists models from T4 to B200. You describe it to the assistant, the platform builds or pulls the image, and the assistant deploys it and checks its status.&lt;/p&gt;

&lt;p&gt;On Control Plane, a workload deployed to a Control Plane Global Virtual Cloud (GVC) runs active-active in every location of that GVC. A global endpoint routes each request to the nearest healthy location. That gives an inference service failover without paying for idle standby capacity.&lt;/p&gt;

&lt;p&gt;For compute options and what to look for in infrastructure that serves models, read &lt;a href="https://controlplane.com/blog/post/what-is-ai-ready-infrastructure?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=let-claude-chatgpt-deploy-your-app" rel="noopener noreferrer"&gt;what AI-ready infrastructure is&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which cloud platforms can AI assistants deploy to?
&lt;/h2&gt;

&lt;p&gt;Several platforms and clouds publish MCP servers or AI integrations. The table summarizes what each vendor’s own documentation says. Capabilities change, so check each page before you decide.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;What its docs describe&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Heroku&lt;/td&gt;
&lt;td&gt;A remote MCP server at &lt;code&gt;https://mcp.heroku.com/mcp&lt;/code&gt; that uses OAuth 2.0. A separate local STDIO server runs through the Heroku CLI.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://devcenter.heroku.com/articles/heroku-remote-mcp-server" rel="noopener noreferrer"&gt;Heroku Dev Center&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Render&lt;/td&gt;
&lt;td&gt;A hosted MCP server at &lt;code&gt;https://mcp.render.com/mcp&lt;/code&gt;. It can create web services, static sites, cron jobs, Render Postgres, and Render Key Value. Render states other service types are not yet supported and that it does not support modifying scaling settings.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://render.com/docs/mcp-server" rel="noopener noreferrer"&gt;Render docs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Railway&lt;/td&gt;
&lt;td&gt;An MCP server at &lt;code&gt;mcp.railway.com&lt;/code&gt; that lets assistants create projects, deploy templates, manage environments, pull variables, and redeploy services. Connects through the Railway CLI or OAuth.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.railway.com/ai/mcp-server" rel="noopener noreferrer"&gt;Railway docs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fly.io&lt;/td&gt;
&lt;td&gt;A &lt;code&gt;flyctl&lt;/code&gt; MCP server, labeled experimental in its CLI reference, that supports most flyctl commands for apps, certificates, logs, machines, orgs, secrets, status, and volumes.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.fly.io/model-context-protocol/flyctl-server" rel="noopener noreferrer"&gt;Fly.io docs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;td&gt;A remote MCP server at &lt;code&gt;https://mcp.vercel.com&lt;/code&gt; with OAuth, for managing projects and deployments and analyzing logs. Vercel notes that connecting grants the AI system the same access as your Vercel user account.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://vercel.com/docs/agent-resources/vercel-mcp" rel="noopener noreferrer"&gt;Vercel docs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AWS&lt;/td&gt;
&lt;td&gt;A managed AWS MCP Server with OAuth or SigV4 sign-in, IAM based access controls, and CloudTrail logging of API calls.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.aws.amazon.com/agent-toolkit/latest/userguide/mcp-server.html" rel="noopener noreferrer"&gt;AWS docs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Control Plane’s strengths for this workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is listed in both Claude’s connector directory and ChatGPT’s plugin directory.&lt;/li&gt;
&lt;li&gt;Its job tools do a whole task in one call.&lt;/li&gt;
&lt;li&gt;Per-org OAuth consent, a readonly toolset profile, and a profile an agent cannot expand mid-session keep the assistant inside the access you grant.&lt;/li&gt;
&lt;li&gt;Deployed apps run active-active across every location in their GVC, which can span regions and clouds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On that last point, Control Plane runs serverless, standard, stateful, cron, and VM workloads on AWS, GCP, and Azure, on clusters you already run through Control Plane’s Bring Your Own Kubernetes (BYOK), on your own machines (bare metal or VMs) turned into managed locations with Control Plane’s Managed Kubernetes (MK8s), and on premises. On Control Plane-provided compute, there is no Kubernetes cluster you have to operate. Many teams run it in a single cloud for its day-two operations, including autoscaling, built-in observability, security, and cost control.&lt;/p&gt;

&lt;p&gt;The 99.999% availability SLA applies to workloads running at least two replicas in at least two locations. Those locations can be two regions of one cloud or locations on different providers.&lt;/p&gt;

&lt;p&gt;For a wider comparison of tools in this space, see &lt;a href="https://controlplane.com/blog/post/best-mcp-servers-for-devops?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=let-claude-chatgpt-deploy-your-app" rel="noopener noreferrer"&gt;the best MCP servers for DevOps&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happens to credentials and cloud access after the app is live?
&lt;/h2&gt;

&lt;p&gt;An app deployed by an assistant still needs to call cloud services. Control Plane’s Universal Cloud Identity gives workloads short-lived, least-privilege access to 600+ AWS, GCP, and Azure services, so the code an assistant writes needs no long-lived cloud keys.&lt;/p&gt;

&lt;p&gt;Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant. Control Plane’s Capacity AI right-sizes CPU and memory between a minimum and maximum you set, based on historical usage. On Control Plane-provided compute, you pay for reserved CPU and memory by the millicore and the megabyte, with no contracts or minimums.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How do I let Claude or ChatGPT deploy my application?
&lt;/h3&gt;

&lt;p&gt;Connect the assistant to a deployment platform through MCP, authorize the orgs it may use, and ask it to deploy. For Control Plane, add the connector from Claude’s directory or install the plugin from the ChatGPT Plugin directory.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can ChatGPT deploy my app?
&lt;/h3&gt;

&lt;p&gt;Yes, when ChatGPT is connected to a platform that deploys apps. Control Plane is a listed plugin in the ChatGPT Plugin directory. The same listing reaches ChatGPT on the web, desktop, and mobile, and Codex.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can Claude deploy my app to production?
&lt;/h3&gt;

&lt;p&gt;Yes, through a connected platform. Claude writes code and calls the platform’s tools. Limit the orgs you authorize, start on a read-only profile if you want, and review the audit trail after each change.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which cloud platforms can AI assistants deploy to?
&lt;/h3&gt;

&lt;p&gt;Several. Heroku, Render, Railway, Fly.io, Vercel, AWS, and Control Plane each publish an MCP server or AI integration. Their scopes differ, so read each vendor’s documentation for what the assistant can create and change.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I give an AI agent safe access to my cloud infrastructure?
&lt;/h3&gt;

&lt;p&gt;Apply least privilege, scoped tokens, read-only access first, an audit trail, and human review for destructive actions. On Control Plane, that means per-org OAuth consent, a readonly toolset profile, a profile that stays fixed for the life of a connection, and an audit trail of every change.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where can I find a cloud friendly deployment platform for AI models?
&lt;/h3&gt;

&lt;p&gt;Look for a platform that deploys inference services as workloads, exposes tools to your assistant, and runs across locations for failover. Control Plane deploys inference services as workloads through the same MCP flow. See the guide on &lt;a href="https://controlplane.com/blog/post/what-is-ai-ready-infrastructure?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=let-claude-chatgpt-deploy-your-app" rel="noopener noreferrer"&gt;AI-ready infrastructure&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What platform as a service solutions are available for building and deploying new applications?
&lt;/h3&gt;

&lt;p&gt;Options include Control Plane, Heroku, Render, Railway, Fly.io, and Vercel. They differ in supported runtimes, regions, pricing, and how much they expose to AI assistants. Control Plane runs serverless, standard, stateful, cron, and VM workloads active-active across regions and clouds, and its MCP server is listed in both Claude and ChatGPT.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can an AI assistant change my infrastructure without asking me?
&lt;/h3&gt;

&lt;p&gt;Only within the access you grant. On Control Plane’s readonly profile, the assistant sees no tool that creates, updates, deletes, or executes anything. On other profiles, the assistant asks for your explicit yes before a deletion, and every change is recorded in the audit trail.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does the Control Plane MCP server read files on my computer?
&lt;/h3&gt;

&lt;p&gt;No. The MCP server cannot read your local filesystem. To build a local folder, use the CLI (&lt;code&gt;cpln image build --remote&lt;/code&gt;) from an agent that has a terminal, or deploy from a repository or an existing image.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can the assistant handle secrets and databases?
&lt;/h3&gt;

&lt;p&gt;Yes. Databases and caches come from the Template Catalog. Secrets can be created or rotated without the value passing through the chat.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;Connect Control Plane to Claude or ChatGPT, authorize a test org, and ask for a small app. Then grant a production org when you trust the setup.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://controlplane.com/requestdemo?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=let-claude-chatgpt-deploy-your-app" rel="noopener noreferrer"&gt;Talk to the Control Plane team&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://console.cpln.io/signup" rel="noopener noreferrer"&gt;Sign up free&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://controlplane.com/blog/post/let-claude-chatgpt-deploy-your-app?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=let-claude-chatgpt-deploy-your-app" rel="noopener noreferrer"&gt;Control Plane blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>mcp</category>
      <category>claude</category>
    </item>
    <item>
      <title>The Best Hyperscaler Alternatives in 2026: AWS, Azure, and Google Cloud Alternatives Compared</title>
      <dc:creator>Noah Grinstein</dc:creator>
      <pubDate>Fri, 30 Oct 2026 20:52:20 +0000</pubDate>
      <link>https://dev.to/noahcontrolplane/the-best-hyperscaler-alternatives-in-2026-aws-azure-and-google-cloud-alternatives-compared-2l2d</link>
      <guid>https://dev.to/noahcontrolplane/the-best-hyperscaler-alternatives-in-2026-aws-azure-and-google-cloud-alternatives-compared-2l2d</guid>
      <description>&lt;p&gt;The right alternative depends on what you are replacing (raw infrastructure, an app platform, or GPU capacity), and you do not have to leave the hyperscaler entirely. Control Plane runs the same workloads across hyperscalers and alternative providers from one platform.&lt;/p&gt;

&lt;p&gt;Control Plane publishes this guide.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR: What are the best alternatives to AWS, Azure, and Google Cloud?
&lt;/h2&gt;

&lt;p&gt;Start by naming what you want to replace. A hyperscaler bill usually mixes three different things: virtual machines and storage, an application platform for deploying code, and GPU capacity for AI. Each has a different kind of alternative.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Raw infrastructure.&lt;/strong&gt; Developer clouds and VPS or bare-metal providers give you servers and a smaller catalog of services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An app platform.&lt;/strong&gt; PaaS products take your code or container and run it, so you manage less.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPU capacity.&lt;/strong&gt; GPU clouds and neoclouds focus on AI hardware.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More than one of these at once.&lt;/strong&gt; A multi-environment platform runs workloads across hyperscalers, infrastructure providers, and GPU clouds from one definition.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Control Plane ranks first because it is the only entry that runs one workload across hyperscalers and the infrastructure and GPU providers listed here. Infrastructure providers follow, then app platforms. The order is editorial, not a benchmark, and each description comes from the vendor’s own page, linked below.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Control Plane:&lt;/strong&gt; runs one workload across hyperscalers, infrastructure providers, neocloud GPU capacity, and your own servers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DigitalOcean:&lt;/strong&gt; a cloud with an AI focus, covering agents, inference, and general cloud services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hetzner:&lt;/strong&gt; cloud servers in shared and dedicated resource plans for developers and teams.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Akamai Cloud (Linode):&lt;/strong&gt; cloud for applications and AI inference on a globally distributed platform.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vultr:&lt;/strong&gt; cloud compute, cloud GPU, and bare-metal servers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OVHcloud:&lt;/strong&gt; public cloud with compute, storage, databases, and managed Kubernetes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Render:&lt;/strong&gt; an app platform for web services, databases, cron jobs, and workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fly.io:&lt;/strong&gt; hardware-virtualized machines and sandboxes for apps and agents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Heroku:&lt;/strong&gt; a fully managed application platform built around dynos and add-ons.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Railway:&lt;/strong&gt; a repo-connected deployment platform with a visual canvas.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What are the three kinds of hyperscaler alternatives?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;th&gt;Typical fit&lt;/th&gt;
&lt;th&gt;What you manage&lt;/th&gt;
&lt;th&gt;Typical trade-offs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Developer clouds and VPS or bare-metal providers&lt;/td&gt;
&lt;td&gt;DigitalOcean, Hetzner, Akamai Cloud, Vultr, OVHcloud&lt;/td&gt;
&lt;td&gt;Replacing virtual machines, storage, and networking&lt;/td&gt;
&lt;td&gt;Operating systems, deployment, scaling, and often databases and monitoring&lt;/td&gt;
&lt;td&gt;A smaller service catalog than a hyperscaler, so you assemble more yourself&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App platforms (PaaS)&lt;/td&gt;
&lt;td&gt;Render, Fly.io, Heroku, Railway&lt;/td&gt;
&lt;td&gt;Deploying code or containers without running servers&lt;/td&gt;
&lt;td&gt;Application code and configuration&lt;/td&gt;
&lt;td&gt;Less control over infrastructure, and platform-specific conventions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPU clouds and neoclouds for AI&lt;/td&gt;
&lt;td&gt;CoreWeave, Lambda, Nebius&lt;/td&gt;
&lt;td&gt;Training and inference on GPU hardware&lt;/td&gt;
&lt;td&gt;Models, data movement, and the surrounding application stack&lt;/td&gt;
&lt;td&gt;GPU-focused catalogs, so general services and data may live elsewhere&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-environment platforms&lt;/td&gt;
&lt;td&gt;Control Plane&lt;/td&gt;
&lt;td&gt;Running one workload across hyperscalers, infrastructure providers, GPU clouds, and your own servers&lt;/td&gt;
&lt;td&gt;The workload definition, with the platform handling placement and routing&lt;/td&gt;
&lt;td&gt;One platform to adopt, replacing a separate toolchain for each provider&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are general patterns for each type. Check any provider’s specifics against its own documentation and SLA before you commit.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do the options rank?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Control Plane
&lt;/h3&gt;

&lt;p&gt;Control Plane is the platform for running unbreakable apps and agents. It combines any cloud, neocloud, and bare metal into what Control Plane calls a Global Virtual Cloud (GVC).&lt;/p&gt;

&lt;p&gt;It runs on Control Plane-managed compute in AWS, GCP, and Azure regions, on neocloud GPU capacity, and on your own servers. It runs serverless, standard, stateful, cron, and VM workloads. You can bring clusters you already run through Control Plane’s Bring Your Own Kubernetes (BYOK), or turn your own machines (bare metal or VMs) into managed locations with Control Plane’s Managed Kubernetes (MK8s). On Control Plane-provided compute, there is no Kubernetes cluster you have to operate. Many teams run it in a single cloud, not only across clouds.&lt;/p&gt;

&lt;p&gt;A workload deployed to a GVC runs active-active in every location of that GVC, and a global endpoint routes each request to the nearest healthy location. You get failover without paying for idle standby capacity.&lt;/p&gt;

&lt;p&gt;On Control Plane-provided compute, you pay for the CPU and memory a workload reserves, by the millicore and the megabyte, with no contracts or minimums. Control Plane’s Capacity AI right-sizes CPU and memory based on historical usage, within a minimum and maximum you set. Customers typically cut compute costs 30 to 50 percent compared with running directly on AWS, GCP, or Azure.&lt;/p&gt;

&lt;p&gt;Workloads can attach NVIDIA GPUs, and the pricing page lists models from T4 to B200. Control Plane’s Universal Cloud Identity gives workloads short-lived, least-privilege access to 600+ AWS, GCP, and Azure services, with no long-lived cloud keys in your code. Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant. The CLI, console, Terraform and Pulumi providers, and the Control Plane MCP server all work through the same Control Plane API, and Control Plane ships its own Terraform and Pulumi providers, so it complements the infrastructure as code you already run.&lt;/p&gt;

&lt;p&gt;For head-to-head comparisons, see &lt;a href="https://controlplane.com/compare/control-plane-vs-aws?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;Control Plane vs AWS&lt;/a&gt;, &lt;a href="https://controlplane.com/compare/control-plane-vs-render?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;vs Render&lt;/a&gt;, &lt;a href="https://controlplane.com/compare/control-plane-vs-heroku?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;vs Heroku&lt;/a&gt;, &lt;a href="https://controlplane.com/compare/control-plane-vs-fly-io?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;vs Fly.io&lt;/a&gt;, and &lt;a href="https://controlplane.com/compare/control-plane-vs-digitalocean-app-platform?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;vs DigitalOcean App Platform&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. DigitalOcean
&lt;/h3&gt;

&lt;p&gt;DigitalOcean’s &lt;a href="https://www.digitalocean.com/" rel="noopener noreferrer"&gt;homepage&lt;/a&gt; describes an “AI-Native Cloud” and “a unified stack for agents, inference, and cloud.” It lists serverless inference with intelligent routing and “80+ models,” a product called Agent Droplets, and DigitalOcean Managed Agents, which it says is in Public Preview. It also sells CPU and GPU Droplets, Managed Kubernetes, App Platform, managed databases, and storage and backups.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Hetzner
&lt;/h3&gt;

&lt;p&gt;Hetzner describes its &lt;a href="https://www.hetzner.com/cloud" rel="noopener noreferrer"&gt;Cloud&lt;/a&gt; as a “cloud-hosting provider for developers &amp;amp; teams.” The page lists server plans with shared resources and with dedicated resources, a price calculator, networks, an API, and one-click apps. It states that the service is made in Germany and GDPR-compliant. Its cloud servers are available in Germany, Finland, Singapore, and the USA. Hetzner also sells S3-compatible &lt;a href="https://www.hetzner.com/storage/object-storage/" rel="noopener noreferrer"&gt;Object Storage&lt;/a&gt; and Storage Box backup storage.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Akamai Cloud (Linode)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.akamai.com/cloud" rel="noopener noreferrer"&gt;Akamai Cloud&lt;/a&gt; is presented as “Akamai Cloud for AI, Applications, and Agents.” Akamai says it lets you “run AI with rapid, GPU-powered inference and edge-native compute at global scale,” and that it “runs on one of the world’s most distributed platforms.” Access to NVIDIA GPUs is by request. The page also lists CPU compute, managed Kubernetes, managed MySQL and PostgreSQL databases, object and block storage, and backups.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Vultr
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.vultr.com/" rel="noopener noreferrer"&gt;Vultr&lt;/a&gt; sells cloud compute, cloud GPU, and bare-metal servers. Its &lt;a href="https://docs.vultr.com/" rel="noopener noreferrer"&gt;documentation&lt;/a&gt; also covers object and block storage, managed databases, Kubernetes, load balancers, and a container registry.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. OVHcloud
&lt;/h3&gt;

&lt;p&gt;OVHcloud’s &lt;a href="https://www.ovhcloud.com/en/public-cloud/" rel="noopener noreferrer"&gt;Public Cloud&lt;/a&gt; page describes “over 50 OVHcloud infrastructure services and managed platforms.” It lists compute, storage, databases, and a secure network in 1-AZ or 3-AZ regions, with hourly, monthly, or long-term billing. It also offers managed Kubernetes and container management.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Render
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://render.com/" rel="noopener noreferrer"&gt;Render&lt;/a&gt; calls itself “the cloud for builders.” Its page lists web services, Postgres databases, cron jobs, workflows, static sites, background jobs, key value stores, and private services. It describes load-based autoscaling, full-stack previews for each pull request, and managed Postgres with point-in-time recovery, read replicas, and high availability. For a direct comparison, see &lt;a href="https://controlplane.com/compare/control-plane-vs-render?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;Control Plane vs Render&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Fly.io
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://fly.io/" rel="noopener noreferrer"&gt;Fly.io&lt;/a&gt; describes Fly Machines as “hardware-virtualized containers that launch instantly and run only when you need them.” It also offers hardware-isolated sandboxes for running untrusted or AI-generated code, storage options, and managed Postgres. The page says you can deploy from GitHub or its CLI. See &lt;a href="https://controlplane.com/compare/control-plane-vs-fly-io?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;Control Plane vs Fly.io&lt;/a&gt; for a comparison.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Heroku
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.heroku.com/" rel="noopener noreferrer"&gt;Heroku&lt;/a&gt; describes a “fully managed application platform.” Apps run in dynos, which it calls “smart containers.” The page lists Heroku Postgres, a Key-Value Store, add-ons, buildpacks, team management, and fast rollback. See &lt;a href="https://controlplane.com/compare/control-plane-vs-heroku?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;Control Plane vs Heroku&lt;/a&gt; for a comparison. In February 2026, Heroku moved to a &lt;a href="https://www.heroku.com/blog/an-update-on-heroku/" rel="noopener noreferrer"&gt;sustaining engineering model&lt;/a&gt; focused on stability, security, reliability, and support rather than new features.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Railway
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://railway.com/" rel="noopener noreferrer"&gt;Railway&lt;/a&gt; calls itself “the all-in-one intelligent cloud provider.” You connect a repository, and the page says Railway handles configuration automatically. It offers a visual canvas, built-in networking, scaling, and logs, metrics, and traces. In October 2026, Railway disclosed a security incident, described in its &lt;a href="https://blog.railway.com/p/preliminary-report-october-security-incident" rel="noopener noreferrer"&gt;preliminary report&lt;/a&gt; and in Control Plane’s guide to &lt;a href="https://controlplane.com/blog/post/railway-security-incident-rotate-migrate?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;rotating keys or migrating&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which cloud providers are best for full infrastructure control?
&lt;/h2&gt;

&lt;p&gt;Control follows a spectrum, and each step toward more control adds operations work.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Level&lt;/th&gt;
&lt;th&gt;Example type&lt;/th&gt;
&lt;th&gt;Control&lt;/th&gt;
&lt;th&gt;Operations work&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Most control&lt;/td&gt;
&lt;td&gt;Bare metal and VPS providers&lt;/td&gt;
&lt;td&gt;You choose the operating system, networking, and software&lt;/td&gt;
&lt;td&gt;Highest. You patch, scale, and recover.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Middle&lt;/td&gt;
&lt;td&gt;Managed Kubernetes on a cloud&lt;/td&gt;
&lt;td&gt;You control workloads and configuration&lt;/td&gt;
&lt;td&gt;Moderate. You run the workloads, the provider runs the control plane.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Least control&lt;/td&gt;
&lt;td&gt;PaaS&lt;/td&gt;
&lt;td&gt;You control code and settings&lt;/td&gt;
&lt;td&gt;Lowest. The platform runs the infrastructure.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Control Plane sits across this spectrum. Bring Your Own Kubernetes (BYOK) lets you keep clusters you already run and add them as locations. Managed Kubernetes (MK8s) turns your own machines (bare metal or VMs) into managed Control Plane locations. You keep your own clusters and servers and manage them under one platform, so you do not give up hardware ownership to get one way of deploying. On Control Plane-provided compute, you can skip operating a cluster.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do managed hosting platforms compare to hyperscalers for reliability, incident response, and SLAs?
&lt;/h2&gt;

&lt;p&gt;Compare the same four things for every provider, including the hyperscalers.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;SLA scope and conditions.&lt;/strong&gt; Read what the SLA covers. Many apply to specific services or configurations and require a minimum setup, such as more than one instance or location.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits versus actual uptime.&lt;/strong&gt; An SLA usually remedies a miss with service credits. Credits do not replace the revenue lost during an outage, so design for availability yourself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-region options.&lt;/strong&gt; Check whether you can run in more than one region or provider, and what that costs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Status page and incident transparency.&lt;/strong&gt; Look at how the provider reports incidents, how quickly, and how much detail it gives afterward.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hyperscalers also have major outages. Control Plane keeps a public record in its &lt;a href="https://controlplane.com/blog/post/cloud-outage-tracker?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;cloud outage tracker&lt;/a&gt;. Do not assume that size guarantees availability.&lt;/p&gt;

&lt;p&gt;Control Plane’s 99.999% availability SLA applies to workloads running at least two replicas in at least two locations. Those locations can be two regions of one cloud or locations on different providers. Take other vendors’ SLA figures from their own SLA pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are common compute, storage, and networking service equivalents when moving off a hyperscaler?
&lt;/h2&gt;

&lt;p&gt;The equivalents below are generic service types, not specific vendors’ products. Confirm that a provider offers a service on its own product page before you plan around it.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Hyperscaler service&lt;/th&gt;
&lt;th&gt;Generic equivalent elsewhere&lt;/th&gt;
&lt;th&gt;Migration note&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Virtual machines&lt;/td&gt;
&lt;td&gt;VPS or bare-metal servers&lt;/td&gt;
&lt;td&gt;Re-create images and configuration, and plan for patching.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Managed Kubernetes&lt;/td&gt;
&lt;td&gt;Provider-managed or self-managed Kubernetes, or a platform that hides it&lt;/td&gt;
&lt;td&gt;Check version support and add-ons.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Object storage&lt;/td&gt;
&lt;td&gt;S3-compatible object storage&lt;/td&gt;
&lt;td&gt;Check API compatibility for your tools and libraries.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Managed databases&lt;/td&gt;
&lt;td&gt;Managed PostgreSQL or MySQL, or a self-run database&lt;/td&gt;
&lt;td&gt;Plan data transfer, backups, and failover testing.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Load balancers&lt;/td&gt;
&lt;td&gt;Provider load balancer or a reverse proxy&lt;/td&gt;
&lt;td&gt;Confirm health checks and TLS handling.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DNS&lt;/td&gt;
&lt;td&gt;Any DNS provider&lt;/td&gt;
&lt;td&gt;Lower the record lifetime before you cut over.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Secrets&lt;/td&gt;
&lt;td&gt;Secrets manager or an open-source secrets tool&lt;/td&gt;
&lt;td&gt;Rotate secrets as part of the move.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Monitoring&lt;/td&gt;
&lt;td&gt;Open-source monitoring and logging tools&lt;/td&gt;
&lt;td&gt;Rebuild dashboards and alerts.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You do not have to move everything. With Universal Cloud Identity, workloads running on Control Plane can keep using the hyperscaler services you depend on, such as storage or a managed database, while the compute moves. That lets you separate the move of compute from the move of data. Read &lt;a href="https://controlplane.com/blog/post/run-same-app-aws-gcp-azure?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;how to run the same app on AWS, GCP, and Azure&lt;/a&gt; for a walkthrough.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are good hyperscaler alternatives for small business apps needing databases, backups, and monitoring?
&lt;/h2&gt;

&lt;p&gt;Developer clouds and PaaS platforms are often the simplest fit for small apps. They ship with fewer choices, and several bundle managed databases, backups, and monitoring into one product. Render’s page lists managed Postgres with point-in-time recovery and integrated logs and monitoring. Heroku’s page lists Heroku Postgres and app metrics. Fly.io’s page lists managed Postgres and storage options. Developer clouds such as DigitalOcean, Vultr, and OVHcloud list managed database and storage products on their own pages, and Hetzner lists object storage and backup storage.&lt;/p&gt;

&lt;p&gt;Use this checklist for a small app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the platform offer a managed database for the engine you use?&lt;/li&gt;
&lt;li&gt;Are backups included, and can you restore to a point in time?&lt;/li&gt;
&lt;li&gt;Does it include logs and metrics, or must you add a monitoring tool?&lt;/li&gt;
&lt;li&gt;What do you pay when the app is idle?&lt;/li&gt;
&lt;li&gt;How do you move off it if you outgrow it?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What is the simplest cloud platform alternative for small business apps needing predictable monthly pricing?
&lt;/h3&gt;

&lt;p&gt;For most small apps, a PaaS or a developer cloud with plan-based pricing is the simplest fit. Read each vendor’s pricing page for the plan structure.&lt;/p&gt;

&lt;p&gt;Control Plane works differently. On Control Plane-provided compute, it bills per millicore and megabyte reserved, with no contracts or minimums. That suits teams that want to pay for what a workload reserves and that expect load to vary. It is not a fixed monthly plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do performance and networking differ between hyperscalers and alternative AI infrastructure providers?
&lt;/h2&gt;

&lt;p&gt;The differences fall into four areas. None of them can be settled with a headline number, so test your own workload.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GPU availability.&lt;/strong&gt; Hyperscalers and GPU clouds both limit capacity at times. A provider that specializes in GPUs may have different hardware and lead times. Check what you can get, for how long, and under what terms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interconnect options.&lt;/strong&gt; Training across many GPUs depends on how the GPUs are connected inside the provider. Ask which networking options exist for the cluster size you need.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data transfer between providers.&lt;/strong&gt; Moving data between a hyperscaler and a GPU provider can add cost and time. Keep data close to compute where you can.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global network reach.&lt;/strong&gt; Inference serving users in many regions depends on where the provider has locations and how requests are routed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Control Plane workloads can attach NVIDIA GPUs, and the pricing page lists models from T4 to B200. A GVC can include neocloud GPU capacity next to a hyperscaler region. Control Plane’s GPU Ocean lets you pull GPU capacity from any provider. For a comparison of GPU providers, see &lt;a href="https://controlplane.com/blog/post/best-gpu-cloud-providers-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;best GPU cloud providers in 2026&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do you have to choose only one provider?
&lt;/h2&gt;

&lt;p&gt;No. Many teams keep a hyperscaler for the services they depend on and add an alternative for cost, control, or GPU capacity. The risk is running a second stack: separate deployment pipelines, separate access control, and separate monitoring for each provider.&lt;/p&gt;

&lt;p&gt;Control Plane addresses that risk. You define a workload once, and it runs in every location of a GVC. The locations can be two regions of one cloud or locations on different providers. A global endpoint routes each request to the nearest healthy location. That lets you run a hyperscaler and an alternative together, with one workload definition across both. For the step-by-step version, read &lt;a href="https://controlplane.com/blog/post/run-same-app-aws-gcp-azure?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;how to run the same app on AWS, GCP, and Azure&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What are good non hyperscaler options for running containerized web apps as a platform service?
&lt;/h3&gt;

&lt;p&gt;Control Plane runs containerized workloads as a platform service on Control Plane-managed compute, with no Kubernetes cluster for you to operate. App platforms such as Render, Fly.io, Heroku, and Railway also run apps for you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which cloud providers are best for full infrastructure control?
&lt;/h3&gt;

&lt;p&gt;Bare metal and VPS providers give the most control and the most operations work. Control Plane lets you keep your own clusters and servers through BYOK and MK8s, under one platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do managed hosting platforms compare to hyperscalers for reliability, incident response, and service level agreements?
&lt;/h3&gt;

&lt;p&gt;Compare SLA scope and conditions, credits versus actual uptime, multi-region options, and status page transparency. Hyperscalers also have major outages, as the cloud outage tracker records. Control Plane’s 99.999% availability SLA applies to workloads running at least two replicas in at least two locations.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are common compute, storage, and networking service equivalents when moving off a hyperscaler?
&lt;/h3&gt;

&lt;p&gt;Virtual machines map to VPS or bare-metal servers. Object storage maps to S3-compatible storage. Managed databases map to managed PostgreSQL or similar. Load balancers, DNS, secrets, and monitoring each have generic equivalents, listed in the table above. Confirm a specific provider’s offering on its own page.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are good hyperscaler alternatives for small business apps needing databases, backups, and monitoring?
&lt;/h3&gt;

&lt;p&gt;Developer clouds and PaaS platforms are often the simplest fit. Check each for a managed database, backup and restore options, and built-in monitoring.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the simplest cloud platform alternative for small business apps needing predictable monthly pricing?
&lt;/h3&gt;

&lt;p&gt;A PaaS or developer cloud with plan-based pricing is usually the simplest fit. Control Plane bills per millicore and megabyte reserved, with no contracts or minimums, which is a different model from a fixed plan.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do performance and networking differ between hyperscalers and alternative AI infrastructure providers?
&lt;/h3&gt;

&lt;p&gt;Compare GPU availability, interconnect options, data transfer between providers, and global network reach. Test your own workload rather than relying on a headline figure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I have to leave AWS, Azure, or Google Cloud entirely?
&lt;/h3&gt;

&lt;p&gt;No. You can keep a hyperscaler for the services you depend on and move compute elsewhere. Universal Cloud Identity lets workloads on Control Plane keep using hyperscaler services while compute moves.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is Control Plane only for multi-cloud?
&lt;/h3&gt;

&lt;p&gt;No. Many teams run it in one cloud. It also runs on your own servers and on premises.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next steps
&lt;/h2&gt;

&lt;p&gt;Name what you are replacing, shortlist one provider per job, and test one workload before you move more.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://controlplane.com/requestdemo?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;Talk to the Control Plane team&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://console.cpln.io/signup" rel="noopener noreferrer"&gt;Sign up free&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://controlplane.com/blog/post/best-hyperscaler-alternatives-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-hyperscaler-alternatives-2026" rel="noopener noreferrer"&gt;Control Plane blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>devops</category>
      <category>aws</category>
      <category>azure</category>
    </item>
    <item>
      <title>How to Run AI Inference Across Multiple GPU Clouds: Failover, Burst, and Portability in 2026</title>
      <dc:creator>Noah Grinstein</dc:creator>
      <pubDate>Fri, 30 Oct 2026 20:51:28 +0000</pubDate>
      <link>https://dev.to/noahcontrolplane/how-to-run-ai-inference-across-multiple-gpu-clouds-failover-burst-and-portability-in-2026-2e80</link>
      <guid>https://dev.to/noahcontrolplane/how-to-run-ai-inference-across-multiple-gpu-clouds-failover-burst-and-portability-in-2026-2e80</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclosure: Control Plane publishes this guide.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;To keep inference online and portable, package the model server as a container, run it in at least two GPU locations on different providers, and route requests to the nearest healthy one. Control Plane runs one inference workload across cloud regions and your own GPU servers, and routes each request to the nearest healthy location.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Why single-provider inference breaks:&lt;/strong&gt; GPU capacity, quotas, regional outages, price changes, and model API outages all sit behind one vendor relationship.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The three patterns:&lt;/strong&gt; active-active across GPU providers, a primary provider with a failover provider, and your own GPUs as the base with cloud burst.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How to choose providers:&lt;/strong&gt; match each provider to your latency target, GPU memory needs, data residency rules, and exit cost. Pair a hyperscaler with a neocloud instead of ranking them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How Control Plane fits:&lt;/strong&gt; one workload deploys to Control Plane’s Global Virtual Cloud (GVC), a set of locations that can be cloud regions or GPU servers. A global endpoint routes each request to the nearest healthy location.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;First steps:&lt;/strong&gt; containerize the model server, pin versions, pre-stage weights in two locations, health check with a real inference request, and drill the failover.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why does single-provider inference break?
&lt;/h2&gt;

&lt;p&gt;Inference is a production service, but most teams run it behind one GPU cloud or one model API. Four things go wrong with that setup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Capacity shortages and quota limits.&lt;/strong&gt; Specific GPU models run short, and accounts carry quotas per GPU type and region. A launch or traffic spike can hit a quota while the model server is healthy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regional and provider outages.&lt;/strong&gt; Major cloud providers have multi-hour outages. The &lt;a href="https://controlplane.com/blog/post/cloud-outage-tracker?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=ai-inference-multiple-gpu-clouds" rel="noopener noreferrer"&gt;Control Plane cloud outage tracker&lt;/a&gt; lists 62 major outages at AWS, Microsoft Azure, Google Cloud, and Cloudflare since 2020, with a median duration of 6h 08m. By provider, it shows AWS with 14 incidents (median 7h 34m), Azure with 20 (median 8h 17m), and Google Cloud with 12 (median 6h 08m). The tracker notes these counts reflect what each provider documents publicly and are not a reliability ranking. Its longest completed outage is Azure East US 2 in January 2025, at 50h 13m. As of its October 21, 2026 update, it also lists two AWS Middle East regions as disrupted since March 2026. The tracker covers cloud outages in general, not GPU services specifically. An inference service pinned to one region still inherits that region’s worst day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Price changes.&lt;/strong&gt; GPU prices and terms change. If your model server only runs on one provider’s services, you pay what that provider asks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model-provider API outages.&lt;/strong&gt; If your product calls a hosted model API, its outage is your outage, whatever your own infrastructure looks like.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are common challenges in AI model inference and how can I overcome them?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Challenge&lt;/th&gt;
&lt;th&gt;Why it happens&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPU availability&lt;/td&gt;
&lt;td&gt;Specific GPU models are scarce, and quotas cap what one account can use.&lt;/td&gt;
&lt;td&gt;Qualify at least two providers for the same model server. Request quota in advance.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cold starts and model load time&lt;/td&gt;
&lt;td&gt;Weights are large and must be copied to a new node and loaded into GPU memory before the first request.&lt;/td&gt;
&lt;td&gt;Pre-stage weights near every location. Keep a minimum number of warm replicas.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latency for global users&lt;/td&gt;
&lt;td&gt;Requests travel to one region, then back.&lt;/td&gt;
&lt;td&gt;Run in several regions and route each request to the nearest healthy location.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost of idle GPUs&lt;/td&gt;
&lt;td&gt;Standby capacity sits unused until a failure or spike.&lt;/td&gt;
&lt;td&gt;Serve traffic from every location instead of holding idle standby. Own steady capacity and rent peaks.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model and driver version drift&lt;/td&gt;
&lt;td&gt;Locations are built at different times with different CUDA, driver, or server versions.&lt;/td&gt;
&lt;td&gt;Pin versions in the container image. Deploy one image everywhere.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Observability&lt;/td&gt;
&lt;td&gt;Each provider has its own metrics, logs, and dashboards.&lt;/td&gt;
&lt;td&gt;Export metrics from the model server in one format. Track latency, queue depth, and error rate per location.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data residency&lt;/td&gt;
&lt;td&gt;Prompts and outputs may contain regulated data that must stay in a region.&lt;/td&gt;
&lt;td&gt;Choose locations by jurisdiction. Route regulated traffic only to approved locations.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What are the three multi-provider patterns for AI inference?
&lt;/h2&gt;

&lt;p&gt;All three patterns share one requirement: the same container image and the same model weights must be available in every location that might serve traffic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Active-active across GPU providers
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works.&lt;/strong&gt; The model server runs in two or more locations on different providers. A global endpoint or load balancer sends each request to a healthy location, usually the nearest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it.&lt;/strong&gt; Use it for user-facing inference where latency matters and an outage cannot wait for a manual switch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Idle capacity cost.&lt;/strong&gt; Low, because every location serves traffic. You still need enough total capacity that the remaining locations can absorb a lost location’s share. See the cost comparison in &lt;a href="https://controlplane.com/blog/post/active-active-vs-active-passive-cost?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=ai-inference-multiple-gpu-clouds" rel="noopener noreferrer"&gt;active-active vs active-passive&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What breaks during failover.&lt;/strong&gt; Surviving locations take extra load and may queue requests or scale up. Scale-up needs warm-up time, so set a minimum replica count that covers a lost location. Version drift between locations can produce inconsistent answers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Primary plus failover provider
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works.&lt;/strong&gt; One provider serves all traffic. A second provider holds the same image and weights and takes over when health checks fail.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it.&lt;/strong&gt; Use it for internal tools, batch inference, or products where a short brownout is acceptable and a second always-on fleet is hard to justify.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Idle capacity cost.&lt;/strong&gt; Depends on how warm the failover is. A cold standby costs little and starts slowly. A warm standby starts fast and costs close to a second fleet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What breaks during failover.&lt;/strong&gt; Cold start is the main risk: weights must already be present and loaded. DNS-based switching adds propagation delay. Standby configurations also drift, because nobody tests them daily.&lt;/p&gt;

&lt;h3&gt;
  
  
  Own GPUs as the base with cloud burst
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works.&lt;/strong&gt; Steady traffic runs on GPU servers you own or reserve. Peaks go to cloud GPUs running the same image.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it.&lt;/strong&gt; Use it when baseline demand is predictable and high enough that owned hardware is cheaper than renting, and when peaks are brief.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Idle capacity cost.&lt;/strong&gt; Owned servers carry fixed cost whether busy or not. Cloud burst capacity costs money only while it runs, but only if you can get the GPUs when the spike arrives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What breaks during failover.&lt;/strong&gt; Weights must be in the cloud location before the spike, not copied during it. The network path between your data center and the cloud adds latency and transfer cost. If the two environments run different driver or server versions, outputs can differ between them.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I fail over AI inference between GPU providers when one has an outage?
&lt;/h2&gt;

&lt;p&gt;Follow these six steps.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Containerize the model server.&lt;/strong&gt; Use a serving engine that ships as a container. &lt;a href="https://docs.vllm.ai/en/latest/" rel="noopener noreferrer"&gt;vLLM&lt;/a&gt; describes itself as a fast and easy-to-use library for LLM inference and serving, and its docs cover deployment with Docker and Kubernetes. &lt;a href="https://docs.nvidia.com/deeplearning/triton-inference-server/user-guide/docs/index.html" rel="noopener noreferrer"&gt;NVIDIA Dynamo-Triton&lt;/a&gt;, formerly Triton Inference Server, describes itself as open source inference serving software that supports models from multiple frameworks across cloud, data center, and edge. &lt;a href="https://huggingface.co/docs/text-generation-inference/index" rel="noopener noreferrer"&gt;Hugging Face Text Generation Inference&lt;/a&gt; serves LLMs with Prometheus metrics and OpenTelemetry tracing, and its docs now state it is in maintenance mode and recommend vLLM, SGLang, llama.cpp, or MLX going forward.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pin model and driver versions.&lt;/strong&gt; Fix the model revision, serving engine version, CUDA version, and driver version in the image and in your infrastructure code. Upgrade all locations together.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pre-stage weights in each location.&lt;/strong&gt; Replicate weights to object storage or local disk near every GPU location. Verify checksums. A failover that has to download 100 GB of weights is a slow failover.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use health checks that run a real inference request.&lt;/strong&gt; A process that answers on a port can still fail to generate. Send a short prompt, check for a valid response within a time limit, and fail the location if it does not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Route with a global endpoint or load balancer you control.&lt;/strong&gt; The router must sit outside any one provider’s failure domain, and it must remove unhealthy locations automatically.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drill the failover.&lt;/strong&gt; Take a location out of rotation on a schedule. Measure how long recovery takes and how much traffic errors out. Fix what the drill finds.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  How do I keep an AI product online when my model provider or GPU cloud has an outage?
&lt;/h3&gt;

&lt;p&gt;For a GPU cloud outage, use the steps above. For a hosted model API outage, add a fallback chain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary:&lt;/strong&gt; the hosted model API you use today.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Second choice:&lt;/strong&gt; a second API provider, with prompts tested against both.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Last resort:&lt;/strong&gt; a self-hosted open-weight model running in two GPU locations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Test prompts and output parsing against every model in the chain, because models differ in format and tone. Decide in advance whether a lower-quality answer is better than an error. Set timeouts short enough that the fallback triggers before users give up. Agent workloads need the same discipline. See &lt;a href="https://controlplane.com/blog/post/ai-agent-infrastructure-where-to-run-agents-in-production?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=ai-inference-multiple-gpu-clouds" rel="noopener noreferrer"&gt;where to run agents in production&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I run LLM inference on my own GPUs and burst to the cloud when demand spikes?
&lt;/h2&gt;

&lt;p&gt;Keep steady traffic on owned or reserved GPU servers. Send peaks to cloud GPUs. Four points decide whether this works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Size the base to the floor, not the peak.&lt;/strong&gt; Owned GPUs earn their cost when they are busy. Set the base to the load you carry most hours, and let the cloud cover the rest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep both environments identical.&lt;/strong&gt; Use the same container image, the same pinned versions, and the same configuration from one infrastructure-as-code repository. Differences between the owned and cloud environments show up as inconsistent answers during a spike.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pre-stage weights in the cloud.&lt;/strong&gt; Copy weights to cloud storage near the burst location before you need it. Keep a small number of warm replicas so the first burst requests do not wait for model load.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Account for latency and data transfer.&lt;/strong&gt; Requests that cross between your data center and a cloud region add round-trip time. Moving data or weights between them can add transfer charges. Place the burst location in a region close to your users and your data, and keep data that must stay on premises out of the burst path.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I move between GPU providers as prices and availability change?
&lt;/h2&gt;

&lt;p&gt;Use this portability checklist:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Containers, not provider-specific services.&lt;/strong&gt; Package the model server in a container image that any Kubernetes-compatible environment can run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure as code.&lt;/strong&gt; Define locations, networking, and workloads in code, such as Terraform or Pulumi, so a new provider is a new target.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open model formats where you can.&lt;/strong&gt; Avoid formats that only one provider’s runtime can load. Keep a copy of the original weights.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Object storage replication for weights.&lt;/strong&gt; Replicate weights across providers on a schedule, so any location can start serving without a long copy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A routing layer you control.&lt;/strong&gt; If your provider owns the router, your provider controls your exit. Run routing outside any one GPU cloud.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Identity without long-lived keys.&lt;/strong&gt; Provider-specific keys embedded in code make moves harder. Use short-lived credentials instead.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Test the checklist by moving a small share of non-critical traffic to a second provider each quarter.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do the main GPU clouds compare?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  CoreWeave vs Lambda vs AWS for GPU workloads
&lt;/h3&gt;

&lt;p&gt;All three offer NVIDIA GPUs, and they differ in type and positioning. AWS is a hyperscaler that sells GPU instances next to a broad set of other services. CoreWeave and Lambda are neoclouds that focus on AI workloads. The table below states only what each provider’s own pages say, as of October 30, 2026. Check each page for current prices, GPU availability, and regions, which change often.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best GPU cloud providers for inference
&lt;/h3&gt;

&lt;p&gt;The right provider depends on your workload, so this table does not rank them.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Best for (per its own pages)&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://aws.amazon.com/ec2/instance-types/p5/" rel="noopener noreferrer"&gt;AWS&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Hyperscaler&lt;/td&gt;
&lt;td&gt;Deep learning and HPC applications&lt;/td&gt;
&lt;td&gt;The EC2 P5 page describes instances powered by NVIDIA H100 GPUs, and P5e and P5en instances powered by NVIDIA H200 GPUs.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://cloud.google.com/compute/docs/gpus" rel="noopener noreferrer"&gt;Google Cloud&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Hyperscaler&lt;/td&gt;
&lt;td&gt;Machine learning, data processing, and graphics-intensive workloads&lt;/td&gt;
&lt;td&gt;The Compute Engine docs list NVIDIA GPU models and the accelerator-optimized machine series they attach to.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/overview" rel="noopener noreferrer"&gt;Microsoft Azure&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Hyperscaler&lt;/td&gt;
&lt;td&gt;Compute-intensive, graphics-intensive, and visualization workloads (GPU sizes)&lt;/td&gt;
&lt;td&gt;The VM sizes overview groups sizes into families, including the GPU accelerated NC, ND, NG, and NV families.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.coreweave.com/" rel="noopener noreferrer"&gt;CoreWeave&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Neocloud&lt;/td&gt;
&lt;td&gt;Complex AI workloads&lt;/td&gt;
&lt;td&gt;Describes itself as the AI cloud purpose-built for training and serving models at scale.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://lambda.ai/" rel="noopener noreferrer"&gt;Lambda&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Neocloud&lt;/td&gt;
&lt;td&gt;Training and inference at scale&lt;/td&gt;
&lt;td&gt;Lists NVIDIA Vera Rubin NVL72, GB300 NVL72, HGX B300, HGX B200, H200, and H100 GPUs, offered as Instances, 1-Click Clusters, and Superclusters.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.runpod.io/" rel="noopener noreferrer"&gt;Runpod&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Neocloud&lt;/td&gt;
&lt;td&gt;Training, inference, and batch workloads&lt;/td&gt;
&lt;td&gt;Offers on-demand GPUs and serverless compute, with Pods, Serverless, and Clusters.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://nebius.com/" rel="noopener noreferrer"&gt;Nebius&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Neocloud&lt;/td&gt;
&lt;td&gt;AI developers&lt;/td&gt;
&lt;td&gt;Describes built-in MLOps tooling, serverless inference, and managed inference.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For a fuller roundup, see &lt;a href="https://controlplane.com/blog/post/best-gpu-cloud-providers-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=ai-inference-multiple-gpu-clouds" rel="noopener noreferrer"&gt;The Best GPU Cloud Providers for AI Inference and Training in 2026&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The strongest setup uses more than one of these. A hyperscaler gives you broad services and compliance coverage. A neocloud may give you GPU capacity or terms the hyperscaler cannot. Running the same container in both means an outage, a quota limit, or a price change at one provider moves traffic to the other.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I choose an AI model inference service for my application?
&lt;/h2&gt;

&lt;p&gt;Work through this checklist in order:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Latency target.&lt;/strong&gt; Set a time-to-first-token and total-response target for your users. Measure from where users sit, not from the provider’s region.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Throughput.&lt;/strong&gt; Estimate peak requests per second and tokens per request. Plan capacity for the peak, then decide what runs on base capacity and what bursts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model size and GPU memory.&lt;/strong&gt; The weights plus the KV cache, which grows with batch size and context length, must fit in the memory of one GPU or be split across several GPUs. This decides which GPUs qualify and how many you need.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data residency and compliance.&lt;/strong&gt; List the jurisdictions and certifications your data requires. Remove providers and regions that do not fit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Managed API or self-hosted.&lt;/strong&gt; A managed API is faster to start and ties you to that provider’s model and uptime. Self-hosting gives control over versions, cost, and location, and adds operational work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exit cost.&lt;/strong&gt; Estimate what it takes to leave: egress charges, weight migration, retraining of prompts, and rework of provider-specific code.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How do I combine GPU capacity from multiple providers into one environment?
&lt;/h2&gt;

&lt;p&gt;On Control Plane, you deploy one inference workload to a Global Virtual Cloud (GVC). A GVC combines any cloud, neocloud, and bare metal into one environment. Its locations can be AWS, GCP, or Azure regions, and GPU servers from other providers or your own data center. You join GPU servers as managed locations with Control Plane Managed Kubernetes (MK8s), or connect clusters you already run with Control Plane’s Bring Your Own Kubernetes (BYOK).&lt;/p&gt;

&lt;p&gt;The workload runs in every location of the GVC. A global endpoint routes each request to the nearest healthy location, so you get failover without paying for idle standby capacity. A workload’s GPU request applies in every location of its GVC, so choose locations that offer the same GPU model.&lt;/p&gt;

&lt;p&gt;On Control Plane, a readiness probe (HTTP, gRPC, TCP, or a command) decides when each replica can take traffic. A command probe, or an HTTP health endpoint that runs a short inference request, makes that check real. When a location has no ready replicas, the workload’s global endpoint routes requests to another healthy location. Metrics, logs, and traces for every location appear in one place, so you do not stitch together each provider’s dashboards.&lt;/p&gt;

&lt;p&gt;The approach has held up in a real outage. During the October 2025 AWS us-east-1 outage, which lasted about 15 hours, Control Plane customers with us-east-1 in their GVC had no downtime, and their workloads were “active and running in healthy locations within 10 seconds,” according to the company’s internal incident telemetry. See &lt;a href="https://controlplane.com/blog/post/beyond-backups-designing-systems-that-survive-the-inevitable?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=ai-inference-multiple-gpu-clouds" rel="noopener noreferrer"&gt;designing systems that survive the inevitable&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Workloads can attach NVIDIA GPUs, and the pricing page lists models from T4 to B200. Control Plane’s GPU Ocean lets you pull GPU capacity from any provider by joining GPU servers as locations with MK8s.&lt;/p&gt;

&lt;p&gt;Control Plane’s location routing options shift traffic between locations by setting priority tiers and latency offsets per location.&lt;/p&gt;

&lt;p&gt;Control Plane backs this with a 99.999% availability SLA, which applies to workloads running at least two replicas in at least two locations. Those locations can be two regions of one cloud or locations on different providers.&lt;/p&gt;

&lt;p&gt;A few more facts matter for inference teams:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Where it runs.&lt;/strong&gt; Control Plane runs serverless, standard, stateful, cron, and VM workloads on AWS, GCP, and Azure, on clusters you already run through BYOK, on your own machines (bare metal or VMs) turned into managed locations with MK8s, and on premises. On Control Plane-provided compute, there is no Kubernetes cluster you have to operate. Many teams run it in one cloud, so you can adopt it before you add a second provider.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost.&lt;/strong&gt; Customers typically cut compute costs 30 to 50 percent compared with running directly on AWS, GCP, or Azure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Billing.&lt;/strong&gt; On Control Plane-provided compute, you pay for the CPU and memory you reserve, by the millicore and the megabyte, with no contracts or minimums. Other resources such as egress, storage, load balancers, and GPUs are also billed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Identity.&lt;/strong&gt; Control Plane’s Universal Cloud Identity gives workloads short-lived, least-privilege access to 600+ AWS, GCP, and Azure services, with no long-lived cloud keys in your code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance.&lt;/strong&gt; Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tooling.&lt;/strong&gt; The CLI, console, Terraform and Pulumi providers, and the Control Plane MCP server all work through the same Control Plane API. Because Control Plane ships its own providers, it complements the infrastructure as code you already run.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the layers an inference stack needs, read &lt;a href="https://controlplane.com/blog/post/what-infrastructure-do-you-need-to-run-an-inference-layer?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=ai-inference-multiple-gpu-clouds" rel="noopener noreferrer"&gt;what infrastructure you need to run an inference layer&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I run inference on my own GPUs alongside my cloud apps?
&lt;/h3&gt;

&lt;p&gt;On Control Plane, join your GPU servers as a managed location with MK8s, or attach an existing cluster with BYOK, and add that location to the same GVC as your cloud locations. Your inference workload and your cloud apps then share one environment, one API, and one global endpoint. To prefer your own GPUs, set Control Plane’s location routing options. Put the owned location in a higher-priority routing tier than the cloud locations, and the cloud locations, which run the same workload, take traffic only when the owned location becomes unavailable. To lean traffic toward your own GPUs while cloud locations still serve users near them, give the cloud locations a positive latency offset instead. With MK8s, Control Plane operates the Kubernetes layer on the GPU servers you join, and the hardware stays yours.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How do I fail over AI inference between GPU providers when one has an outage?
&lt;/h3&gt;

&lt;p&gt;Run the same container image in at least two GPU locations on different providers, with weights pre-staged in each. Use health checks that run a real inference request, and route through a global endpoint outside any one provider. Drill the failover on a schedule.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I keep an AI product online when my model provider or GPU cloud has an outage?
&lt;/h3&gt;

&lt;p&gt;For a GPU cloud outage, run in two providers. For a hosted model API outage, set a fallback chain: a second API provider, then a self-hosted open-weight model. Test prompts against every model in the chain.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I move between GPU providers as prices and availability change?
&lt;/h3&gt;

&lt;p&gt;Package the model server as a container, define infrastructure as code, replicate weights across providers, and run routing outside any one provider. Then a move is a routing change plus a new location, not a rebuild.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I run inference on my own GPUs alongside my cloud apps?
&lt;/h3&gt;

&lt;p&gt;Put your GPU servers and your cloud locations in one environment that shares a deployment API and a routing layer. On Control Plane, join the servers as Managed Kubernetes (MK8s) locations in the same Global Virtual Cloud (GVC) as your cloud locations.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I run LLM inference on my own GPUs and burst to the cloud when demand spikes?
&lt;/h3&gt;

&lt;p&gt;Size owned GPUs for your steady load. Run the same image and pinned versions in a cloud location with weights already staged, and route peaks there. Plan for latency and transfer cost between the two.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I combine GPU capacity from multiple providers into one environment?
&lt;/h3&gt;

&lt;p&gt;Use a platform that treats each provider’s GPUs as a location of one workload. On Control Plane, one workload runs in every location of a Global Virtual Cloud (GVC), and a global endpoint routes requests to the nearest healthy one.&lt;/p&gt;

&lt;h3&gt;
  
  
  CoreWeave vs Lambda vs AWS for GPU workloads: which should I use?
&lt;/h3&gt;

&lt;p&gt;Treat them as parts of one setup. AWS is a hyperscaler with a broad service catalog, while CoreWeave and Lambda are neoclouds that focus on AI workloads. Compare current prices, availability, and regions on each provider’s own pages, and consider using more than one.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the best GPU cloud providers for inference?
&lt;/h3&gt;

&lt;p&gt;The answer depends on your latency target, model size, residency rules, and exit cost. This guide’s comparison table covers AWS, Google Cloud, Microsoft Azure, CoreWeave, Lambda, Runpod, and Nebius, and the &lt;a href="https://controlplane.com/blog/post/best-gpu-cloud-providers-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=ai-inference-multiple-gpu-clouds" rel="noopener noreferrer"&gt;fuller roundup&lt;/a&gt; goes deeper.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I choose an AI model inference service for my application?
&lt;/h3&gt;

&lt;p&gt;Set a latency target, estimate throughput, check that the model fits GPU memory, list your data residency needs, choose managed API or self-hosted, and estimate exit cost. Then qualify two providers.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are common challenges in AI model inference and how can I overcome them?
&lt;/h3&gt;

&lt;p&gt;The main ones are GPU availability, cold starts, global latency, idle GPU cost, version drift, observability, and data residency. Pre-staged weights, pinned versions, multi-location routing, and consistent metrics address most of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next steps
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://controlplane.com/requestdemo?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=ai-inference-multiple-gpu-clouds" rel="noopener noreferrer"&gt;Talk to the Control Plane team&lt;/a&gt; or &lt;a href="https://console.cpln.io/signup" rel="noopener noreferrer"&gt;sign up free&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://controlplane.com/blog/post/ai-inference-multiple-gpu-clouds?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=ai-inference-multiple-gpu-clouds" rel="noopener noreferrer"&gt;Control Plane blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Your Developer Laptop Is Now an Attack Surface. Stop Running AI Agents on It.</title>
      <dc:creator>Noah Grinstein</dc:creator>
      <pubDate>Fri, 30 Oct 2026 20:50:12 +0000</pubDate>
      <link>https://dev.to/noahcontrolplane/your-developer-laptop-is-now-an-attack-surface-stop-running-ai-agents-on-it-3aij</link>
      <guid>https://dev.to/noahcontrolplane/your-developer-laptop-is-now-an-attack-surface-stop-running-ai-agents-on-it-3aij</guid>
      <description>&lt;p&gt;The malicious Claude Code extension that appeared in Cursor’s marketplace should be a wake-up call for every engineering leader. On October 29, 2026, a maliciously modified version of Anthropic’s Claude Code extension was distributed through Cursor’s extension marketplace, potentially affecting up to 5,000 developers. The compromised extension attempted to install a persistent SSH backdoor, giving attackers a path to remote access. The malicious build was not developed by Anthropic, and no compromise of Anthropic’s systems has been confirmed.&lt;/p&gt;

&lt;p&gt;Your laptop is your workstation. It should never be your AI agent’s execution environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;On October 29, 2026, a malicious build of the Claude Code extension (version 2.1.313) reached up to 5,000 developers through Cursor’s extension marketplace and attempted to plant a persistent SSH backdoor.&lt;/li&gt;
&lt;li&gt;A developer laptop holds production credentials, cloud tokens, SSH keys, source code, customer data, and VPN access. One compromised coding tool can expose all of it.&lt;/li&gt;
&lt;li&gt;AI coding agents execute code, install dependencies, and interact with untrusted content. On a laptop, each of those actions runs with the developer’s access.&lt;/li&gt;
&lt;li&gt;Keep using coding agents, and run their execution environments, including the agent itself, in isolated, remotely hosted sandboxes with VM-level isolation, restricted network access, and narrowly scoped credentials.&lt;/li&gt;
&lt;li&gt;Control Plane Sandboxes run in dedicated Kata Containers microVMs and use Control Plane’s Universal Cloud Identity, so an agent has no cloud keys to leak.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What happened in the Claude Code extension incident?
&lt;/h2&gt;

&lt;p&gt;According to &lt;a href="https://cursor.com/blog/claude-code-extension-security-notice" rel="noopener noreferrer"&gt;Cursor’s security notice&lt;/a&gt;, a maliciously modified version of Anthropic’s Claude Code extension was available in Cursor’s VS Code extension marketplace for about 11 hours on October 29, 2026, between roughly 2:27 a.m. and 1:35 p.m. Pacific time. The affected package is Anthropic.claude-code version 2.1.313. You are at risk only if you installed or updated to that version from Cursor’s marketplace during that window, which includes automatic updates. Cursor says at most 5,000 users were affected and that it will contact them directly.&lt;/p&gt;

&lt;p&gt;The malicious build attempted to add an attacker-controlled SSH key to the developer’s authorized_keys file, enable the local SSH service, and open a reverse SSH tunnel. Cursor says the added key is labeled svc-telemetry. It made the tunnel persistent through a LaunchAgent on macOS and a scheduled task or Startup script on Windows, and &lt;a href="https://www.stepsecurity.io/blog/claude-code-extension-trojanized" rel="noopener noreferrer"&gt;StepSecurity&lt;/a&gt; and &lt;a href="https://thehackernews.com/2026/10/official-claude-code-vs-code-extension.html" rel="noopener noreferrer"&gt;The Hacker News&lt;/a&gt; also report a cron entry on Linux.&lt;/p&gt;

&lt;p&gt;Cursor says enabling SSH requires administrator rights the extension lacks on most macOS and Windows machines, so on those machines that step failed and the attacker could not log in through the tunnel. The extension still added the attacker’s key, installed persistence, and sent host details to the attacker, including the hostname, username, environment variable names, configured Git email, and public IP address.&lt;/p&gt;

&lt;p&gt;Cursor states the malicious version was not developed by Anthropic and that it has no evidence other versions or the official distribution were affected. Cursor pulled the version, shut down its marketplace to audit it, and reports that no other extensions were tampered with. How the build was published under the extension’s name has not been publicly explained, as &lt;a href="https://www.bleepingcomputer.com/news/security/malicious-claude-code-extension-on-cursor-planted-ssh-backdoors/" rel="noopener noreferrer"&gt;BleepingComputer&lt;/a&gt; notes, and no compromise of Anthropic’s systems has been confirmed. &lt;a href="https://thehackernews.com/2026/10/official-claude-code-vs-code-extension.html" rel="noopener noreferrer"&gt;The Hacker News&lt;/a&gt; reports that Anthropic has published a clean version, 2.1.314.&lt;/p&gt;

&lt;p&gt;The specific attack matters less than the pattern. A trusted developer tool, delivered through a normal marketplace, became a path into developer machines.&lt;/p&gt;

&lt;h3&gt;
  
  
  If you installed the extension, do this now
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Follow the check in &lt;a href="https://cursor.com/blog/claude-code-extension-security-notice" rel="noopener noreferrer"&gt;Cursor’s security notice&lt;/a&gt; to confirm whether you are affected.&lt;/li&gt;
&lt;li&gt;If you are affected, disconnect the machine from the network before anything else.&lt;/li&gt;
&lt;li&gt;Look for an entry labeled svc-telemetry in ~/.ssh/authorized_keys and, on Windows administrator accounts, in C:\ProgramData\ssh\administrators_authorized_keys. Remove any key you did not add.&lt;/li&gt;
&lt;li&gt;Uninstalling the extension is not enough, because the payload leaves standalone persistence scripts. Use the remediation scripts Cursor publishes for macOS and Windows, or remove persistence by hand: ~/Library/LaunchAgents, /Library/LaunchAgents, and /Library/LaunchDaemons on macOS; Task Scheduler and Startup folders on Windows; crontab on Linux. Then stop any reverse SSH tunnel processes.&lt;/li&gt;
&lt;li&gt;If you did not enable it yourself, turn off the SSH server: Remote Login on macOS, the sshd service on Windows or Linux.&lt;/li&gt;
&lt;li&gt;From a clean device, rotate every secret the machine could reach: cloud credentials, SSH keys, API tokens, repository tokens, and package-registry publish tokens. Invalidate active sessions, and check your Git host for SSH or deploy keys you did not add.&lt;/li&gt;
&lt;li&gt;Assess whether to rebuild the machine from a known-good state, then reinstall the extension at version 2.1.314 or later. Contact &lt;a href="mailto:security@cursor.com"&gt;security@cursor.com&lt;/a&gt; with questions.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why is a developer laptop such a big target?
&lt;/h2&gt;

&lt;p&gt;Consider what sits on a typical developer’s laptop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Production credentials and cloud access tokens.&lt;/li&gt;
&lt;li&gt;SSH keys and access to private repositories.&lt;/li&gt;
&lt;li&gt;Customer data, internal documents, and proprietary source code.&lt;/li&gt;
&lt;li&gt;VPN connections into corporate infrastructure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An attacker who gets code execution on that laptop inherits the developer’s access, and a persistent backdoor can keep that access after the malicious tool is removed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do AI coding agents raise the stakes?
&lt;/h2&gt;

&lt;p&gt;AI coding agents routinely execute code, install dependencies, and interact with untrusted content. Each of those is a path in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Executing code.&lt;/strong&gt; Agents run builds, tests, and scripts. Malicious code runs with the developer’s permissions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Installing dependencies.&lt;/strong&gt; Agents pull packages from public registries, where typosquatted and compromised packages appear regularly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reading untrusted content.&lt;/strong&gt; Agents read issues, web pages, and documentation. Instructions hidden in that content can steer an agent into running commands or sending data it should not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Running as an extension.&lt;/strong&gt; The agent itself is software delivered through a marketplace. If that delivery channel is compromised, the agent is the attack, and it runs wherever the agent is installed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Running all of that directly on a laptop gives every one of those paths the developer’s access. A remote sandbox helps only if the agent itself, not just its commands, runs there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Laptop vs remote sandbox: what changes?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Agent runs on the laptop&lt;/th&gt;
&lt;th&gt;Agent runs in an isolated remote sandbox (recommended setup)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;What a compromised agent can reach&lt;/td&gt;
&lt;td&gt;Everything the developer can reach: SSH keys, cloud tokens, repositories, VPN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Isolation boundary&lt;/td&gt;
&lt;td&gt;None beyond the developer’s user account&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Credentials&lt;/td&gt;
&lt;td&gt;Often long-lived keys, tokens, and browser sessions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Persistence&lt;/td&gt;
&lt;td&gt;A backdoor can survive removal of the tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network access&lt;/td&gt;
&lt;td&gt;The laptop’s network, often including the corporate VPN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cleanup after an incident&lt;/td&gt;
&lt;td&gt;Investigate and rebuild a developer machine&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How should you run AI coding agents safely?
&lt;/h2&gt;

&lt;p&gt;Keep the developer’s workflow. Move the agent’s execution somewhere a compromise stays contained. A practical checklist:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Run agents in remote sandboxes.&lt;/strong&gt; Install the agent CLI or extension inside the sandbox, not in the local editor, and keep its tools and dependencies off developer endpoints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use VM-level isolation.&lt;/strong&gt; A shared kernel is a weaker boundary for code you do not trust.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restrict network access.&lt;/strong&gt; Give the sandbox only the network paths the task needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scope credentials narrowly.&lt;/strong&gt; Use short-lived, least-privilege credentials, never long-lived keys copied into the environment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bring no laptop secrets in.&lt;/strong&gt; Do not mount the home directory, forward the SSH agent, or copy ~/.aws, ~/.ssh, or .env files. Give each sandbox its own repository-scoped token, read-only by default.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make environments disposable.&lt;/strong&gt; Start each task from a known template and throw the environment away afterward.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep production separate.&lt;/strong&gt; Sandboxes are for building and running untrusted code, not for serving production traffic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review before merge.&lt;/strong&gt; Agent output still goes through code review and CI, and agent tokens cannot push to protected branches or edit CI workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Log and audit.&lt;/strong&gt; Record agent commands, outbound connections, and credential use, and alert on anything unexpected.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For a broader comparison of options, see &lt;a href="https://controlplane.com/blog/post/best-ai-agent-sandboxes-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=stop-running-ai-agents-on-developer-laptops" rel="noopener noreferrer"&gt;the best AI agent sandboxes in 2026&lt;/a&gt;, and for why sandbox design matters to coding agents, read &lt;a href="https://controlplane.com/blog/post/dumb-sandbox-vs-smart-sandbox-coding-agents?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=stop-running-ai-agents-on-developer-laptops" rel="noopener noreferrer"&gt;dumb sandbox vs smart sandbox for coding agents&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Control Plane Sandboxes and how do they help?
&lt;/h2&gt;

&lt;p&gt;Control Plane Sandboxes are isolated, remotely hosted environments where AI coding agents run code, install dependencies, and use tools inside dedicated Kata Containers microVMs, away from developer laptops. Control Plane is the platform for running unbreakable apps and agents, and its Sandboxes are designed for exactly this problem: developers keep their familiar workflows, agents get isolated execution environments, and a compromised agent does not automatically inherit access to everything on a developer’s machine.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;VM-level isolation.&lt;/strong&gt; Sandboxes run in dedicated Kata Containers microVMs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No cloud keys to leak.&lt;/strong&gt; Sandboxes use Universal Cloud Identity to call AWS, GCP, and Azure services without storing credentials in the sandbox.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blueprint templates.&lt;/strong&gt; Teams define templates with the tools an agent needs, such as cloud CLIs, Git CLIs, and coding agent CLIs, then start ephemeral sandboxes from them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sized for the work.&lt;/strong&gt; Sandboxes range from 2 to 16 or more CPUs, and each has a dedicated TLS endpoint.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Idle behavior.&lt;/strong&gt; Sandboxes auto-sleep when idle and spin back up in under one second.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private access when needed.&lt;/strong&gt; Control Plane’s Cloud Wormhole gives sandboxes access to services in VPCs and private on-premises networks behind firewalls, without VPN clients to install.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Familiar access.&lt;/strong&gt; Developers connect with the Control Plane CLI command cpln sandbox connect from Cursor, over SSH, or in a browser IDE. See &lt;a href="https://docs.controlplane.com/guides/sandbox?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=stop-running-ai-agents-on-developer-laptops" rel="noopener noreferrer"&gt;Getting Started with Sandbox&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant. When an agent graduates from experiment to production, it runs as a regular workload on the same platform. Read &lt;a href="https://controlplane.com/blog/post/ai-agents-production-infrastructure-safely?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=stop-running-ai-agents-on-developer-laptops" rel="noopener noreferrer"&gt;how to let AI agents work on production infrastructure safely&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;See how Sandboxes fit your agents: &lt;a href="https://controlplane.com/requestdemo?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=stop-running-ai-agents-on-developer-laptops" rel="noopener noreferrer"&gt;talk to the Control Plane team&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How much does a sandbox reduce the blast radius?
&lt;/h2&gt;

&lt;p&gt;No isolation layer stops every attack. What a sandbox changes is how far an attack can travel. A compromised agent inside an isolated environment with narrowly scoped access is a contained incident. The same agent on a developer laptop can become a breach of your engineering environment.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Your laptop is your workstation. It should never be your AI agent’s execution environment.&lt;/p&gt;

&lt;p&gt;Doron Grinstein, CEO, Control Plane&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Should AI coding agents run on developer laptops?
&lt;/h3&gt;

&lt;p&gt;Not for execution. Coding agents run code, install dependencies, and read untrusted content. On a laptop they inherit everything the developer can reach: SSH keys, cloud tokens, source code, and VPN access. Run the agent’s execution environment in an isolated remote sandbox, install the agent there rather than as a local editor extension, and keep the developer’s machine for editing and review.&lt;/p&gt;

&lt;h3&gt;
  
  
  What should I do if I installed the malicious Claude Code extension?
&lt;/h3&gt;

&lt;p&gt;Follow the check in Cursor’s security notice. If you are affected, disconnect the machine, remove any authorized_keys entry labeled svc-telemetry, remove the persistence scripts (uninstalling the extension is not enough), and turn off the SSH server if you did not enable it. From a clean device, rotate the credentials the machine could reach and invalidate sessions. Then consider rebuilding the machine from a known-good state and reinstall version 2.1.314 or later.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a sandbox for AI coding agents?
&lt;/h3&gt;

&lt;p&gt;An isolated, disposable environment where an agent can run code, install packages, and use tools without touching the developer’s machine or production systems. Good sandboxes add VM-level isolation, restricted network access, and short-lived, narrowly scoped credentials.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does a sandbox stop every attack?
&lt;/h3&gt;

&lt;p&gt;No. A sandbox limits the blast radius. A compromised agent inside a sandbox can reach only what that sandbox is granted, not everything on a developer’s laptop, unless it escapes the isolation boundary. You still need dependency hygiene, code review, and least-privilege access.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do Control Plane Sandboxes isolate AI agents?
&lt;/h3&gt;

&lt;p&gt;Sandboxes run in dedicated Kata Containers microVMs. They start from blueprint templates, auto-sleep when idle, and use Universal Cloud Identity to call AWS, GCP, and Azure services without storing cloud credentials, so an agent has no cloud keys to leak.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can developers keep their normal workflow with remote sandboxes?
&lt;/h3&gt;

&lt;p&gt;Yes. Developers keep their editor and review flow and connect to the sandbox when they need a shell, for example with cpln sandbox connect from Cursor, over SSH, or in a browser IDE. The agent’s tools and dependencies live in the sandbox, not on the laptop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://controlplane.com/requestdemo?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=stop-running-ai-agents-on-developer-laptops" rel="noopener noreferrer"&gt;Talk to the Control Plane team&lt;/a&gt; | &lt;a href="https://console.cpln.io/signup" rel="noopener noreferrer"&gt;Sign up free&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://controlplane.com/blog/post/stop-running-ai-agents-on-developer-laptops?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=stop-running-ai-agents-on-developer-laptops" rel="noopener noreferrer"&gt;Control Plane blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>ai</category>
      <category>devops</category>
      <category>claude</category>
    </item>
    <item>
      <title>Active-Active vs Active-Passive: The Real Cost of Multi-Region High Availability in 2026</title>
      <dc:creator>Noah Grinstein</dc:creator>
      <pubDate>Fri, 30 Oct 2026 20:49:17 +0000</pubDate>
      <link>https://dev.to/noahcontrolplane/active-active-vs-active-passive-the-real-cost-of-multi-region-high-availability-in-2026-4dij</link>
      <guid>https://dev.to/noahcontrolplane/active-active-vs-active-passive-the-real-cost-of-multi-region-high-availability-in-2026-4dij</guid>
      <description>&lt;p&gt;Traditional active-active usually costs roughly twice a single region because you run a full second stack, while active-passive costs less but recovers slower and sits idle most of the time. Control Plane is the platform that runs one workload active-active across locations without paying for idle standby capacity.&lt;/p&gt;

&lt;p&gt;Disclosure: Control Plane publishes this guide.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A second region adds 3% to 86% to the monthly bill of our reference application, depending on the pattern. Backup and restore is cheapest. Active-active is the most expensive.&lt;/li&gt;
&lt;li&gt;Hot standby (active-passive) and active-active both run a full second stack. In active-active that stack serves traffic. In hot standby it waits.&lt;/li&gt;
&lt;li&gt;Whether the extra cost is worth it depends on the cost of one hour of downtime and how many hours of outage the pattern removes. Section 4 gives the formula.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pattern&lt;/th&gt;
&lt;th&gt;Typical RTO&lt;/th&gt;
&lt;th&gt;Typical RPO&lt;/th&gt;
&lt;th&gt;Cost vs single region (reference app)&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Backup and restore&lt;/td&gt;
&lt;td&gt;Hours to a day&lt;/td&gt;
&lt;td&gt;Hours (last backup)&lt;/td&gt;
&lt;td&gt;1.03x&lt;/td&gt;
&lt;td&gt;Internal tools, dev and test, early-stage products&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pilot light&lt;/td&gt;
&lt;td&gt;Tens of minutes to hours&lt;/td&gt;
&lt;td&gt;Seconds to minutes&lt;/td&gt;
&lt;td&gt;1.24x&lt;/td&gt;
&lt;td&gt;Products with an RTO of a few hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Warm standby&lt;/td&gt;
&lt;td&gt;Minutes to tens of minutes&lt;/td&gt;
&lt;td&gt;Seconds to minutes&lt;/td&gt;
&lt;td&gt;1.38x&lt;/td&gt;
&lt;td&gt;Most B2B SaaS with a 99.9% target&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Active-passive (hot standby)&lt;/td&gt;
&lt;td&gt;Minutes&lt;/td&gt;
&lt;td&gt;Seconds&lt;/td&gt;
&lt;td&gt;1.62x&lt;/td&gt;
&lt;td&gt;Strict RTO, tolerates an idle second stack&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Active-active (multi-site)&lt;/td&gt;
&lt;td&gt;Seconds to minutes&lt;/td&gt;
&lt;td&gt;Near zero to seconds&lt;/td&gt;
&lt;td&gt;1.86x&lt;/td&gt;
&lt;td&gt;99.99% targets, global users, high cost of downtime&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;RTO and RPO ranges are planning ranges for this guide. Your measured numbers depend on design and testing. Cost multiples come from the worked model in section 3, priced on October 29, 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five resilience patterns, in order of cost
&lt;/h2&gt;

&lt;p&gt;The AWS Well-Architected &lt;a href="https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-workloads-on-aws.html" rel="noopener noreferrer"&gt;disaster recovery whitepaper&lt;/a&gt; defines the strategies used below. It groups them as active/passive (the first three, plus hot standby) and active/active. It describes multi-site active/active as the most complex and costly approach, one that can reduce recovery time to near zero for most disasters.&lt;/p&gt;

&lt;h3&gt;
  
  
  Backup and restore
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works:&lt;/strong&gt; You copy backups and snapshots to a second region on a schedule. After a disaster you rebuild infrastructure from code and restore data.&lt;strong&gt;RTO and RPO:&lt;/strong&gt; RTO is hours to a day. RPO equals the age of the last good backup.&lt;strong&gt;What sits idle:&lt;/strong&gt; Nothing runs. You pay for stored copies.&lt;strong&gt;What breaks during failover:&lt;/strong&gt; Everything is down until the rebuild finishes. Untested restores and missing infrastructure code are the usual causes of long recoveries.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pilot light
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works:&lt;/strong&gt; The database replicates continuously to region 2 and runs there. Application servers and load balancers are defined in code but switched off.&lt;strong&gt;RTO and RPO:&lt;/strong&gt; RTO is tens of minutes to hours, because you start and scale the application tier. RPO is seconds to minutes with asynchronous replication.&lt;strong&gt;What sits idle:&lt;/strong&gt; The replica runs and serves nobody.&lt;strong&gt;What breaks during failover:&lt;/strong&gt; You must promote the replica, start compute, and move traffic. Scale-up can hit capacity limits in the recovery region.&lt;/p&gt;

&lt;h3&gt;
  
  
  Warm standby
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works:&lt;/strong&gt; A complete but scaled-down copy of the stack runs in region 2 and receives a small amount of traffic or health checks. At failover you scale it up.&lt;strong&gt;RTO and RPO:&lt;/strong&gt; RTO is minutes to tens of minutes. RPO is seconds to minutes.&lt;strong&gt;What sits idle:&lt;/strong&gt; A fraction of the application tier and a full replica.&lt;strong&gt;What breaks during failover:&lt;/strong&gt; Region 2 starts at reduced capacity and must absorb full load. Autoscaling speed sets how long users see slow responses.&lt;/p&gt;

&lt;h3&gt;
  
  
  Active-passive (hot standby)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works:&lt;/strong&gt; Region 2 runs a full-size stack that takes no user traffic. AWS calls this hot standby. Data replicates continuously.&lt;strong&gt;RTO and RPO:&lt;/strong&gt; RTO is minutes, mostly detection and traffic shift. RPO is seconds.&lt;strong&gt;What sits idle:&lt;/strong&gt; Nearly the whole second stack.&lt;strong&gt;What breaks during failover:&lt;/strong&gt; Database promotion, cache warm-up, and DNS or routing changes. Because the stack never serves production traffic, configuration drift goes unnoticed until the day you need it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Active-active (multi-site)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works:&lt;/strong&gt; Both regions serve production traffic at all times. A global routing layer sends each user to a healthy region.&lt;strong&gt;RTO and RPO:&lt;/strong&gt; RTO is seconds to minutes. RPO is near zero to seconds, depending on the data layer.&lt;strong&gt;What sits idle:&lt;/strong&gt; Little, if each region is autoscaled. Reserved headroom for absorbing the other region’s load is the main idle cost.&lt;strong&gt;What breaks during failover:&lt;/strong&gt; The surviving region must take double load. Writes are the hard part. A single-writer database makes writes active-passive even if reads are active-active.&lt;/p&gt;

&lt;h2&gt;
  
  
  Active-active vs active-passive disaster recovery: which is better for a SaaS company?
&lt;/h2&gt;

&lt;p&gt;Active-active is better when downtime is expensive, users are spread across geographies, or the RTO target is under a few minutes. It also exercises region 2 every day, so failover is routine. Active-passive is better when the budget is tight, writes must go to one database, and a recovery time of tens of minutes is acceptable. AWS notes that most customers who stand up a full second environment find it makes sense to use it active-active. If you do not want both regions serving users, warm standby is the more economical and simpler option.&lt;/p&gt;

&lt;h2&gt;
  
  
  How much does multi-region high availability cost compared with a single region?
&lt;/h2&gt;

&lt;p&gt;On AWS list prices, our reference application costs $621.11 per month in one region. A second region raises that to between $642.11 (backup and restore) and $1,152.29 (active-active). The rest of this section shows every line.&lt;/p&gt;

&lt;h3&gt;
  
  
  The reference application
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Compute:&lt;/strong&gt; a web API on 6 vCPU and 24 GiB, run as three &lt;code&gt;m7i.large&lt;/code&gt; instances (2 vCPU and 8 GiB each) on Linux.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; managed PostgreSQL on &lt;code&gt;db.m7g.large&lt;/code&gt;, Multi-AZ, with 200 GB of gp3 storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Load balancer:&lt;/strong&gt; one Application Load Balancer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Traffic:&lt;/strong&gt; 1 TB (1,024 GB) of data transfer out to the internet per month.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regions:&lt;/strong&gt; us-east-1 (N. Virginia) as region 1, us-east-2 (Ohio) as region 2.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prices used (on-demand list prices, checked October 29, 2026)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Line item&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;m7i.large&lt;/code&gt;, Linux, us-east-1 and us-east-2&lt;/td&gt;
&lt;td&gt;$0.1008 per hour&lt;/td&gt;
&lt;td&gt;&lt;a href="https://aws.amazon.com/ec2/pricing/on-demand/" rel="noopener noreferrer"&gt;EC2 on-demand pricing&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RDS PostgreSQL &lt;code&gt;db.m7g.large&lt;/code&gt;, Single-AZ&lt;/td&gt;
&lt;td&gt;$0.168 per hour&lt;/td&gt;
&lt;td&gt;&lt;a href="https://aws.amazon.com/rds/postgresql/pricing/" rel="noopener noreferrer"&gt;RDS for PostgreSQL pricing&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RDS PostgreSQL &lt;code&gt;db.m7g.large&lt;/code&gt;, Multi-AZ&lt;/td&gt;
&lt;td&gt;$0.337 per hour&lt;/td&gt;
&lt;td&gt;&lt;a href="https://aws.amazon.com/rds/postgresql/pricing/" rel="noopener noreferrer"&gt;RDS for PostgreSQL pricing&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RDS gp3 storage, Single-AZ&lt;/td&gt;
&lt;td&gt;$0.115 per GB-month&lt;/td&gt;
&lt;td&gt;&lt;a href="https://aws.amazon.com/rds/postgresql/pricing/" rel="noopener noreferrer"&gt;RDS for PostgreSQL pricing&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RDS gp3 storage, Multi-AZ&lt;/td&gt;
&lt;td&gt;$0.23 per GB-month&lt;/td&gt;
&lt;td&gt;&lt;a href="https://aws.amazon.com/rds/postgresql/pricing/" rel="noopener noreferrer"&gt;RDS for PostgreSQL pricing&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RDS backup storage beyond the free allocation&lt;/td&gt;
&lt;td&gt;$0.095 per GB-month&lt;/td&gt;
&lt;td&gt;&lt;a href="https://aws.amazon.com/rds/postgresql/pricing/" rel="noopener noreferrer"&gt;RDS for PostgreSQL pricing&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Application Load Balancer&lt;/td&gt;
&lt;td&gt;$0.0225 per hour plus $0.008 per LCU-hour&lt;/td&gt;
&lt;td&gt;&lt;a href="https://aws.amazon.com/elasticloadbalancing/pricing/" rel="noopener noreferrer"&gt;Elastic Load Balancing pricing&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data transfer out to the internet&lt;/td&gt;
&lt;td&gt;$0.09 per GB for the first 10 TB, after a 100 GB monthly free tier&lt;/td&gt;
&lt;td&gt;&lt;a href="https://aws.amazon.com/ec2/pricing/on-demand/" rel="noopener noreferrer"&gt;EC2 on-demand pricing, data transfer&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data transfer, us-east-1 to us-east-2&lt;/td&gt;
&lt;td&gt;$0.01 per GB&lt;/td&gt;
&lt;td&gt;&lt;a href="https://aws.amazon.com/ec2/pricing/on-demand/" rel="noopener noreferrer"&gt;EC2 on-demand pricing, data transfer&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Our assumptions, not AWS prices: 730 hours per month, 1.5 average LCUs, 200 GB of database changes replicated per month, and backup snapshots equal to the provisioned database size (an upper bound, since snapshots are incremental).&lt;/p&gt;

&lt;h3&gt;
  
  
  Single-region cost
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Line&lt;/th&gt;
&lt;th&gt;Arithmetic&lt;/th&gt;
&lt;th&gt;Monthly&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Compute&lt;/td&gt;
&lt;td&gt;3 x $0.1008 x 730&lt;/td&gt;
&lt;td&gt;$220.75&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Load balancer, hourly&lt;/td&gt;
&lt;td&gt;$0.0225 x 730&lt;/td&gt;
&lt;td&gt;$16.43&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Load balancer, LCU&lt;/td&gt;
&lt;td&gt;1.5 x $0.008 x 730&lt;/td&gt;
&lt;td&gt;$8.76&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database instance, Multi-AZ&lt;/td&gt;
&lt;td&gt;$0.337 x 730&lt;/td&gt;
&lt;td&gt;$246.01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database storage, Multi-AZ&lt;/td&gt;
&lt;td&gt;200 x $0.23&lt;/td&gt;
&lt;td&gt;$46.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Internet egress&lt;/td&gt;
&lt;td&gt;(1,024 – 100) x $0.09&lt;/td&gt;
&lt;td&gt;$83.16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$621.11&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Cost of each pattern with a second region
&lt;/h3&gt;

&lt;p&gt;Cross-region transfer and database replication appear as their own line items. The $2.00 transfer line is 200 GB x $0.01.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pattern&lt;/th&gt;
&lt;th&gt;What runs in region 2&lt;/th&gt;
&lt;th&gt;Region 2 arithmetic&lt;/th&gt;
&lt;th&gt;Monthly total&lt;/th&gt;
&lt;th&gt;Multiple&lt;/th&gt;
&lt;th&gt;RTO&lt;/th&gt;
&lt;th&gt;RPO&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Backup and restore&lt;/td&gt;
&lt;td&gt;Stored snapshots only&lt;/td&gt;
&lt;td&gt;200 x $0.095 = $19.00, plus $2.00 transfer = $21.00&lt;/td&gt;
&lt;td&gt;$642.11&lt;/td&gt;
&lt;td&gt;1.03x&lt;/td&gt;
&lt;td&gt;Hours to a day&lt;/td&gt;
&lt;td&gt;Hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pilot light&lt;/td&gt;
&lt;td&gt;Single-AZ database replica&lt;/td&gt;
&lt;td&gt;$122.64 instance + $23.00 storage + $2.00 transfer = $147.64&lt;/td&gt;
&lt;td&gt;$768.75&lt;/td&gt;
&lt;td&gt;1.24x&lt;/td&gt;
&lt;td&gt;Tens of minutes to hours&lt;/td&gt;
&lt;td&gt;Seconds to minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Warm standby&lt;/td&gt;
&lt;td&gt;1 instance, load balancer, Single-AZ replica&lt;/td&gt;
&lt;td&gt;$73.58 + $16.43 + $122.64 + $23.00 + $2.00 = $237.65&lt;/td&gt;
&lt;td&gt;$858.76&lt;/td&gt;
&lt;td&gt;1.38x&lt;/td&gt;
&lt;td&gt;Minutes to tens of minutes&lt;/td&gt;
&lt;td&gt;Seconds to minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hot standby&lt;/td&gt;
&lt;td&gt;3 instances, load balancer, Single-AZ replica&lt;/td&gt;
&lt;td&gt;$220.75 + $16.43 + $122.64 + $23.00 + $2.00 = $384.82&lt;/td&gt;
&lt;td&gt;$1,005.92&lt;/td&gt;
&lt;td&gt;1.62x&lt;/td&gt;
&lt;td&gt;Minutes&lt;/td&gt;
&lt;td&gt;Seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Active-active&lt;/td&gt;
&lt;td&gt;3 instances, load balancer, Multi-AZ database copy&lt;/td&gt;
&lt;td&gt;$220.75 + $16.43 + $246.01 + $46.00 + $2.00 = $531.19&lt;/td&gt;
&lt;td&gt;$1,152.29&lt;/td&gt;
&lt;td&gt;1.86x&lt;/td&gt;
&lt;td&gt;Seconds to minutes&lt;/td&gt;
&lt;td&gt;Near zero to seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Totals are $621.11 plus the region 2 amount. Single-AZ replica instance: $0.168 x 730 = $122.64. Replica storage: 200 x $0.115 = $23.00.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to read the model
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The multiple is 1.86x, not 2x, because egress does not double.&lt;/strong&gt; Users still download 1 TB in total. Excluding egress, active-active is $1,069.13 against $537.95, or 1.99x. Hot standby is 1.72x on the same basis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hot standby is cheaper than active-active here for one reason.&lt;/strong&gt; Its replica is Single-AZ, a risk you accept while it idles. An active-active region serves production and needs a Multi-AZ database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Active-active needs a data design the table does not price.&lt;/strong&gt; RDS PostgreSQL has one writer. Reads can be served in both regions while writes go to region 1. A true multi-writer database is a different product with different pricing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Items excluded:&lt;/strong&gt; Route 53 or Global Accelerator, health checks, NAT gateways, CloudWatch, EBS volumes, reserved IOPS, cross-region write forwarding, and engineering time. We list no price for these because none is shown on the pages linked above.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These figures are estimates from public list prices on the date checked. They exclude discounts, savings plans, and reserved pricing, and will vary with your instance sizes, traffic, and region pair.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is multi-region active-active worth the cost for a growing SaaS company?
&lt;/h2&gt;

&lt;p&gt;It is worth it when the downtime hours the pattern removes cost more than the pattern adds each year. Use this formula:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Break-even avoided downtime (hours per year) = (added monthly cost x 12) / cost of one hour of downtime&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://controlplane.com/blog/post/cloud-outage-tracker?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=active-active-vs-active-passive-cost" rel="noopener noreferrer"&gt;Cloud Outage Tracker&lt;/a&gt; gives a method for the hourly cost: cost per minute = (R x A x L) + (S + E) + C, covering revenue, staff, idle employees, and SLA credits. Its hypothetical example is a SaaS company with $50M in annual revenue and a cost of $281.22 per minute, which is $16,873 per hour ($281.22 x 60). Churn and brand damage are excluded.&lt;/p&gt;

&lt;p&gt;For the worked example, assume a hypothetical single-region infrastructure bill of $60,000 per month. Each pattern adds the multiple from section 3 minus 1:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pattern&lt;/th&gt;
&lt;th&gt;Added cost&lt;/th&gt;
&lt;th&gt;Added per month&lt;/th&gt;
&lt;th&gt;Added per year&lt;/th&gt;
&lt;th&gt;Break-even avoided downtime&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Backup and restore&lt;/td&gt;
&lt;td&gt;3.4%&lt;/td&gt;
&lt;td&gt;$2,029&lt;/td&gt;
&lt;td&gt;$24,344&lt;/td&gt;
&lt;td&gt;1.4 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pilot light&lt;/td&gt;
&lt;td&gt;23.8%&lt;/td&gt;
&lt;td&gt;$14,263&lt;/td&gt;
&lt;td&gt;$171,150&lt;/td&gt;
&lt;td&gt;10.1 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Warm standby&lt;/td&gt;
&lt;td&gt;38.3%&lt;/td&gt;
&lt;td&gt;$22,958&lt;/td&gt;
&lt;td&gt;$275,491&lt;/td&gt;
&lt;td&gt;16.3 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hot standby&lt;/td&gt;
&lt;td&gt;62.0%&lt;/td&gt;
&lt;td&gt;$37,173&lt;/td&gt;
&lt;td&gt;$446,076&lt;/td&gt;
&lt;td&gt;26.4 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Active-active&lt;/td&gt;
&lt;td&gt;85.5%&lt;/td&gt;
&lt;td&gt;$51,314&lt;/td&gt;
&lt;td&gt;$615,771&lt;/td&gt;
&lt;td&gt;36.5 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Now compare those hours with real outages. The tracker covers 62 major AWS, Azure, Google Cloud, and Cloudflare outages since 2020. The median lasted 6h 08m. Recent examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS us-east-1, October 19-20, 2025: 14h 32m.&lt;/li&gt;
&lt;li&gt;AWS us-east-1, October 28, 2025: 13h 43m.&lt;/li&gt;
&lt;li&gt;Azure West US 2, May 29-30, 2026: 22h 06m.&lt;/li&gt;
&lt;li&gt;AWS us-east-1, one availability zone, May 7-8, 2026: 21h 30m to majority recovery.&lt;/li&gt;
&lt;li&gt;Google Cloud europe-west2 (London), October 19-20, 2026: 6h 08m.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The tracker also lists 9 of AWS’s 14 major outages in us-east-1, the region this model uses as region 1.&lt;/p&gt;

&lt;p&gt;At $16,873 per hour, active-active pays back only if it avoids about 36.5 hours of downtime a year. That is roughly six median-length outages. For this hypothetical company, warm standby or pilot light is the better purchase. A company that loses $100,000 per hour reaches active-active break-even at about 6.2 hours, a single median outage. Count only outages that hit your region and that the pattern would prevent. The tracker’s cause data matters here: 32% of major outages came from configuration or deployment changes. A bad release can reach both regions if they share one pipeline, so multi-region does not cover that risk without staged rollouts.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s the cheapest way to run active-active across two cloud regions?
&lt;/h2&gt;

&lt;p&gt;Traditional active-active doubles compute and database cost because each region needs capacity for peak load. If one region fails, the other must carry 100% of traffic. Two regions therefore need 200% of peak capacity. The levers that reduce the bill:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Right-size each region.&lt;/strong&gt; Use measured CPU and memory, not launch-day guesses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autoscale each region to its share of traffic.&lt;/strong&gt; Reserve only the headroom you need during the minutes autoscaling takes to catch up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add regions to cut headroom.&lt;/strong&gt; With n regions, each sized peak / (n – 1), total capacity is n / (n – 1) times peak: 200% for two regions, 150% for three, 133% for four. Rounding to instance sizes and extra operations limit the saving.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose the database pattern first.&lt;/strong&gt; Single-writer with regional read replicas is cheapest. Multi-writer databases cost more and bring conflict handling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remove idle standby.&lt;/strong&gt; Hot standby pays full price for capacity that never serves a request. For the architecture side, see &lt;a href="https://controlplane.com/blog/post/how-to-build-active-active-high-availability-across-regions-and-clouds?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=active-active-vs-active-passive-cost" rel="noopener noreferrer"&gt;how to build active-active high availability across regions and clouds&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How do I stop paying for idle disaster recovery infrastructure?
&lt;/h3&gt;

&lt;p&gt;Move from standby to serving. If region 2 runs production traffic, its capacity is not idle. Then autoscale both regions so you hold only the headroom failover needs. For the data tier, replicate continuously and keep the replica small until promotion.&lt;/p&gt;

&lt;h3&gt;
  
  
  How Control Plane approaches active-active
&lt;/h3&gt;

&lt;p&gt;Control Plane is the platform for running unbreakable apps and agents. It combines any cloud, neocloud, and bare metal into what Control Plane calls a Global Virtual Cloud (GVC). Day-two operations are built in: failover, autoscaling, health checks, and observability.&lt;/p&gt;

&lt;p&gt;A workload deployed to a GVC runs active-active in every location of that GVC. A global endpoint routes each request to the nearest healthy location, so you get failover without paying for idle standby capacity. On Control Plane-provided compute, there is no Kubernetes cluster you have to operate.&lt;/p&gt;

&lt;p&gt;On Control Plane-provided compute, you pay for the CPU and memory you reserve, by the millicore and the megabyte, with no contracts or minimums. Other resources such as egress, storage, load balancers, and GPUs are also billed. Control Plane’s Capacity AI right-sizes CPU and memory reservations based on historical usage, within a minimum and maximum you set. Active-active on Control Plane still costs more than one location, because every location runs replicas. The saving comes from reserving only what each location needs. Customers typically cut compute costs 30 to 50 percent compared with running directly on AWS, GCP, or Azure.&lt;/p&gt;

&lt;p&gt;Stateless services fail over automatically through the global endpoint. For stateful services, your RPO depends on how data replicates between locations, so the data design in section 3 still applies. Control Plane runs stateful workloads with persistent volumes and scheduled snapshots, alongside the multi-location deployment, health-aware routing, and workload identity.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I run active-active across AWS and Azure without paying for idle standby capacity?
&lt;/h2&gt;

&lt;p&gt;Multi-cloud usually adds work: two infrastructure toolchains, two identity systems, two network designs with private connectivity between them, and DNS or global load balancing that sits outside both clouds. Cross-cloud data transfer is billed by each provider and is not modeled here.&lt;/p&gt;

&lt;p&gt;A Global Virtual Cloud (GVC) on Control Plane can include locations on different providers. One workload definition runs across them, with optional per-location overrides, and the global endpoint routes to the nearest healthy location. Control Plane’s Universal Cloud Identity gives workloads short-lived, least-privilege access to 600+ AWS, GCP, and Azure services, with no long-lived cloud keys in your code. The CLI, console, Terraform and Pulumi providers, and the Control Plane MCP server all work through the same Control Plane API. Control Plane complements Terraform and Pulumi. It does not replace them.&lt;/p&gt;

&lt;p&gt;The 99.999% availability SLA applies to workloads running at least two replicas in at least two locations. Those locations can be two regions of one cloud or locations on different providers. For a walkthrough, see &lt;a href="https://controlplane.com/blog/post/run-same-app-aws-gcp-azure?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=active-active-vs-active-passive-cost" rel="noopener noreferrer"&gt;how to run the same app on AWS, GCP, and Azure&lt;/a&gt;. To compare tooling, see &lt;a href="https://controlplane.com/blog/post/best-multi-cloud-failover-solutions-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=active-active-vs-active-passive-cost" rel="noopener noreferrer"&gt;best multi-cloud failover solutions in 2026&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I design multi-region failover to meet a target RTO and RPO?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Set RTO and RPO per service.&lt;/strong&gt; Checkout and auth may need minutes. Reporting may tolerate hours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick the pattern from the table.&lt;/strong&gt; Match the slowest acceptable RTO to the cheapest pattern that meets it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose the replication approach.&lt;/strong&gt; Synchronous replication gives an RPO of zero but adds write latency and couples regions. Asynchronous replication keeps writes fast, and your RPO equals replication lag at failure. Measure lag under peak load.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan traffic steering.&lt;/strong&gt; Use DNS failover or a global load balancer. Set DNS TTLs to match your RTO, and remember resolvers may cache longer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Define health checks.&lt;/strong&gt; Test the dependency path (app, database, downstream API), not only the port. Require several failures before failing over to avoid flapping.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automate promotion.&lt;/strong&gt; Script database promotion, cache warm-up, and config switches. A manual runbook adds minutes to RTO.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Protect against bad data.&lt;/strong&gt; Replication copies corruption. Keep point-in-time backups in a separate account or region.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document failback.&lt;/strong&gt; Decide when and how to return, and re-seed the original region’s data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Record the result.&lt;/strong&gt; Compare measured RTO and RPO with targets after every drill.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For setting the targets themselves, see &lt;a href="https://controlplane.com/blog/post/cloud-disaster-recovery-rto-rpo-targets-best-practices?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=active-active-vs-active-passive-cost" rel="noopener noreferrer"&gt;cloud disaster recovery RTO and RPO targets&lt;/a&gt;. For deeper coverage, read &lt;a href="https://controlplane.com/blog/post/best-cloud-disaster-recovery-solutions-for-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=active-active-vs-active-passive-cost" rel="noopener noreferrer"&gt;best cloud disaster recovery solutions for 2026&lt;/a&gt; and &lt;a href="https://controlplane.com/blog/post/keep-app-online-aws-region-outage?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=active-active-vs-active-passive-cost" rel="noopener noreferrer"&gt;how to keep your app online during an AWS region outage&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I test failover without taking production down?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Game days.&lt;/strong&gt; Schedule a team exercise with a written scenario, a named incident lead, and a rollback plan. Start with a low-traffic window.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Region evacuation drills.&lt;/strong&gt; On a fixed schedule (quarterly is common), drain traffic from one region and confirm the other carries the load. Active-active makes this routine, since both regions serve traffic already.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Synthetic traffic.&lt;/strong&gt; Run probes from several locations against the failover path. Alert on error rate and latency during the drill.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chaos testing in staging.&lt;/strong&gt; Kill instances, block a dependency, add network latency, and fail a database node. Fix what breaks before repeating with a small slice of production.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measure actual RTO and RPO.&lt;/strong&gt; Time detection, decision, traffic shift, and recovery separately. Record replication lag at the moment of failure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test restores.&lt;/strong&gt; For backup-based patterns, restore into an isolated environment and verify data integrity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep the blast radius small, announce drills, and stop on a defined error threshold. See &lt;a href="https://controlplane.com/blog/post/prevent-website-downtime?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=active-active-vs-active-passive-cost" rel="noopener noreferrer"&gt;how to prevent website downtime&lt;/a&gt; for related practices.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the most cost effective high availability infrastructure options for a 30 person startup?
&lt;/h2&gt;

&lt;p&gt;Multi-AZ in one region plus good backups is often enough at first. Run the application across two or three availability zones, use a Multi-AZ managed database, define infrastructure as code, keep automated backups, and test a restore. In our model that stays at the single-region cost of $621.11, with no second region.&lt;/p&gt;

&lt;p&gt;Step up to multi-region when one of these is true:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A customer contract or SLA needs availability above what a single region delivers.&lt;/li&gt;
&lt;li&gt;Your RTO is shorter than a rebuild from backups.&lt;/li&gt;
&lt;li&gt;The break-even in section 4 is below the outage hours you expect.&lt;/li&gt;
&lt;li&gt;Enterprise buyers ask for tested disaster recovery evidence.&lt;/li&gt;
&lt;li&gt;A regulation or data residency rule requires a second location.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The cheapest step is pilot light, which added 24% in our model. On Control Plane, locations can be two regions of one cloud, so a startup can run active-active without adopting a second provider. Many teams run Control Plane in a single cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I achieve 99.99% uptime for a SaaS application?
&lt;/h2&gt;

&lt;p&gt;Availability targets translate into a downtime budget. The math: a year has 525,600 minutes (365 x 24 x 60) and a month has 43,800 minutes (730 x 60). Allowed downtime = (1 – availability) x minutes.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Target&lt;/th&gt;
&lt;th&gt;Per year&lt;/th&gt;
&lt;th&gt;Per month&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;99.9%&lt;/td&gt;
&lt;td&gt;0.001 x 525,600 = 525.6 min (8.76 hours)&lt;/td&gt;
&lt;td&gt;0.001 x 43,800 = 43.8 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;99.99%&lt;/td&gt;
&lt;td&gt;0.0001 x 525,600 = 52.56 min&lt;/td&gt;
&lt;td&gt;0.0001 x 43,800 = 4.38 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;99.999%&lt;/td&gt;
&lt;td&gt;0.00001 x 525,600 = 5.26 min (5 min 15 s)&lt;/td&gt;
&lt;td&gt;0.00001 x 43,800 = 0.44 min (26 s)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A single region rarely meets 99.99% once provider outages count. The tracker’s median major outage lasted 6h 08m, or 368 minutes. That is about seven years of 99.99% budget (368 / 52.56 = 7.0). Not every outage hits your region, but your own deployments also spend the budget, and the tracker attributes 55% of major outages to changes and code.&lt;/p&gt;

&lt;p&gt;To reach 99.99%: run at least two regions with automated, health-checked failover, deploy in stages, keep per-service error budgets, and drill failover. Two independent regions at 99.9% each give 1 – (0.001 x 0.001) = 99.9999% in theory. Real results are lower because regions share release pipelines, DNS, and data layers. The &lt;a href="https://controlplane.com/blog/post/five-nines-uptime-architecture-what-single-region-multi-region-and-multi-cloud-designs-can-deliver?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=active-active-vs-active-passive-cost" rel="noopener noreferrer"&gt;five nines architecture guide&lt;/a&gt; compares single-region, multi-region, and multi-cloud designs. On Control Plane, the 99.999% availability SLA applies to workloads running at least two replicas in at least two locations.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the best cloud architecture model that delivers the highest level of resilience and availability?
&lt;/h3&gt;

&lt;p&gt;Active-active across multiple locations, ideally across failure domains that do not share a management layer, with health-aware routing, staged rollouts, and tested failover. It carries the highest cost and complexity. Add locations and providers only as far as your cost of downtime justifies.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is multi-region active-active worth the cost for a growing SaaS company?
&lt;/h3&gt;

&lt;p&gt;It is when avoided downtime exceeds the added yearly cost. In our model active-active adds 86% to the bill. Use the break-even formula in section 4 with your own hourly downtime cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  What’s the cheapest way to run active-active across two cloud regions?
&lt;/h3&gt;

&lt;p&gt;Right-size each region, autoscale to its traffic share, use a single-writer database with read replicas, and avoid idle standby. A platform that runs the workload in every location removes the separate standby stack.&lt;/p&gt;

&lt;h3&gt;
  
  
  How much does multi-region high availability cost compared with a single region?
&lt;/h3&gt;

&lt;p&gt;On AWS list prices checked October 29, 2026, a second region costs 1.03x to 1.86x the single-region bill for our reference application, depending on the pattern.&lt;/p&gt;

&lt;h3&gt;
  
  
  Active-active vs active-passive disaster recovery: which is better for a SaaS company?
&lt;/h3&gt;

&lt;p&gt;Active-active recovers faster and uses both regions. Active-passive costs less and suits teams that accept an RTO of minutes to tens of minutes.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I stop paying for idle disaster recovery infrastructure?
&lt;/h3&gt;

&lt;p&gt;Serve traffic from region 2, autoscale both regions, and keep the data replica small until promotion. Control Plane bills reserved CPU and memory by the millicore and megabyte, with no contracts or minimums.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I run active-active across AWS and Azure without paying for idle standby capacity?
&lt;/h3&gt;

&lt;p&gt;Deploy one workload to a GVC that includes locations on both providers. The global endpoint routes to the nearest healthy location. Cross-cloud data transfer is billed separately by each provider.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the most cost effective high availability infrastructure options for a 30 person startup?
&lt;/h3&gt;

&lt;p&gt;Multi-AZ in one region with tested backups. Move to pilot light or warm standby when contracts or RTO targets require it.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I design multi-region failover to meet a target RTO and RPO?
&lt;/h3&gt;

&lt;p&gt;Set targets per service, pick the pattern, choose synchronous or asynchronous replication, plan traffic steering and health checks, automate promotion, and document failback.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I test failover without taking production down?
&lt;/h3&gt;

&lt;p&gt;Run game days, scheduled region evacuation drills, synthetic traffic, and chaos tests in staging. Measure actual RTO and RPO each time.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I achieve 99.99% uptime for a SaaS application?
&lt;/h3&gt;

&lt;p&gt;Budget 52.56 minutes of downtime per year. Use at least two regions with automated failover, staged deployments, and regular drills.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://controlplane.com/requestdemo?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=active-active-vs-active-passive-cost" rel="noopener noreferrer"&gt;Talk to the Control Plane team&lt;/a&gt; | &lt;a href="https://console.cpln.io/signup" rel="noopener noreferrer"&gt;Sign up free&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://controlplane.com/blog/post/active-active-vs-active-passive-cost?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=active-active-vs-active-passive-cost" rel="noopener noreferrer"&gt;Control Plane blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>sre</category>
      <category>aws</category>
      <category>cloud</category>
    </item>
    <item>
      <title>The Best PaaS Providers in 2026: Heroku, Render, and Railway Alternatives for Production Apps</title>
      <dc:creator>Noah Grinstein</dc:creator>
      <pubDate>Fri, 30 Oct 2026 20:47:44 +0000</pubDate>
      <link>https://dev.to/noahcontrolplane/the-best-paas-providers-in-2026-heroku-render-and-railway-alternatives-for-production-apps-8ga</link>
      <guid>https://dev.to/noahcontrolplane/the-best-paas-providers-in-2026-heroku-render-and-railway-alternatives-for-production-apps-8ga</guid>
      <description>&lt;p&gt;The best PaaS depends on whether you are shipping a prototype, a frontend, or a production backend that cannot go down. For production apps that need multi-region failover and the option to run in your own cloud accounts or on your own servers, the PaaS to look at is &lt;a href="https://controlplane.com?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Control Plane&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Disclosure: Control Plane publishes this guide and is one of the options listed.&lt;/p&gt;

&lt;p&gt;This guide is for CTOs, VPs of engineering, founders, and lead developers choosing where to deploy and run production apps. It also covers teams outgrowing Heroku, Render, or Railway who need more reliability, more control, or their own cloud accounts. Statements about other vendors come from their own official pages, linked inline.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR: Best platform-as-a-service providers in 2026
&lt;/h2&gt;

&lt;p&gt;A prototype needs fast setup. A frontend needs a CDN and functions. A production backend needs failover and a way to leave. Control Plane is built for the third.&lt;/p&gt;

&lt;p&gt;Ranked list, one line each:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Control Plane:&lt;/strong&gt; production apps that need active-active multi-region failover and the option to run in your own cloud accounts or on your own servers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Render:&lt;/strong&gt; web services, workers, and datastores deployed from Git or a Docker image, with a private network between services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Heroku:&lt;/strong&gt; a dyno-based platform, with Private Spaces for isolated environments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Railway:&lt;/strong&gt; projects of connected services with volumes and private networking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fly.io:&lt;/strong&gt; apps that run close to users on Fly.io’s own servers and Anycast network.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DigitalOcean App Platform:&lt;/strong&gt; managed deploys from Git or container images on DigitalOcean.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Cloud Run:&lt;/strong&gt; containers on Google Cloud, with documented multi-region serving.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS App Runner:&lt;/strong&gt; existing AWS customers only, because it is closed to new customers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Azure App Service:&lt;/strong&gt; web apps and APIs on Azure, including custom containers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vercel:&lt;/strong&gt; frontend-oriented deploys with a CDN and configurable function regions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coolify:&lt;/strong&gt; an open source, self-hosted PaaS workflow on servers you control.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How do you choose a PaaS?
&lt;/h2&gt;

&lt;p&gt;Use this checklist before you compare feature pages.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Production reliability.&lt;/strong&gt; Ask whether one app can run in several regions at once, how traffic fails over, and what the SLA covers. Read the conditions attached to any SLA number.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Where it runs.&lt;/strong&gt; Decide whether the vendor’s cloud is enough, or whether you need your own cloud accounts, clusters, or servers for cost, compliance, or data residency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workload types.&lt;/strong&gt; List what you run: web services, background workers, cron jobs, stateful services, and databases. Check each against the platform’s docs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scaling and cost model.&lt;/strong&gt; Find out what you are billed for, how autoscaling reacts, and which resources bill separately, such as egress, storage, and load balancers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security and compliance.&lt;/strong&gt; Check secrets handling, short-lived credentials, network isolation, and the audit reports your customers ask for.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How you leave.&lt;/strong&gt; Confirm that workloads are standard containers and that configuration is code you can export.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What are the types of PaaS?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;th&gt;Where it runs&lt;/th&gt;
&lt;th&gt;What you manage&lt;/th&gt;
&lt;th&gt;Typical trade-offs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Classic app platforms&lt;/td&gt;
&lt;td&gt;Heroku, Render, Railway, Fly.io&lt;/td&gt;
&lt;td&gt;Deploying web apps and services from Git or images&lt;/td&gt;
&lt;td&gt;The vendor’s infrastructure&lt;/td&gt;
&lt;td&gt;App code and configuration&lt;/td&gt;
&lt;td&gt;Region and stateful limits vary by vendor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Frontend and serverless platforms&lt;/td&gt;
&lt;td&gt;Vercel, Netlify&lt;/td&gt;
&lt;td&gt;Frontends, static content, and functions&lt;/td&gt;
&lt;td&gt;The vendor’s platform and CDN&lt;/td&gt;
&lt;td&gt;Frontend code and function settings&lt;/td&gt;
&lt;td&gt;Review fit for stateful backends&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hyperscaler app platforms&lt;/td&gt;
&lt;td&gt;AWS App Runner or Elastic Beanstalk, Google Cloud Run, Azure App Service&lt;/td&gt;
&lt;td&gt;Teams already committed to one hyperscaler&lt;/td&gt;
&lt;td&gt;That hyperscaler’s cloud&lt;/td&gt;
&lt;td&gt;App code plus that cloud’s account, IAM, and networking&lt;/td&gt;
&lt;td&gt;Tied to one provider, and App Runner is closed to new customers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Developer-cloud app platforms&lt;/td&gt;
&lt;td&gt;DigitalOcean App Platform&lt;/td&gt;
&lt;td&gt;Managed deploys alongside other DigitalOcean services&lt;/td&gt;
&lt;td&gt;DigitalOcean&lt;/td&gt;
&lt;td&gt;App code and component settings&lt;/td&gt;
&lt;td&gt;Region and database constraints on its limits page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Self-hosted PaaS&lt;/td&gt;
&lt;td&gt;Coolify, Dokku&lt;/td&gt;
&lt;td&gt;Teams that want a PaaS workflow on their own servers&lt;/td&gt;
&lt;td&gt;Servers you provide&lt;/td&gt;
&lt;td&gt;The PaaS itself, servers, backups, and upgrades&lt;/td&gt;
&lt;td&gt;You carry the operations work&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Production platforms across clouds and your own servers&lt;/td&gt;
&lt;td&gt;Control Plane&lt;/td&gt;
&lt;td&gt;Production apps that need multi-region failover and your own cloud accounts or servers&lt;/td&gt;
&lt;td&gt;AWS, GCP, Azure, your clusters, and your own machines&lt;/td&gt;
&lt;td&gt;App and workload configuration&lt;/td&gt;
&lt;td&gt;Built for production apps rather than prototypes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What are the best PaaS providers? The ranking
&lt;/h2&gt;

&lt;p&gt;Each entry covers what it is, best for, and limitations. For every vendor other than Control Plane, the description comes from that vendor’s own pages, linked inline.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Control Plane
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is.&lt;/strong&gt; Control Plane is the platform for running unbreakable apps and agents. It combines any cloud, neocloud, and bare metal into what Control Plane calls a Global Virtual Cloud (GVC). It runs serverless, standard, stateful, cron, and VM workloads on AWS, GCP, and Azure, on clusters you already run through Control Plane’s Bring Your Own Kubernetes (BYOK), on your own machines (bare metal or VMs) turned into managed locations with Control Plane’s Managed Kubernetes (MK8s), and on premises. On Control Plane-provided compute, there is no Kubernetes cluster you have to operate. It is not only for multi-cloud: many teams run it in one cloud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day-two operations first.&lt;/strong&gt; Failover, autoscaling, observability, secrets, and policy are built in, so a small team gets platform-team outcomes. You deploy a container image or build from source, then get autoscaling, secrets, logs and metrics, and custom domains with automatic TLS. A workload deployed to a GVC runs active-active in every location of that GVC, and a global endpoint routes each request to the nearest healthy location. You get failover without paying for idle standby capacity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reliability and security.&lt;/strong&gt; The 99.999% availability SLA applies to workloads running at least two replicas in at least two locations. Those locations can be two regions of one cloud or locations on different providers. Control Plane’s Universal Cloud Identity gives workloads short-lived, least-privilege access to 600+ AWS, GCP, and Azure services, with no long-lived cloud keys in your code. Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Production apps that cannot go down, and small teams that need their own cloud accounts or servers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When it fits.&lt;/strong&gt; Control Plane is built for apps that have to stay up. Start with one location and add more, on the same cloud or a different one, without changing how you deploy.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Render
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is.&lt;/strong&gt; &lt;a href="https://render.com/docs/web-services" rel="noopener noreferrer"&gt;Render’s web services docs&lt;/a&gt; say Render builds and deploys your code with every push to a linked Git branch, and that you can also deploy a prebuilt Docker image. Services in the same region can talk over a &lt;a href="https://render.com/docs/private-network" rel="noopener noreferrer"&gt;private network&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Teams that want Git-based deploys of web services, workers, and datastores in one dashboard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations.&lt;/strong&gt; Per &lt;a href="https://render.com/docs/regions" rel="noopener noreferrer"&gt;Render’s regions page&lt;/a&gt;, you pick a region for each service or datastore, and Render does not currently support changing the region of an existing service or database. Per &lt;a href="https://render.com/docs/disks" rel="noopener noreferrer"&gt;Render’s persistent disk docs&lt;/a&gt;, a disk is accessible by a single service instance, and you cannot scale a service to multiple instances if it has a disk attached. Compare in detail on the &lt;a href="https://controlplane.com/compare/control-plane-vs-render?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Control Plane vs Render page&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Heroku
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is.&lt;/strong&gt; &lt;a href="https://devcenter.heroku.com/articles/dynos" rel="noopener noreferrer"&gt;Heroku’s dyno docs&lt;/a&gt; describe dynos as Heroku-managed Linux containers, with web, worker, and one-off types. Heroku says its dyno managers keep dynos running automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Teams that want a mature dyno-and-add-on model for web apps and background jobs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations.&lt;/strong&gt; &lt;a href="https://devcenter.heroku.com/articles/private-spaces" rel="noopener noreferrer"&gt;Heroku’s Private Spaces docs&lt;/a&gt; say Private Spaces are available only for verified Heroku Teams and Heroku Enterprise. &lt;a href="https://devcenter.heroku.com/articles/regions" rel="noopener noreferrer"&gt;Heroku’s regions page&lt;/a&gt; says each Private Space exists in a single region, and that choosing a region does not guarantee data residency restrictions for all Heroku products and add-ons. Compare in detail on the &lt;a href="https://controlplane.com/compare/control-plane-vs-heroku?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Control Plane vs Heroku page&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Railway
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is.&lt;/strong&gt; &lt;a href="https://docs.railway.com/overview/the-basics" rel="noopener noreferrer"&gt;Railway’s docs&lt;/a&gt; describe projects as collections of services under the same network, with variables, metrics, and volumes. Its &lt;a href="https://docs.railway.com/networking/private-networking" rel="noopener noreferrer"&gt;private networking docs&lt;/a&gt; say services communicate over encrypted Wireguard tunnels using internal DNS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Developers who want projects of connected services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations.&lt;/strong&gt; &lt;a href="https://docs.railway.com/deployments/scaling" rel="noopener noreferrer"&gt;Railway’s scaling docs&lt;/a&gt; describe multi-region replicas, with public traffic routed to the nearest region. Per &lt;a href="https://docs.railway.com/volumes/reference" rel="noopener noreferrer"&gt;Railway’s volumes docs&lt;/a&gt;, each service can have one volume, and replicas cannot be used with volumes. &lt;a href="https://docs.railway.com/deployments/regions" rel="noopener noreferrer"&gt;Railway’s regions page&lt;/a&gt; says changing the region of a service with a volume means migrating the volume, which can cause downtime. Railway disclosed a security incident in October 2026, covered in &lt;a href="https://blog.railway.com/p/preliminary-report-october-security-incident" rel="noopener noreferrer"&gt;Railway’s preliminary report&lt;/a&gt; and in &lt;a href="https://controlplane.com/blog/post/railway-security-incident-rotate-migrate?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Control Plane’s guide to rotating secrets and migrating&lt;/a&gt;. Compare in detail on the &lt;a href="https://controlplane.com/compare/control-plane-vs-railway?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Control Plane vs Railway page&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Fly.io
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is.&lt;/strong&gt; &lt;a href="https://docs.fly.io/reference/regions" rel="noopener noreferrer"&gt;Fly.io’s regions docs&lt;/a&gt; say it runs applications in datacenters around the world, on servers it runs itself, and routes users to the nearest server through its global Anycast network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Teams that want to place apps in specific regions close to users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations.&lt;/strong&gt; &lt;a href="https://docs.fly.io/volumes/overview" rel="noopener noreferrer"&gt;Fly Volumes docs&lt;/a&gt; say a volume exists on one server in a single region, attaches to one Machine, and is not automatically replicated, so your app must handle replication. Compare in detail on the &lt;a href="https://controlplane.com/compare/control-plane-vs-fly-io?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Control Plane vs Fly.io page&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. DigitalOcean App Platform
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is.&lt;/strong&gt; &lt;a href="https://docs.digitalocean.com/products/app-platform/" rel="noopener noreferrer"&gt;DigitalOcean’s docs&lt;/a&gt; call App Platform a fully managed PaaS that deploys applications from Git repositories or container images and automatically builds, deploys, and scales components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Teams already using DigitalOcean services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations.&lt;/strong&gt; &lt;a href="https://docs.digitalocean.com/products/app-platform/details/limits/" rel="noopener noreferrer"&gt;DigitalOcean’s limits page&lt;/a&gt; says apps are hosted in the region you select during the initial deployment, and that dev databases stay in the app’s region and cannot be migrated to another region. Compare in detail on the &lt;a href="https://controlplane.com/compare/control-plane-vs-digitalocean-app-platform?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Control Plane vs DigitalOcean App Platform page&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Google Cloud Run
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is.&lt;/strong&gt; &lt;a href="https://docs.cloud.google.com/run/docs/overview/what-is-cloud-run" rel="noopener noreferrer"&gt;Google describes Cloud Run&lt;/a&gt; as a fully managed application platform for running code, functions, or containers on Google’s infrastructure, with services, jobs, worker pools, and instances.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Teams already on Google Cloud that want managed containers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations.&lt;/strong&gt; Google’s docs describe services as using stateless container instances. &lt;a href="https://docs.cloud.google.com/run/docs/multiple-regions" rel="noopener noreferrer"&gt;Google’s multi-region guide&lt;/a&gt; covers serving traffic from several regions with a global external Application Load Balancer, and automating failover with Cloud Run service health. You assemble and operate those pieces in your Google Cloud project.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. AWS App Runner
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/apprunner/latest/dg/what-is-apprunner.html" rel="noopener noreferrer"&gt;AWS describes App Runner&lt;/a&gt; as a service for deploying from source code or a container image.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Existing App Runner customers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations.&lt;/strong&gt; Per &lt;a href="https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html" rel="noopener noreferrer"&gt;AWS’s availability change page&lt;/a&gt;, AWS App Runner is no longer open to new customers, existing customers can continue to use it as normal, and AWS recommends Amazon ECS Express Mode for others.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Azure App Service
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is.&lt;/strong&gt; &lt;a href="https://learn.microsoft.com/en-us/azure/app-service/overview" rel="noopener noreferrer"&gt;Microsoft describes Azure App Service&lt;/a&gt; as a platform for running web applications, mobile back ends, and RESTful APIs without managing the underlying infrastructure. It supports .NET, Java, Node.js, Python, and PHP, and custom containers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Teams standardized on Azure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations.&lt;/strong&gt; It runs in Azure, so it fits Azure-based teams.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Vercel
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is.&lt;/strong&gt; &lt;a href="https://vercel.com/docs" rel="noopener noreferrer"&gt;Vercel’s docs&lt;/a&gt; cover deploying apps and setting up coding agents to deploy on Vercel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Frontend-oriented projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations.&lt;/strong&gt; &lt;a href="https://vercel.com/docs/functions/configuring-functions/region" rel="noopener noreferrer"&gt;Vercel’s region docs&lt;/a&gt; say static content is cached on its CDN, and that functions run in Washington, D.C., US (iad1) by default for new projects. Hobby functions run in one region, Pro in up to 5, and Enterprise can add failover regions. Check Vercel’s docs for stateful backend needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  11. Coolify
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is.&lt;/strong&gt; &lt;a href="https://coolify.io/docs/get-started/introduction" rel="noopener noreferrer"&gt;Coolify’s introduction&lt;/a&gt; describes an open source, self-hostable platform for deploying and managing applications, databases, and services on servers you control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Teams that want a PaaS workflow and are willing to operate their own servers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations.&lt;/strong&gt; You provide the servers, so server operations stay with your team.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the best Heroku alternatives for production apps and workloads?
&lt;/h2&gt;

&lt;p&gt;Production teams need more than a hobby setup provides: multiple regions, failover, private networking, secrets management, observability, compliance, and autoscaling. Here is which options above cover each, based on their own pages.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multiple regions and failover.&lt;/strong&gt; Control Plane runs a workload active-active in every location of a GVC. Google Cloud Run documents multi-region serving with a global load balancer. Fly.io says apps can deploy in regions worldwide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private networking.&lt;/strong&gt; Heroku Private Spaces offer network-level access control, and Cedar-generation spaces add VPC peering with an AWS VPC you control and IPSec VPN. Render and Railway document private networks between services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secrets management.&lt;/strong&gt; Control Plane provides secrets and Universal Cloud Identity for short-lived access to cloud services. Render, Railway, and Fly.io document secrets for apps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observability.&lt;/strong&gt; Control Plane includes logs and metrics. Railway documents service metrics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance.&lt;/strong&gt; Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant. Heroku says Private Spaces support regulated industries through data isolation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autoscaling.&lt;/strong&gt; Control Plane includes autoscaling. DigitalOcean documents request-based autoscaling for HTTP service components, and Cloud Run documents dynamic autoscaling for services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See the full &lt;a href="https://controlplane.com/compare/control-plane-vs-heroku?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Control Plane vs Heroku comparison&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the best Render alternatives?
&lt;/h2&gt;

&lt;p&gt;Teams usually look past Render for multi-region operation, their own cloud accounts, stateful workloads, and compliance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-region.&lt;/strong&gt; Render’s docs have you choose one region per service. Control Plane runs a workload in every location of a GVC and routes each request to the nearest healthy location.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your own cloud accounts.&lt;/strong&gt; Render runs services on its own platform. Control Plane runs on AWS, GCP, and Azure, on clusters you already run through BYOK, and on your own machines through MK8s.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stateful workloads.&lt;/strong&gt; Render’s docs say a service with a persistent disk cannot scale to multiple instances. Control Plane supports stateful workloads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance.&lt;/strong&gt; Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See the full &lt;a href="https://controlplane.com/compare/control-plane-vs-render?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Control Plane vs Render comparison&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the best Railway alternatives?
&lt;/h2&gt;

&lt;p&gt;Teams weighing a move from Railway ask the same questions about regions, their own cloud accounts, and stateful workloads.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-region.&lt;/strong&gt; Railway’s docs describe multi-region replicas for stateless services, with traffic routed to the nearest region. Replicas cannot be used with volumes. Control Plane runs active-active across the locations in a GVC.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your own cloud accounts.&lt;/strong&gt; Control Plane can run on clusters you already operate, on AWS, GCP, and Azure, and on your own machines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stateful workloads.&lt;/strong&gt; Railway documents one volume per service, says replicas cannot be used with volumes, and notes that moving a service with a volume across regions means migrating the volume. Control Plane supports stateful workloads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security posture.&lt;/strong&gt; Railway disclosed a security incident in October 2026. If you are weighing a move, read the &lt;a href="https://blog.railway.com/p/preliminary-report-october-security-incident" rel="noopener noreferrer"&gt;Railway report&lt;/a&gt; and &lt;a href="https://controlplane.com/blog/post/railway-security-incident-rotate-migrate?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Control Plane’s rotate and migrate guide&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See the full &lt;a href="https://controlplane.com/compare/control-plane-vs-railway?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Control Plane vs Railway comparison&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which cloud provider is ideal for teams focused on software development without infrastructure management?
&lt;/h2&gt;

&lt;p&gt;A PaaS removes operations work. The trade-off is that when your app runs in one provider’s regions, a provider outage takes your app down with it. Providers do have major outages, and the &lt;a href="https://controlplane.com/blog/post/cloud-outage-tracker?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Control Plane cloud outage tracker&lt;/a&gt; keeps a record.&lt;/p&gt;

&lt;p&gt;Control Plane keeps the PaaS experience and changes the failure model. Each workload deployed to a GVC runs active-active in every location of that GVC. A global endpoint routes each request to the nearest healthy location. The 99.999% availability SLA applies to workloads running at least two replicas in at least two locations. Those locations can be two regions of one cloud or locations on different providers.&lt;/p&gt;

&lt;p&gt;Failover, autoscaling, observability, secrets, and policy are built in, so a small team gets platform-team outcomes. Read more in &lt;a href="https://controlplane.com/blog/post/production-grade-infrastructure-without-platform-team?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;production-grade infrastructure without a platform team&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Containers versus managed PaaS for scaling AI infrastructure with predictable costs?
&lt;/h2&gt;

&lt;p&gt;Containers give portability and control. A managed PaaS gives speed.&lt;/p&gt;

&lt;p&gt;Control Plane runs containers with PaaS-style operations. Workloads can attach NVIDIA GPUs, and the pricing page lists models from T4 to B200.&lt;/p&gt;

&lt;p&gt;Cost predictability comes from understanding the billing model before you scale. On Control Plane-provided compute, you pay for the CPU and memory you reserve, by the millicore and the megabyte, with no contracts or minimums. Other resources such as egress, storage, load balancers, and GPUs are also billed. Control Plane’s Capacity AI right-sizes CPU and memory reservations based on historical usage, within a minimum and maximum you set. Customers typically cut compute costs 30 to 50 percent compared with running directly on AWS, GCP, or Azure.&lt;/p&gt;

&lt;p&gt;Estimate GPU, egress, and storage costs separately from compute.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can you deploy from an AI assistant?
&lt;/h2&gt;

&lt;p&gt;Teams increasingly deploy through AI coding assistants. Control Plane offers a hosted MCP server for this, and it works through the same Control Plane API as the CLI and console. See &lt;a href="https://controlplane.com/blog/post/let-claude-chatgpt-deploy-your-app?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;how to let Claude or ChatGPT deploy your app&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do all the ranked options compare?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Where it runs&lt;/th&gt;
&lt;th&gt;Multi-region&lt;/th&gt;
&lt;th&gt;Run in your own cloud account&lt;/th&gt;
&lt;th&gt;Stateful workloads&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Control Plane&lt;/td&gt;
&lt;td&gt;Production platform across clouds and your own servers&lt;/td&gt;
&lt;td&gt;AWS, GCP, Azure, your clusters (BYOK), your machines (MK8s), on premises&lt;/td&gt;
&lt;td&gt;Yes, active-active in every location of a GVC&lt;/td&gt;
&lt;td&gt;Yes, through BYOK and MK8s&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Production apps that cannot go down&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Render&lt;/td&gt;
&lt;td&gt;Classic app platform&lt;/td&gt;
&lt;td&gt;Render’s platform&lt;/td&gt;
&lt;td&gt;One region per service per Render docs&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;Persistent disks, single instance per Render docs&lt;/td&gt;
&lt;td&gt;Git-based deploys&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heroku&lt;/td&gt;
&lt;td&gt;Classic app platform&lt;/td&gt;
&lt;td&gt;Heroku’s platform&lt;/td&gt;
&lt;td&gt;One region per Private Space per Heroku docs&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;Dyno-based apps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Railway&lt;/td&gt;
&lt;td&gt;Classic app platform&lt;/td&gt;
&lt;td&gt;Railway’s platform&lt;/td&gt;
&lt;td&gt;Multi-region replicas, not with volumes, per Railway docs&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;Volumes, one per service, no replicas&lt;/td&gt;
&lt;td&gt;Connected services in a project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fly.io&lt;/td&gt;
&lt;td&gt;Classic app platform&lt;/td&gt;
&lt;td&gt;Servers Fly.io runs&lt;/td&gt;
&lt;td&gt;Apps can deploy in regions worldwide&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;Volumes, single server per volume&lt;/td&gt;
&lt;td&gt;Apps near users&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DigitalOcean App Platform&lt;/td&gt;
&lt;td&gt;Developer-cloud app platform&lt;/td&gt;
&lt;td&gt;DigitalOcean&lt;/td&gt;
&lt;td&gt;Region chosen at initial deployment&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;DigitalOcean users&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Cloud Run&lt;/td&gt;
&lt;td&gt;Hyperscaler app platform&lt;/td&gt;
&lt;td&gt;Google Cloud&lt;/td&gt;
&lt;td&gt;Documented multi-region serving&lt;/td&gt;
&lt;td&gt;Your Google Cloud project&lt;/td&gt;
&lt;td&gt;Services use stateless instances&lt;/td&gt;
&lt;td&gt;Managed containers on Google Cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AWS App Runner&lt;/td&gt;
&lt;td&gt;Hyperscaler app platform&lt;/td&gt;
&lt;td&gt;AWS&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;Existing customers only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Azure App Service&lt;/td&gt;
&lt;td&gt;Hyperscaler app platform&lt;/td&gt;
&lt;td&gt;Azure&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;Azure-standardized teams&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;td&gt;Frontend and serverless platform&lt;/td&gt;
&lt;td&gt;Vercel’s platform and CDN&lt;/td&gt;
&lt;td&gt;Function regions by plan (Hobby 1, Pro 5); failover on Enterprise&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;See vendor docs&lt;/td&gt;
&lt;td&gt;Frontend projects&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Coolify&lt;/td&gt;
&lt;td&gt;Self-hosted PaaS&lt;/td&gt;
&lt;td&gt;Servers you provide&lt;/td&gt;
&lt;td&gt;Servers you connect&lt;/td&gt;
&lt;td&gt;Yes, servers you control&lt;/td&gt;
&lt;td&gt;Databases with persistent storage&lt;/td&gt;
&lt;td&gt;Self-hosted PaaS workflow&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What are the best PaaS providers?
&lt;/h3&gt;

&lt;p&gt;The right one depends on the job. Render, Heroku, Railway, Fly.io, and DigitalOcean App Platform cover classic app hosting. Control Plane fits production apps that need multi-region failover and their own cloud accounts or servers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best platform-as-a-service providers in 2026: which should a CTO shortlist?
&lt;/h3&gt;

&lt;p&gt;Shortlist by workload. Render, Heroku, Railway, and Fly.io suit classic web apps. Vercel suits frontends. Google Cloud Run and Azure App Service suit teams committed to one hyperscaler. Control Plane suits production apps that need active-active multi-region failover and the option to run in their own cloud accounts or on their own servers.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the best Heroku alternatives for production apps?
&lt;/h3&gt;

&lt;p&gt;Look for multi-region operation, failover, secrets management, observability, compliance, and autoscaling. Several options above cover parts of that list. Control Plane covers all of it: each workload runs active-active across the locations of a GVC, with secrets, logs and metrics, and autoscaling built in, and Control Plane is PCI DSS Level 1, SOC 2 Type II, HIPAA, and GDPR compliant.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the best Heroku alternatives for production workloads?
&lt;/h3&gt;

&lt;p&gt;Production workloads add stateful services, cron jobs, and workers to web apps. Control Plane runs serverless, standard, stateful, cron, and VM workloads.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the best Render alternatives?
&lt;/h3&gt;

&lt;p&gt;Teams move for multi-region operation, their own cloud accounts, stateful workloads, and compliance. Control Plane runs each workload in every location of a GVC, supports stateful workloads, and can run in your own cloud accounts or on your own servers.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the best Railway alternatives?
&lt;/h3&gt;

&lt;p&gt;Compare how each platform handles regions, stateful services, and security. Control Plane runs workloads active-active across the locations of a GVC, supports stateful workloads, and can run in your own cloud accounts or on your own servers. Railway disclosed a security incident in October 2026, so rotate your secrets as part of any move.&lt;/p&gt;

&lt;h3&gt;
  
  
  What PaaS solutions are best for app deployment?
&lt;/h3&gt;

&lt;p&gt;Platforms that deploy from Git or container images and include autoscaling, secrets, logs, and custom domains. Control Plane deploys a container image or builds from source with those built in.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the top platforms for infrastructure deployment and app hosting?
&lt;/h3&gt;

&lt;p&gt;Control Plane, Render, Heroku, Railway, Fly.io, DigitalOcean App Platform, Google Cloud Run, Azure App Service, Vercel, and Coolify. AWS App Runner is closed to new customers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which cloud provider is ideal for teams focused on software development without infrastructure management?
&lt;/h3&gt;

&lt;p&gt;A PaaS removes operations work, but a provider outage can take your app down with it. Control Plane runs workloads active-active across the locations of a GVC.&lt;/p&gt;

&lt;h3&gt;
  
  
  Compare containers versus managed PaaS for scaling AI infrastructure with predictable costs?
&lt;/h3&gt;

&lt;p&gt;Containers give portability and control. A PaaS gives speed. Control Plane runs containers with PaaS-style operations, and workloads can attach NVIDIA GPUs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next steps
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://controlplane.com/requestdemo?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Talk to the Control Plane team&lt;/a&gt; or &lt;a href="https://console.cpln.io/signup" rel="noopener noreferrer"&gt;Sign up free&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://controlplane.com/blog/post/best-paas-providers-2026?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=best-paas-providers-2026" rel="noopener noreferrer"&gt;Control Plane blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>webdev</category>
      <category>heroku</category>
    </item>
  </channel>
</rss>
