Choosing the Right GCP Solution for your application

Brian Pompey
2 min readJun 22, 2021

When deploying an application to Google Cloud, you have 3 main options, Google Compute Engine, Google App Engine, and Google Kubernetes Engine. Cloud Functions and Cloud Run are also two minor alternative options. Google Compute Engine gives you the opportunity to create and control Virtual Machine instances, which are servers for your applications. VM’s (Virtual Machines) can be deployed in many different regions and zones across the world to give your application the capability to function at a high level in various locations without any trouble. Creating VM instances in Google Compute Engine gives you the ability to implement and control various services, such as AutoScaling, Load Balancing, adding storage, etc. Compute Engine is an example of “IaaS” or Infrastructure as a service. This means that you are only using infrastructure provided by the cloud. With this, you are responsible for certain aspects such as Application Code and Runtime, Configuring Load Balancing, AutoScaling, OS upgrades, Availability and more.

Next, I’ll discuss Google Kubernetes Engine (GKE). GKE is a managed Kubernetes Service where our applications are based in containers. Right out the gate, GKE automatically provides features like Autoscaling, Service Discovery, Load Balancer, Self Healing, and Zero Downtime Deployments. GKE is an example of a CaaS or Container as a Service, which is a variety of the Platform as a Service model. Essentially, GKE creates applications that are easy to manage and deploy anywhere you want to with the added bonus of lots of automatic services.

Last, I’ll discuss Google App Engine. According to Google, App Engine is “a fully managed, serverless platform.” Now remember, “Serverless” doesn’t actually mean that servers don’t exist, it just means that you have no vision or control over them. So essentially a big part of choosing your cloud solution is deciding what aspects you want to be able to access and how much flexibility and responsibility you prefer. App Engine is the simplest way to deploy and scale applications in GCP. With App Engine, you get automatic load balancing, autoscaling, managed platform updates, health monitoring, application versioning, and traffic splitting. Another great part of App Engine is that you don’t accrue any usage charges unless resources are being provided. App Engine is considered a PaaS or Platform as a Service, meaning unlike with an IaaS like Compute Engine you need not concern yourself with any of the infrastructure. You simply need to focus on the application code itself.

--

--