Skip to content
Dashboard

5 Cloud Run alternatives by workload

Content Engineer

Cloud Run already supports HTTP services, finite jobs, continuous worker pools, and long-lived singleton instances. Shortlist Vercel for eligible web apps, Amazon ECS with Fargate for AWS operations, Azure Container Apps for Azure apps and jobs, Render for separate web and worker services, or Fly.io for VM placement and volumes. The right alternative depends on which workload you're moving.

Vercel publishes this article and is one of the options discussed. The numbered order is not a ranking.

Copy link to headingWhich Cloud Run resource are you replacing?

Record what starts each process and what lets it stop. An HTTP request, a batch completion condition, and a continuously running loop create different requirements. Calling all of them a container deployment hides the distinction that matters when choosing a replacement.

Current Cloud Run resource

Execution model

Question for a replacement

Service

Handles HTTP requests

Does the destination's request lifecycle fit the application?

Job

Runs work to completion

How will you start work and recognize completion?

Worker pool

Performs continuous background work

How will you operate the consumer and recover interrupted work?

Instance

Runs a long-lived singleton workload

Does the process need one continuous runtime, and how will it recover?

Check the current documentation for the particular resource you use; features and release status can differ within the Cloud Run family.

Then write down the reason to leave. A team moving its operations to another cloud has a different shortlist from a team that wants to change how it deploys its web app. The broader guide to choosing a Docker host by workload helps when you also want to reconsider the application's deployment model.

Copy link to headingWhich alternatives should you evaluate?

Copy link to heading1. Consider Vercel for an eligible HTTP application

Start here when the part you want to move is a web application. Vercel Container Images are in beta and execute OCI images as Vercel Functions. Containers serve HTTP, with durable state kept in backing services.

Image compatibility doesn't establish eligibility for a worker that must continue independently of requests. Inspect the application's background processes before including the whole application in the migration scope.

Check networking requirements early. Custom container images currently exclude Secure Compute and Static IPs. If either is a requirement, this container path doesn't meet it today. Once you've established eligibility, follow the existing Cloud Run to Vercel migration guide for implementation.

Copy link to heading2. Evaluate Amazon ECS with Fargate for AWS operations

If your team has chosen AWS for application operations, Amazon ECS provides container orchestration through task definitions, services, and tasks. Fargate supplies compute without requiring you to manage servers.

Moving to AWS can be a reason to adopt its container deployment model, but the team still needs to own the application configuration. Identify who will maintain task definitions and diagnose failed tasks. Before selecting ECS, sketch how each current process would become a service or task and review the identity and network design with the people who will operate it.

Copy link to heading3. Evaluate Azure Container Apps for Azure apps and jobs

Azure Container Apps supports HTTP and event-based scaling, with internal ingress and virtual network integration. Its jobs run finite tasks using manual, scheduled, or event triggers.

Shortlist it when Azure is the intended operating environment and your app includes work that finishes separately from web requests. For each batch process, write its completion condition before choosing its trigger. Check the event source and retry requirements against the job configuration you intend to use. A scheduled report and a consumer that waits indefinitely for more messages need different treatment even when they share application code.

Copy link to heading4. Consider Render for explicit web and worker separation

Render's service types include web services, private services, continuously running background workers, and cron jobs. That makes Render worth evaluating when your application already separates request handling from a worker process.

Map each process to a service type. A worker that polls a queue belongs in a different evaluation from a script that runs on a schedule and exits. Check the proposed layout against your real workload: can the web service restart while the worker continues, and can interrupted work be retried without duplicating results? Prove those behaviors with the application before committing to the move.

Copy link to heading5. Consider Fly.io when placement and volumes drive the decision

Fly Machines are VMs managed through an API or CLI, with configurable regional placement. Fly Volumes persist on a single server in a region; your application must arrange replication between volumes.

Evaluate Fly.io when choosing where a VM runs or attaching persistent storage is a concrete requirement. Write down how the application will restore data and, if it needs multiple copies, how replication will work. A successful launch with a mounted volume leaves those questions unanswered.

Copy link to headingHow would you shortlist hosts for a reporting app?

Suppose a reporting app serves a dashboard over HTTP and runs an overnight export that exits when finished. A separate queue consumer waits continuously for new records. The database lives in a backing service. This is a hypothetical evaluation, not a tested migration.

The dashboard can enter the Vercel eligibility review on its own. For the export, Azure Container Apps jobs deserve a look if Azure is the intended destination. Render's separate web and worker types give the team another layout to evaluate. ECS becomes a candidate when the team intends to operate the application in AWS.

Before testing, choose a representative export and arrange to interrupt it halfway through. Verify whether restarting duplicates records. Separately, restart the dashboard while the consumer handles messages. Use these checks to discover whether you can move components independently or need coordinated changes. Add Fly.io to this app's shortlist if a VM placement or volume requirement emerges; the presence of a container image alone doesn't establish that need.

Copy link to headingWhat doesn't transfer automatically?

Vercel is not a drop-in replacement for the full Cloud Run resource family. An HTTP container path doesn't guarantee equivalent jobs or persistent processes. Keep components in their current environment until you've verified a suitable destination.

Don't assume an image carries its identity or networking configuration. List every protected dependency the app calls and test access from the proposed host. Also, separate durable data from the temporary process state. Describing a container as stateless doesn't mean memory or temporary files must disappear after each request; the design question is what must survive the replacement of the runtime.

Cloud Run also documents GPU configurations. If accelerators matter, evaluate the supported workload and hardware configuration directly instead of assuming migration is necessary.

Copy link to headingFrequently asked questions

Copy link to headingDoes every Cloud Run replacement run jobs?

No. An HTTP hosting option doesn't automatically provide a finite job execution model. Check how the destination starts a batch process and reports its completion; Azure Container Apps jobs are one documented option.

Copy link to headingWhat is an AWS alternative to Cloud Run?

Amazon ECS is an AWS option for running containers as services or tasks. Pairing ECS with Fargate removes server management, while your team still needs to decide how to configure and operate the application.

Copy link to headingWhat is an Azure alternative to Cloud Run?

Azure Container Apps is an option for containerized applications on Azure. It also supports jobs with scheduled or event triggers, so evaluate the app and batch portions of your system separately.

Copy link to headingCan my existing container image move unchanged?

Image reuse requires checking the destination's runtime contract and your application's dependencies. A successful build doesn't confirm the required process lifecycle or network access. For Vercel's container path, the application must handle HTTP requests.

Copy link to headingDo I need to switch away from Cloud Run for background processing?

No. Cloud Run has jobs for work that finishes and worker pools for continuous background workloads. Identify a specific unmet requirement before treating background processing as a reason to leave.

Copy link to headingRelated resources

Ready to deploy?