Bahriya vs Google Cloud Run

Google Cloud Run and Bahriya both let you deploy a container without managing servers, but they are built around different assumptions about how your workload runs. Cloud Run is request-driven and serverless: instances come and go with traffic. Bahriya runs always-on containers that you place explicitly in the regions you choose. This article contrasts the two models. It does not quote Google's prices, regions, or limits — read those from Google directly, as they change.

Updated 3 Aug 20263 min read

Google Cloud Run and Bahriya both let you deploy a container without managing servers, but they are built around different assumptions about how your workload runs. Cloud Run is request-driven and serverless: instances come and go with traffic. Bahriya runs always-on containers that you place explicitly in the regions you choose. This article contrasts the two models. It does not quote Google's prices, regions, or limits — read those from Google directly, as they change.

How each works

Cloud Run is a serverless container platform. You give it an image and it scales instances up in response to requests, including down to zero when idle, billing largely for the time a request is being served. That model is a natural fit for spiky or event-driven workloads and for services that can tolerate a cold start after quiet periods. Running in multiple regions is possible, but it is arranged per region and typically fronted by additional load-balancing and routing services in the wider cloud. As part of Google Cloud, it integrates closely with the rest of that ecosystem.

Bahriya runs your container as a long-lived service. You choose the regions, set a replica count and an optional autoscaling range, and the instances stay up and ready. There is no cold start between requests because the container is always running. Multi-region is a first-class part of one resource: list the regions and the platform provisions the container, TLS, DNS, and routing in each. You get a hostname automatically and can add a custom domain. You operate everything from the Console, the REST API, the Reis CLI, or the Terraform provider.

The distinction that matters most: Cloud Run optimises for scaling with request volume, including to zero; Bahriya optimises for predictable, always-on presence in specific regions. Bahriya also runs worker and cron containers for workloads that are not request-driven at all.

Side by side

DimensionGoogle Cloud RunBahriya
Deployment modelRequest-driven serverless instances, scale to zeroAlways-on containers you place in chosen regions
Multi-regionArranged per region, often with extra routing servicesA list of regions on one resource
TLS & DNSAutomatic on the service URL; custom routing via added servicesAutomatic TLS on the default hostname; DNS and routing built in
ScalingAutomatic with request volume, down to zeroMin/max replicas per region; no cold start between requests
Pricing modelMetered around request-serving timePublished per-region rates, per minute, with a live cost preview
Non-HTTP workloadsPrimarily request-drivenHTTP, worker, and cron container types
PortabilityStandard OCI images; routing setup is cloud-specificStandard OCI image, env vars, DNS — a normal migration to move

When Cloud Run is a good fit

  • Your traffic is spiky or event-driven and scaling to zero saves you money during quiet periods.
  • A cold start after idle time is acceptable for your service.
  • You are already invested in Google Cloud and want tight integration with its other services.

When Bahriya is a good fit

  • You want steady, always-on presence in specific regions without cold starts.
  • Multi-region should be one setting on one resource, not a per-region assembly.
  • You run background and scheduled workloads alongside HTTP services and want one model for all of them.
  • You prefer published, per-region pricing and a cost preview before you deploy.