GCP App Engine

March 28th, 2023

Features

  • auto load balancing & auto scaling

  • managed platform updates

  • application health monitoring

  • application versioning

  • traffic splitting

 

Compute Engine vs App Engine

compute E = IAAS

app E = Paas, serverless

 


Environments

no description for image available
  • standard - language specific sandbox

    • v1 - java python php go (old versions)

      • python & php -> restricted network access + restricted libs

    • v2 - java, python, php, node, ruby, go (newer versions)

  • flexible - docker containers

    • uses compute engine VMs

    • access to background processes

    • attach local disks

 


Component Hierarchy

no description for image available

Application: 1 per project

Service: 1 per micro-service

  • (eg. backend & frontend)

  • each service has settings

  • aka "modules"

Version: code + config

Instance:

  • run multiple versions

  • split traffic

  • rollback

 


Scaling

A) Automatic - based on load

  • recommended: continuous workloads

  • triggers

    • CPU threshold

    • Throughput threshold

    • max concurrent requests

  • config: max & min instances

B) Basic - scales down to 0

  • recommended: ad hoc workloads

  • cold start possible

  • only app engine env standard (not flexible env aka docker)

  • config

    • max instances

    • idle timeout

C) Manual

  • configure how many instances

  • manually change how many instances