App Hosting Options on Google Cloud
A comparison of App Hosting Options on Google Cloud from the official documentation -
1. Cloud Run on GKEβ scales pod counts to zero. The node count per cluster cannot scale to zero, and these nodes are billed during no-request periods.
2. Container instances on GKE do not persist data upon shutdown. However, Compute Engine persistent disks can be mounted to container instances on GKE .
3. While websocket use and TPU/GPU access are technically possible with Cloud Run on GKE, they are not officially supported.
4. App Engine standard environment supports background tasks for basic and manual scaling modes.
β. Beta software has no SLA and may not be suitable for production workloads.
Service | Compute Engine | Kubernetes Engine (GKE) | Cloud Run on GKEβ | Cloud Runβ | App Engine Flexible Environment | App Engine Standard Environment | Cloud Functions |
---|---|---|---|---|---|---|---|
Suitable for | On-premises and monolithic workloads Raw compute to meet existing infrastructure requirements Examples: Relational databases, SAP HANA CRM systems Legacy ERP systems |
Self-hosted, scalable infrastructure Self-managed hosting, with serverless scalability Examples: Containerized apps that need custom hardware and software (OS, GPUs) Existing containerized stateless apps Apps on Kubernetes Engine that can benefit from scaling to zero |
Container-based apps and services Industry standard packaging for multi-cloud infrastructure Examples: Custom runtime environments such as Rust, Kotlin, C++, and Bash Legacy web apps using languages such as Python 2.7, Java 7 |
HTTP services and backend apps Web frameworks, microservices Examples: Flask Django Express.js Symfony Spring Boot |
Event driven and data processing apps Manipulate user generated data and events Examples: Post a comment on Slack channel following a GitHub commit Statistical analysis Image thumbnail generation |
||
Features | Operating system-level control Supports custom machine types Autoscaling support |
Industry standard Docker container packaging Highly configurable for legacy workloads and configurations Scales to meet demand |
Supports industry-standard Docker containers Scales your containerized app automatically Custom binaries and system dependencies Supports API endpoints |
Scales to meet sudden demand Pay for what you use Supports API endpoints |
Designed for event-driven workloads Scales to meet sudden demand Minimal configuration |
||
Deployment format |
VM image
|
Cluster
|
Container
|
Container
|
App
or Container |
App
|
Function
|
Custom URLs | Yes | Yes | Yes | Yes | Yes | Yes | No |
Scale-to-zero | No | No |
Maybe 1
|
Yes | No | Yes | Yes |
Free tier | Yes | No | No | Yes | No | Yes | Yes |
Persistent disks | Yes |
Yes 2
|
No | No | No | No | No |
Websockets | Yes | Yes |
Maybe 3
|
No |
Yes β
|
No | No |
Run any language | Yes | Yes | Yes | Yes | Yes | No | No |
Request timeout |
None
|
None
|
15 minutes
|
15 minutes
|
60 minutes
|
1 minute
|
9 minutes
|
Background processes | Yes | Yes | No | No | Yes |
Maybe 4
|
No |
TPU/GPU access | Yes | Yes |
Maybe 3
|
No | No | No | No |
VPC connectivity | Yes | Yes | Yes | No | Yes |
Yes β
|
Yes β
|
Service | Compute Engine | Kubernetes Engine (GKE) | Cloud Run on GKEβ | Cloud Runβ | App Engine Flexible Environment | App Engine Standard Environment | Cloud Functions |
1. Cloud Run on GKEβ scales pod counts to zero. The node count per cluster cannot scale to zero, and these nodes are billed during no-request periods.
2. Container instances on GKE do not persist data upon shutdown. However, Compute Engine persistent disks can be mounted to container instances on GKE .
3. While websocket use and TPU/GPU access are technically possible with Cloud Run on GKE, they are not officially supported.
4. App Engine standard environment supports background tasks for basic and manual scaling modes.
β. Beta software has no SLA and may not be suitable for production workloads.
Comments
Post a Comment