Which compute service should you adopt?
Google Compute Engine
Google Compute Engine (GCE) is an Infrastructure as a Service (IaaS) offering that allows clients to run workloads on Google’s physical hardware. Google Compute Engine provides a scalable number of virtual machines (VMs) to serve as large compute clusters for that purpose. GCE can be managed through a RESTful APIs, command line interface (CLI) or Web console.
These VMs boot quickly, come with persistent disk storage, and deliver consistent performance. The machines are available in many configurations including predefined sizes and can also be created with Custom Machine Types optimized for your specific needs.
Google Compute Engine (GCE) has a rich set of features. You may want to dive into some of these :
- Preemptible VMs — https://cloud.google.com/compute/docs/instances/create-start-preemptible-instance
- Sole-tenant nodes — https://cloud.google.com/compute/docs/nodes/create-nodes
- GPUs & TPUs — https://cloud.google.com/compute/docs/gpus/add-gpus
- Windows instances — https://cloud.google.com/compute/docs/instances/windows/creating-managing-windows-instances
- Labeling Resources — https://cloud.google.com/compute/docs/labeling-resources
- Migrating VMs to Compute Engine — https://cloud.google.com/compute/docs/vm-migration/
Google Kubernetes Engine (GKE)
Google Kubernetes Engine (GKE) is a management and orchestration system for Docker container and container clusters that run within Google’s public cloud services. Google Kubernetes Engine is based on Kubernetes, Google’s open source container management system.
Features of GKE:
· Fully Managed
· GKE uses a Container-Optimized OS
· Auto Upgrade
· Auto Repair
· Cluster Scaling
· Seamless Integration
· Identity & Access Management
· Integrated Logging & Monitoring using Stackdriver
· Integrated Networking using Google VPC
Google App Engine
App Engine is a fully managed, serverless platform for developing and hosting web applications at scale. You can choose from several popular languages, libraries, and frameworks to develop your apps, then let App Engine take care of provisioning servers and scaling your app instances based on demand.
You can run your applications in App Engine using the
You can also choose to simultaneously use both environments for your application and allow your services to take advantage of each environment’s individual benefits.
Comparing high-level features
Google Cloud Run-Bringing serverless to containers
The Cloud Run (fully managed) platform allows you to deploy stateless containers without having to worry about the underlying infrastructure. Your workloads are automatically scaled up or down to zero depending on the traffic to your app. You only pay when your app is running, billed to the nearest 100 milliseconds. While it may look similar to existing services of public cloud, the feature set makes Cloud Run unique:
- Docker as a deployment package enables using any language, runtime, framework, or library that can respond to an HTTP request.
- Automatic scaling, including scale to zero, means you pay for what you consume with no fixed cost and no management overhead.
- HTTP load-balancing out of the box simplifies the usage.
Cloud Function
Google Cloud Functions is a serverless execution environment for building and connecting cloud services. With Cloud Functions you write simple, single-purpose functions that are attached to events emitted from your cloud infrastructure and services. Your function is triggered when an event being watched is fired. Your code executes in a fully managed environment. There is no need to provision any infrastructure or worry about managing any servers.
Cloud Functions can be written using JavaScript, Python 3, or Go runtimes on Google Cloud Platform. You can take your function and run it in any standard Node.js (Node.js 6, 8 or 10), Python 3 (Python 3.7) or Go (Go 1.11 or Go 1.13) environment, which makes both portability and local testing a breeze.