Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between Google Compute Engine, App Engine and Container Engine in Google Cloud?

What is the actual difference between Google Compute Engine, App Engine and Container Engine in Google Cloud Compute? When to use what?

Is there any good example to understand all of these three engines?

like image 488
0xAliHn Avatar asked Nov 23 '16 10:11

0xAliHn


People also ask

What is the difference between GCP Compute Engine and App Engine?

Google App Engine is a Platform as a Service (PaaS) solution that makes deployment easier. On the other hand, the Google Compute Engine is an Infrastructure as a Service (IaaS) tool.

What is the difference between Compute Engine and Kubernetes engine?

"Backed by google", "Easy to scale" and "High-performance virtual machines" are the key factors why developers consider Google Compute Engine; whereas "Leading docker container management solution", "Simple and powerful" and "Open source" are the primary reasons why Kubernetes is favored.

What is the Google Container Engine?

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.

Does Google App Engine support containers?

Features. Customizable infrastructure - App Engine flexible environment instances are Compute Engine virtual machines, which means that you can take advantage of custom libraries, use SSH for debugging, and deploy your own Docker containers.


2 Answers

(Disclaimer: I work in the Google Cloud Platform team, but this is a personal answer.)

All of these are solutions which allow you to host your applications in the cloud. You can view them as a sort of spectrum of control/automatic management. There's also another thing to consider: App Engine comes in two environments, "Standard" and "Flexible".

So the spectrum ends up being:

  • App Engine Standard: limited runtimes (Python, Java, PHP, Go), very simple to get up and running, auto-scaled etc. Focused APIs designed specifically for App Engine.
  • App Engine Flexible: anything you can put in a container, auto-scaled etc.
  • Container Engine: you design your application in terms of micro-services, specify how they're scaled etc, but let Container Engine (the Google Cloud Platform implementation of Kubernetes) perform the scaling
  • Compute Engine: Hosted VMs with benefits, basically. Some features such as live migration, auto scaling within Managed Instance Groups, but it's much more "bare metal" than the above.

Basically, you need to decide how "hands-on" you want to be. The more control you decide to take, the more work you have to do but the more precise tuning (and flexibility) you get.

Additionally, App Engine Standard supports "scale to zero" - if your app isn't getting any traffic, it can be completely dormant. That makes it a great environment for hobby projects.

like image 155
Jon Skeet Avatar answered Sep 21 '22 16:09

Jon Skeet


The cloud services provides a range of options from fully managed to less managed services. Less managed services gives more control to the developers. Below are the differences enter image description here

like image 42
Sonu Avatar answered Sep 22 '22 16:09

Sonu