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 ./resources/gcp-app-engine.resources/unknown_filename.1.png

  • 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 ./resources/gcp-app-engine.resources/unknown_filename.png 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