37

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?

0xAliHn
  • 18,390
  • 23
  • 91
  • 111
  • 1
    Possible duplicate of [What is the difference between Google App Engine and Google Compute Engine?](http://stackoverflow.com/questions/22697049/what-is-the-difference-between-google-app-engine-and-google-compute-engine) – Paul Hicks Jan 24 '17 at 23:27

3 Answers3

78

(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.

Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194
  • So, If I want to migrate from AWS EC2 to Google cloud platform then Google Comute Engine would be better right? – 0xAliHn Nov 23 '16 at 11:14
  • @0xAliHn: I wouldn't like to speculate on that - partly because I don't know much about AWS, and partly because we'd need to know more details. But if you're basically after VMs, then Compute Engine is the natural fit. You may well want to consider moving to more managed solutions later, of course. – Jon Skeet Nov 23 '16 at 11:16
  • @JonSkeet i am using app engine but i need to use a service which will be making some callbacks to my app engine. for this matter, they need a static ip address and port to my app engine. if am not wrong, app engine do not provide this details. should i switch to container engine or how can i provide them with static IP address and port? – Edijae Crusar Jan 12 '17 at 14:10
  • @gikarasojokinene: I don't know whether container engine will give you a static IP address either, to be honest. I suggest you ask a new question specifically about this. – Jon Skeet Jan 12 '17 at 14:16
  • 3
    I cannot get the difference between Flexible App Engine and Container Engine. What is the difference of purpose? – Piotr Gwiazda Jul 07 '17 at 18:07
  • 1
    @PiotrGwiazda Flexible App Engine is still FaaS, so a session is started by a request and ended within a response, and there is a time limit. Container Engine (GKE) operates more like a typical VM service: you are in complete control of the lifecycle. – Tom Jun 06 '19 at 21:53
2

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

Sonu
  • 712
  • 9
  • 7
1

Compute Engine is more on Infrastructure side. App Engine is more on Application side. Container Engine is more on a cluster management and container orchestration system developed to run and manage Docker containers.

Kervin L
  • 474
  • 4
  • 5