Google Cloud Run
It run stateless containers on a serverless way, either on a fully managed environment or on Anthos.
- Serverless to containers: pay when containers are used by someone.
- Natively serverless
- Fully Managed platform or on Anthos (it requires an GKE Anthos cluster).
- It supports many languages and environments.
- Fast autoscaling.
- Simpler developer experience.
- HTTPS URLs
- Custom Domains.
- Built on Knative.
- Secure and scalable way to run containers in production.
- Event driven serverless architecture.
- Event driven or Web applications & Custom runtime.
Service is the resource in Cloud Run.
- It sits within a GCP region (fully managed) or within a GKE Cluster Namespace (on Anthos).
- It is automatically replicated in multiple zones in region.
- It exposes an unique endpoint.
The are essentially versions, i.e., bundle of container image, env variables, memory limits, concurrency value, etc.
They are inmutable.
Requests are automatically routed to latest revisions.
Each revision receiving requests, translates to number of container instances, dependending on concurrency settings (maximum 80 concurrent request per instance).
Cloud Run Fully Managed
- True serverless.
- No platform to be provisioned.
- Up to go up to 1000 containers (you can also request to increase quota).
- No access to VPC.
- Automatic URL assignement & SSL too.
- Container isolation based on gVisor sandbox.
- Fully managed, based on Knative.
- Pricing based on compute, memory and requests.
Cloud Run for Anthos/Kubernetes
- Included as part of Anthos. You can deploy as a container service on Kubernetes.
- Different Machine types to choose from.
- Limited Capacity, based on GKE configuration.
- Not necessary to be serverless (since Kubernetes cluster is always running, so nodes autoscaling depend on cluster configuration).
- As part of VPC (linking VPC to Kubernetes cluster).
- Custom domain only with manual SSL.
- Kubernetes isolation.