Google computing options and how to choose them?

GCP is offering multiple compute options, selecting the right one which is fitting the need, is essential in terms of performance and cost saving! The available compute options in GCP are: Compute Engine, Google Kubernetes Engine (GKE), App Engine, Cloud Run and Cloud functions. All of these solutions are supporting container deployment. Let’s deep dive a bit more into each of these functions:

  • Compute Engine: It is an Infrastructure as a Service solution (IaaS) which is giving lots of flexibility; It offers running virtual machines that have predefined configurations. Virtual machines need block storage such as persistence disk and SSD. We should choose this solution if we need to have control over the infrastructure. It is supporting in general, for compute workloads. Managing units in this case are virtual machines.
  • Google Kubernetes Engine(GKE): It is a fully managed Kubernetes platform, and it supports solutions both on-premises and cloud Kubernetes. It is an orchestration system for applications on the containers which is automating many processes such as deployment, scaling, load balancing, and monitoring. It is a good choice for the containerized applications. It is supporting in general, container based workloads. Managing units in this case are containers.
  • App Engine: It is a Platform as a Service solution (PaaS), if you need just to run your code and do not want to be worried about server management and configuration deployment, choose this solution. It a runtime platform that supports seamless application deployment & scalability. So, in this way you can focus just on the building application and not on deployment. It supports popular languages such as PHP, Python, Java, Node.js, and Go. It can be integrated with Stackdriver for real-time monitoring and debugging. It also supports version control. The most suitable usecases are web, mobile, and container based workloads. Managing units in this case are applications.
  • Cloud Run: It is a stateless solution that is good for deploying stateless applications and it enables stateless containers. It automates building, deployment, and managing modern stateless workloads. It makes containers invocable by HTTP request. You don’t need to worry about infrastructure management such as configuration and management. It is a fully managed environment that gives you the freedom to focus just on code writing. Managing units in this case are virtual machines.
  • Cloud Functions: It is a Function as a Service solution (FaaS) which is an event driven & serverless service. The code is deployed as a function and it is reactive based on the event triggers. Types of available triggers are HTTP, Cloud Pub/Sub, Cloud Storage (Firebase related events are in Beta version). Normally this service is part of microservices application architecture and can be integrated with APIs. Supported languages are Java, Python, Go, .Net, Ruby, and Node.js. Managing units in this case are functions.

How to select the best solutions?
If your case is running applications on physical servers or virtual machines, go for Compute Engine.

If you don’t wanna involve in the operations such as configurations and management, go for Cloud Functions and App Engine.

In case you have containerized application, go for App Engine or Compute Engine, or GKE.

  • In case you wanna use Compute Engine, consider you need to manage virtual machines that are running the containers. In the case, you don’t wanna be worried so much about managing the workloads and scaling, go for App Engine. If you need to have more control over the workloads, go for GKE

Hope you get a general overview on avialable compute options in GCP, if you need more details check each solution documentation or any of below references:

Author: Pari

Leave a Reply

Your email address will not be published. Required fields are marked *