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

17,537

Solution 1

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

Solution 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

Solution 3

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.

Share:
17,537
0xAliHn
Author by

0xAliHn

Expertise on Android Smartphone & Wearable application architecture, design and development (Java, Kotlin, MVVM, Dagger2, RxJava2, Retrofit, Kotlin Coroutines, JUnit) with 10+ years experience architecting & developing highly complex, optimized, scalable and high-performance applications. Love to work on Java, Kotlin, Android SDK, Wearable SDK, Android app Architecture, Flutter, Data structures & Algorithm.

Updated on June 03, 2022

Comments

  • 0xAliHn
    0xAliHn almost 2 years

    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
    0xAliHn over 7 years
    So, If I want to migrate from AWS EC2 to Google cloud platform then Google Comute Engine would be better right?
  • Jon Skeet
    Jon Skeet over 7 years
    @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.
  • Edijae Crusar
    Edijae Crusar over 7 years
    @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?
  • Jon Skeet
    Jon Skeet over 7 years
    @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.
  • Piotr Gwiazda
    Piotr Gwiazda almost 7 years
    I cannot get the difference between Flexible App Engine and Container Engine. What is the difference of purpose?
  • Tom
    Tom almost 5 years
    @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.