Comparison of Compute options in GCP

GCP Compute: a decision tree
click on image for enlarged view

Deciding between compute options boils down to the following three criteria:
  • Level of abstraction (what you want to think about).
  • Technical requirements and constraints.
  • Where your team and organization are going.


Another view from the Google Cloud docs -
Product Your needs Product features Typical use cases
Google App Engine
Google App Engine
A flexible, zero ops platform for building highly available apps
  • You want to focus on writing code, and never want to touch a server, cluster, or infrastructure.
  • You want to build a highly reliable and scalable serving app or component without doing it all yourself.
  • You value developer velocity over infrastructure control.
  • You want to minimize operational overhead.
  • A range of curated serving stacks with smart defaults and deep customizability.
  • Support for Java, Python, PHP, Go, Ruby, Node.js, and ASP.NET Core (beta) ... or bring your own app runtime (Custom Runtimes are supported in App Engine Flexible)
  • Integrated SDK, managed services, and local development environment.
  • App versioning with zero-downtime upgrades.
  • Traffic splitting.
  • Automatic high availability with built-in auto-scaling.
  • Web sites.
  • Mobile app and gaming backends.
  • RESTful APIs.
  • Internal Line of Business (LOB) apps.
  • Internet of things (IoT) apps.
Google Kubernetes Engine
Google Kubernetes Engine
Logical infrastructure powered by Kubernetes, the open source container orchestration system.
  • You want to increase velocity and improve operability dramatically by separating the app from the OS.
  • You need a secure, scalable way to manage containers in production.
  • You don’t have dependencies on a specific operating system.
  • Logical infrastructure - focus on your app components, not virtual machines.
  • Easy mechanisms for building loosely-coupled distributed systems.
  • Run the same application on your laptop, on premise and in the cloud.
  • Containerized workloads.
  • Cloud-native distributed systems.
  • Hybrid applications.
Google Compute Engine
Google Compute Engine
Virtual machines running in Google's global data center network
  • You need complete control over your infrastructure and direct access to high-performance hardware such as GPUs and local SSDs.
  • You need to make OS-level changes, such as providing your own network or graphic drivers, to squeeze out the last drop of performance.
  • You want to move your application from your own colo or datacenter to the cloud without rewriting it.
  • You need to run a software package that can’t easily be containerized or you want to use existing VM images.
  • Virtual machines with network-attached and ultra-high performance local storage options.
  • Preemptible virtual machines for inexpensive batch jobs and fault-tolerant workloads.
  • Customizable load-balancing and auto-scaling across homogeneous VMs.
  • Direct access to GPUs that you can use to accelerate specific workloads.
  • Support for the most popular flavors of Linux and Windows operating systems.
  • Any workload requiring a specific OS or OS configuration.
  • Currently deployed, on-premises software that you want to run in the cloud.

Source: Google Cloud Platform Blog

Related:
Comparison of Azure Compute services
Options for Hosting Containers in Azure

Comments