Google Cloud Run runs your containers on GCP and scales them automatically. Encore keeps you on the same cloud and adds infrastructure from code: databases, Pub/Sub, cron jobs, and Cloud Run services provisioned automatically in your GCP account.
“What used to take days or weeks of back-and-forth between developers and infra teams is now automated and completed in minutes.”
See how Encore and Google Cloud Run differ across key capabilities.
| Infrastructure | Your AWS or GCP account | Your GCP project |
| What It Runs | Services defined in code | Containers you build |
| Deployment | Push code, infra auto-provisioned | Container image or source deploy |
| Databases | RDS / Cloud SQL, provisioned from code | Cloud SQL, configured separately |
| Pub/Sub & Queues | SNS/SQS or GCP Pub/Sub, from code | Pub/Sub push, configured separately |
| Cron Jobs | Built-in, declarative | Jobs triggered by Cloud Scheduler |
| IAM | Service account per service, automatic | Configured per service |
| Local Development | Automatic (DBs, queues included) | Docker, Cloud Code, or gcloud |
| Observability | Built-in tracing & metrics | Cloud Logging and Monitoring |
Encore sets all of this up from your application code. It's real infrastructure in your own cloud account, so you can always open the console and look. You just never have to build it by hand.
Cloud Run runs containers as services, jobs, and worker pools. Services scale on CPU and request concurrency, scale to zero by default, and handle up to 1,000 concurrent requests per instance. Jobs run tasks to completion, for up to 168 hours per task.
This is useful when you want serverless containers on GCP. You still build the containers and wire up Cloud SQL, Pub/Sub, IAM, and secrets yourself.
Encore provisions infrastructure in your cloud account based on your application code. You define databases, Pub/Sub, and other resources in your application code. When you deploy, Encore creates the corresponding AWS or GCP resources using sensible defaults for each provider, which you can configure when you need more control.
This is useful when you want infrastructure ownership, need native cloud services (RDS, SQS, S3), or want built-in observability. Resources run in your own AWS or GCP account.
Both run in a GCP project you own. With Cloud Run, you create each service, database, topic, and permission yourself, while Encore provisions them from your application code.
On GCP, Encore creates a dedicated project per environment, runs your services on Cloud Run or GKE in a private network, and provisions Cloud SQL, Pub/Sub, Cloud Storage, and Secret Manager. Encore provisions a service account for each service.
Everything stays visible in the Google Cloud console, so you can use any GCP service alongside your Encore resources. Encore can also target AWS from the same application code.
Learn more about infrastructure ownership →You can test a Cloud Run service locally with Docker, the Cloud Code emulator in your IDE, or the gcloud CLI local development environment. These run your container image, and access to Google Cloud services is set up with credentials.
Encore runs encore run and automatically provisions local PostgreSQL, Pub/Sub emulation, and cron scheduling. A local dashboard shows distributed tracing and architecture diagrams.
Integrated local development means faster iteration cycles and the same environment locally as in production.
Learn more about local development →Cloud Run runs your containers, but databases, Pub/Sub subscriptions, scheduled triggers, and IAM bindings are separate resources. You create and connect each one through the console, gcloud, YAML, or Terraform.
Encore provisions infrastructure from your code. Declare a database in your application code, and Encore creates RDS or Cloud SQL when you deploy. Same for Pub/Sub, cron jobs, and object storage.
import { SQLDatabase } from "encore.dev/storage/sqldb";
const db = new SQLDatabase("users", {
migrations: "./migrations",
});
// Encore provisions RDS/Cloud SQL automaticallyDatabases, Pub/Sub, Cron Jobs, Object Storage, and more. See all primitives →
Cloud Run sends request, container, and system logs to Cloud Logging, and metrics to Cloud Monitoring, automatically. Container logs are correlated with request logs only when you use a Cloud Logging client library or add the trace field yourself, and custom metrics need a sidecar agent such as OpenTelemetry or Prometheus.
Encore includes distributed tracing, metrics, and structured logging out of the box. Every request is traced across services automatically. No instrumentation code needed.
This works locally too. Run your app and get full tracing in the local development dashboard.
See observability docs →With Cloud Run, infrastructure configuration lives in the console, gcloud commands, YAML, or Terraform, separate from your application code. AI agents like Cursor and Claude Code lack context about how these relate to your application code, leading to drift, hallucinations, and configs that are hard to review.
Encore defines infrastructure in your application code. AI agents see everything in one context: your APIs, databases, queues, and how they connect. This makes AI-generated code accurate and easy to review before you deploy it.
Because the infrastructure comes from the Encore defaults rather than hand-written config, you can let an AI agent build features and trust the result is provisioned correctly. Built-in guardrails, auto-generated docs, and observability keep what it produces maintainable as your system grows.
Learn about AI-assisted development →Encore runs on the same GCP cloud, so you can move one Cloud Run service at a time and keep existing Cloud SQL databases and Pub/Sub topics while traffic shifts over.
The PaaS migration guide covers how hosting and managed services map to Encore, moving data and platform services, and planning the migration. For a wider look at your options, read Cloud Run alternatives.
Read the PaaS migration guide"Encore is our foundation for all new development. Since adopting it, we've seen a 3x increase in development speed and 90% shorter project lead times."
"Encore lets us go from idea to shipped product at least 3x faster and saves us hours of devops work every week."
"We've reduced time spent on DevOps by 95%, and we're now on track to save $60K annually in cloud costs."
"Encore is an unfair advantage. At Pave we've moved 2x faster than we did at Monzo."
"We're saving $200k+ annually compared to additional hiring. The ROI is outstanding, easily 10x."
"You define infrastructure in your code and it's automatically spun up for you. You can go from zero to a deployed service on GCP in an hour. I don't know how else to do it."
"Encore's inferred infrastructure has allowed us to move at unprecedented speed. Combined with database branching in Neon, we're able to spin ephemeral environments up and down with incredible ease. Stakeholders love preview app URLs."
Common questions about Encore vs Google Cloud Run.
Cloud Run is a Google Cloud service that runs your containers and scales them automatically. Encore is an open source infrastructure SDK: you declare services, APIs, Postgres databases, Pub/Sub topics, cron jobs, and object storage in your application code, and Encore provisions the matching GCP resources, including Cloud Run services, in your own GCP account.
Yes. On GCP, Encore can run your services on Cloud Run or on GKE, in a GCP project you own. It also provisions Cloud SQL for PostgreSQL, GCP Pub/Sub with dead-letter topics, Cloud Storage buckets, and Secret Manager, and a service account for each service.
Cloud Run service requests time out after 5 minutes by default, configurable up to 60 minutes. Each instance handles up to 80 concurrent requests by default in the console, configurable up to 1,000. Cloud Run job tasks run for 10 minutes by default and up to 168 hours.
With Cloud Run alone, you configure the service, Cloud SQL, Pub/Sub, IAM, and secrets yourself, through the console, gcloud, YAML, or Terraform. Encore provisions these from your application code, so there is no separate infrastructure configuration to keep in sync.
Yes. Encore runs in the same GCP cloud, so you can move one service at a time and keep existing Cloud SQL databases and Pub/Sub topics while traffic shifts over.
Deploy to your own AWS or GCP account, with infrastructure provisioned automatically.