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