GKE App Engine - ghdrako/doc_snipets GitHub Wiki

App Engine App Engine's flexible environment is developer-focused and has a code-first strategy.

App Engine: A compute platform for applications written in Node.js, Java, Ruby, C#, Go, Python, and PHP

App Engine comes with two types of environments, namely standard and flexible.

For this exam, make sure you know how App Engine works, the two types of App Engine environments – namely standard and flexible – the two types of Memcache and use cases for them, versioning, how to split migrate traffic, what cron jobs are for, custom domains, and what SSL certificates can be used.

App Engine components

  1. Project can only host one App Engine application
  2. Application can have multiple services
  3. services can have multiple version
  4. Version

Version

Which version is served to the end user is based on the network traffic's configuration. We decide on the percentage of traffic that should be directed to a particular version. This means that it is very easy to make new rollouts and possibly even rollbacks.

Location

Applications in App Engine are deployed regionally. This means that the infrastructure that's used to host it is spread across the zones within this region for high availability.

Once the application has been deployed, you cannot change its region.

App Engine standard environment

The standard environment uses containers running in GCP. These are standardized for each available execution environment. The traffic to your application is distributed using load balancing. The application can scale down to zero if it is not used and can be scaled up within seconds when the demand rises.

The following execution environments are supported:

  • Python 2.7 and 3.7
  • Java 8 and 11
  • Node.js 8 and 10
  • PHP 5.5, 7.2, and 7.3
  • Go 1.9, 1.11, and 1.12

App Engine standard is often also defined as a sandbox for developers.

Flexible environment

The flexible environment uses GCE virtual machine instances. It also scales up and down automatically and distributes traffic using load balancing. However, it always requires at least a single instance to run. Starting the instances takes minutes, while in standard environments, it takes seconds.

The following execution environments are supported:

  • Java 8
  • Python 2.7 and 3.6
  • Node.js
  • Ruby
  • PHP 5.6, 7.0, 7.1, and 7.2
  • .NET Core
  • Go 1.9, 1.10, and 1.11
  • Custom

the App Engine standard environment can scale down to zero, while the flexible environment will always run at least one instance. This has an impact on the cost of running your application.