Compute Services In GCP and Choosing The Right Service

Reet

Reet Shrivastava

30 Mar 2021

Computation, the backbone of the modern technical world, is defined as the actual processing and execution of code and application workloads. But with the exponential use of data in the 21st century, organizations have moved to cloud computing, transforming the IT industry in recent years. In this rapidly evolving digital era, companies increasingly rely on cloud capabilities to enable business growth and innovation with agility. When it comes to the most effective cloud platforms, Google Cloud Platform (GCP)  is one of the best that provides the most robust services to cater to various computation needs. Let’s look at some of the primary benefits and the essential factors involved in deciding where to run your code during computation through GCP. 

 

The compute services provided by Google Cloud Platform

 

Compute Engine


Google Compute Engine offers virtual machines, which can be acquired and used to run the code directly. These are parts of the Google Data Centers and are presented in an IaaS (Infrastructure as a service) model. Since Compute Engines are virtual machines, they provide the most customization ability possible among all the compute services available. The CPU, RAM, Disks, and GPUs are all independently configurable components. Multiple predefined machine types are available, each of which is optimized towards a specific resource-focused use case, for example- High Memory Machines or Fast Compute-optimised instances. Various prebuilt operating systems are also available to create boot disks for the cases, and the feature set of Google Compute Engine can meet any company’s virtualization needs.

Kubernetes Engine

Google Kubernetes Engine (GKE)  is a container orchestration system provided by Google Cloud. If a use case has to be used to run a cluster of multiple Docker containers and require a powerful cluster management tool, this is where to stop looking. GKE clusters come equipped with operational capabilities such as health checks and logging.

 

App Engine

App Engine is a managed application platform provided by Google that controls the infrastructure to run the code written by developers and DevOps engineers. It supports all the languages and frameworks, and the operational overheads such as deployment, versioning, autoscaling, high availability, and monitoring are all taken care of by this platform with the minimal configurations needed.

 

Cloud Functions

 

Google’s serverless compute solution, Google Cloud Functions is the highest possible level of abstraction available when it comes to Compute Services. These are serverless functions triggered on events and scale automatically, being only billed while code is running. Also, these can act as a building block in an event-driven platform.  For example, if the application requires taking an action whenever a file is uploaded to a Cloud Storage bucket, the Cloud function is the best choice for such a case.

 

Choosing the Right Service

 

Now that we have an idea of the computing services offered by Google Cloud, let us see what to use in which situation, depending on multiple factors.

 

Considerations Service to consider Cons
  • Do you need more control of the application infrastructure? 
  • Do you wish to control the fine-grained, low-level details like resource utilisations?
  • Does the application not map well to containers?
Google Compute Engine
  • Manual management and operational costs and effort are required.
  • Does the application map very well to containers?
  • Do you need out-of-the-box container orchestration and operational capabilities such as fault tolerance and autoscaling?
Google Kubernetes Engine
  • A bit of a learning curve around Kubernetes.
  • The burden to manage the underlying infrastructure is still required.
  • Do you wish not to be burdened with infrastructure management and operational overheads?
  • Do you wish to build and deploy a complete end-to-end application consisting of multiple services, e.g. Complex APIs or CRUD heavy applications?
Google App Engine
  • Fine-grained control over the low-level details of the infrastructure is not offered.
  • Google App Engine instances are smaller.
  • Do you wish to build a service for quick and event-driven processing without any operational management overheads?
  • Do you wish to build a lightweight service that glues two services or systems together?
Google Cloud Functions
  • It cannot be used in scenarios where cold start latencies are not suitable.
  • Not suitable for Complex systems.
  • Not suitable for applications where custom binaries are required.

 

Google Cloud provides multiple compute services, each one catered to specific use cases, and like all things, each of the services have their pros and cons. Engineers face such crossroads of decisions, where they are ought to select a particular service for various needs. In such cases, one is responsible for understanding the target use case or scenario and evaluating the available options concerning them. 

 

 

References:


Have a question?

Need Technology advice?

Connect

+1 669 253 9011

contact@hashedin.com

linkedIn youtube