Introduction to Google Cloud Platform Compute
By: Milan Adamovic
Tags: Google Cloud Platform, Google, Cloud Computing, Kubernetes, Microservices

Google Cloud Platform (GCP) was launched in 2008 and since then was one of the leading cloud providers along with AWS and Microsoft Azure. Google’s end-user products such as Search, Gmail, and YouTube are internally run on the same GCP infrastructure, which is the reason why GCP has good regions and zones coverage.

GCP provides infrastructure as a service (IaaS), platform as a service (PaaS), and serverless computing environments. Google Cloud offers more than 90 products, some of the keys compute services will be covered by this story. In the feature stories, I will cover Storage, Database, and Network services.

Compute Services

The main Google Cloud Platform Compute products are App Engine, Compute Engine, Kubernetes Engine, and Cloud Functions.

App Engine (GAE)

It is Platform as a Service (PaaS), and it offers automatic scaling and a fully managed serverless platform. You can run your application in App Engine using the standard environment (containers are preconfigured with one of several available runtimes) or flexible environment (customize supported runtimes or provide your own runtime by supplying a custom Docker image or Dockerfile), or you can even use both environments.

Primary it supports applications written in Go, Php, Java, Python, Node.js, C#, and Ruby.

In comparison with other cloud providers, App Engine is equal to AWS’s Elastic Beanstalk and Microsoft’s App Services.

Pricing mostly depends on the instance environment. Using the standard environment, clients are charged based on the instance running hours, on the other hand, using a flexible environment clients are charged based on resource usage.

Compute Engine (GCE)

It is customizable Virtual Machines (VM) running in Google Cloud. Compute Engine is Google Cloud’s unmanaged compute service and it is the Infrastructure as a Service (IaaS). GCP makes sure that resources are available, reliable, and ready for use, but you need to choose and configure the platform components.

Compute Engine provides pre-defined machine types packed with a general combination of vCPU and Memory, or you can customize the machine by picking the exact amount of vCPU and Memory you need.

Machine types are grouped by families, you can choose general-purpose (the best price-performance, meant for websites, general servers, and databases), memory-optimized (large in-memory databases, analytics, and etc.), and compute-optimized (high-performance computing applications, gaming, and etc.) VM instances.

Supported operating systems (OS) are Debian, Fedora CoreOS, SUSE, Ubuntu LTS, Container-Optimized OS, and Microsoft Windows.

Compute Engine is similar to Amazon EC2 and Azure Virtual Machines.

Pricing is based on resource usage. Follow this link to see more about pricing.

Kubernetes Engine (GKE)

It is a cloud-based managed Kubernetes service for deploying containerized applications. It provides auto-scaling, monitoring, security, and multi-cluster support. GKE is Container as a Service (CaaS), it allows developers to upload, organize, run, scale, and manage containers by only focusing on container and application.

Kubernetes Engine uses Compute Engine instances as nodes in a cluster, where each node runs the Docker runtime.

For those who are not familiar with Kubernetes, Kubernetes (k8s) is an open-source container-orchestration system originally designed by Google. Kubernetes is maintained by the Cloud Native Computing Foundation.

Google Kubernetes Engine is similar to Amazon Elastic Kubernetes Service and Azure Kubernetes Service.

Cloud Functions

Google Cloud Functions a fully serverless environment designed for running small code snippets that respond to events. It is Function as a Service (FaaS), allowing customers to develop, run, and manage application functionalities without managing server, software, frameworks, and runtime environment.

One of the benefits is pricing, it is based on the function’s execution time, metered to the nearest 100 milliseconds, and there is no additional billing when the function is idle. Cloud Functions automatically spins up and backs down in response to events.

Functions can be written in Node.js, Python, Go, Java, and C# programming languages.

The function execution is triggered by an event that can be a message from Pub/Sub, HTTP request, change in the database, or file upload.

Google Cloud Functions is equivalent to AWS Lambda and Azure Functions.