Encore vs

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.”
Josef Sima, Engineering Director at Groupon
3xfaster development speed
90%shorter time to market
See case study
// POWERING DEVELOPMENT AT
GrouponPave BankBookshop.orgCoinbasePalletGradient Labs

Feature Comparison

See how Encore and Google Cloud Run differ across key capabilities.

EncoreGoogle Cloud Run
InfrastructureYour AWS or GCP accountYour GCP project
What It RunsServices defined in codeContainers you build
DeploymentPush code, infra auto-provisionedContainer image or source deploy
DatabasesRDS / Cloud SQL, provisioned from codeCloud SQL, configured separately
Pub/Sub & QueuesSNS/SQS or GCP Pub/Sub, from codePub/Sub push, configured separately
Cron JobsBuilt-in, declarativeJobs triggered by Cloud Scheduler
IAMService account per service, automaticConfigured per service
Local DevelopmentAutomatic (DBs, queues included)Docker, Cloud Code, or gcloud
ObservabilityBuilt-in tracing & metricsCloud Logging and Monitoring
What you get to skip

You don't need to become an infrastructure expert to run on AWS or GCP

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.

  • Terraform modules
  • IAM policies
  • VPC and subnets
  • Security groups
  • Kubernetes
  • Helm charts
  • CI/CD pipelines
  • Load balancers
  • Secrets per environment
  • Staging environments
  • Tracing setup
  • Database networking

How They Work

Google Cloud Run

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

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.

Infrastructure Ownership

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 →

Local Development

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 →

Automatic Infrastructure

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 automatically

Databases, Pub/Sub, Cron Jobs, Object Storage, and more. See all primitives →

Built-in Observability

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 →

AI-Assisted Development

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 →

Migrating from Google Cloud Run

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
Google Cloud RunEncore
Cloud Run serviceEncore service with API endpoints
Cloud Run job on Cloud SchedulerCron job calling an API endpoint
Pub/Sub push subscriptionPub/Sub subscriber
Cloud SQL for PostgreSQLSQL database
Cloud Storage bucketObject storage bucket
Secret Manager secretPer-environment secrets

Top rated on G2

See how we stack up in the market.

Read G2 reviews →
G2 User LoveG2 High Performer Summer 2025G2 High Performer Fall 2025G2 High Performer Winter 2026

Frequently asked questions

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.

Start building with Encore

Deploy to your own AWS or GCP account, with infrastructure provisioned automatically.