Getting started with Google App Engine — what it is, how it works, and how to deploy your first application.


What is App Engine?

Google App Engine is a fully managed serverless platform for building and hosting web applications. You upload your code and App Engine handles provisioning servers, scaling instances, load balancing requests, and keeping the infrastructure running. You never see or manage the underlying VMs.

It has been running since 2008, making it one of the oldest PaaS offerings in the cloud. App Engine runs your application on the same infrastructure that powers Google’s own services.

Key Insight: App Engine is opinionated. It gives you a structured environment with built-in services (cron, task queues, memcache) and handles scaling automatically. If you need full control over the runtime or container, Cloud Run gives you more flexibility.


Supported Runtimes

LanguageStandard Runtimes
Python3.7, 3.8, 3.9, 3.10, 3.11, 3.12
Java8, 11, 17, 21
Go1.12, 1.16, 1.19, 1.21, 1.22
Node.js12, 14, 16, 18, 20
PHP7.4, 8.0, 8.1, 8.2, 8.3
Ruby2.7, 3.0, 3.1, 3.2

The Flexible environment supports all of the above plus any language via custom Docker images (.NET, Rust, Elixir, etc.).


How App Engine Works

flowchart LR
    User["User Request"] --> LB["App Engine Load Balancer"]
    LB --> Router["Request Router"]
    Router --> S1["Service: default<br/>Version: v2"]
    Router --> S2["Service: api<br/>Version: v1"]
    S1 --> GCS["Cloud Storage"]
    S1 --> SQL["Cloud SQL"]
    S2 --> PS["Pub/Sub"]
  1. A user sends a request to your app’s URL
  2. App Engine’s built-in load balancer receives it
  3. The request router directs it to the correct service and version
  4. Your code runs on a managed instance
  5. Instances are created or removed based on traffic

App Engine Environments

App Engine offers two execution environments:

AspectStandardFlexible
InfrastructureSandboxed containersDocker on Compute Engine VMs
ScalingScales to zeroMinimum 1 instance always running
Deployment timeSecondsMinutes
Free tierYes (28 instance-hours/day)No
Custom runtimesNoYes (via Dockerfile)

Tip: Start with the Standard environment unless you have a specific reason to use Flexible. Standard is cheaper, deploys faster, and scales to zero.

See Standard vs Flexible for a detailed comparison.


Getting Started

Prerequisites

  • A Google Cloud account with billing enabled
  • gcloud CLI installed and authenticated
  • A Google Cloud project

Deploy Your First App

Step 1: Initialize your project

gcloud auth login
gcloud config set project YOUR_PROJECT_ID
gcloud app create

Step 2: Create your application

Create a directory with your code and an app.yaml file:

# app.yaml
runtime: python312
# main.py
from flask import Flask
 
app = Flask(__name__)
 
@app.route("/")
def hello():
    return "Hello from App Engine!"
 
if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8080)
# requirements.txt
Flask==3.0.0
gunicorn==21.2.0

Step 3: Deploy

gcloud app deploy

Step 4: View your app

gcloud app browse

Your app is live at https://PROJECT_ID.REGION_ID.r.appspot.com.


Built-in Services

App Engine includes several managed services you can use without additional setup:

ServiceDescription
Cron ServiceSchedule tasks at regular intervals via cron.yaml
Task QueuesBackground task processing (being replaced by Cloud Tasks)
MemcacheIn-memory caching (being replaced by Memorystore)
MailSend emails programmatically
BlobstoreStore and serve large blobs (being replaced by Cloud Storage)
UsersAuthentication service (being replaced by Firebase Auth / Identity Platform)

Note: Google is gradually migrating these bundled services to standalone Google Cloud products. For new applications, prefer the standalone services (Cloud Tasks, Memorystore, Cloud Storage, Firebase Auth).


Free Tier

App Engine Standard has a persistent free tier that does not expire:

ResourceFree Allowance
Instance-hours28 per day (F1 class)
Datastore1 GB storage, 50K reads, 20K writes/day
Cloud Storage5 GB
Outbound network1 GB/day

New Google Cloud accounts also receive a $300 free credit valid for 90 days.

Warning: As of May 2026, the Flexible environment has no free tier and bills for vCPU, memory, persistent disk, and network while at least one instance keeps running.


Common gcloud Commands

# Create an App Engine application
gcloud app create
 
# Deploy your app
gcloud app deploy
 
# Deploy without promoting (no traffic)
gcloud app deploy --no-promote
 
# Browse your app
gcloud app browse
 
# List all services
gcloud app services list
 
# List all versions
gcloud app versions list
 
# View application logs
gcloud app logs tail
 
# Delete a version
gcloud app versions delete VERSION --service=SERVICE

TL;DR

  • App Engine is a fully managed PaaS — upload code, Google handles everything else.
  • Supports Python, Java, Go, Node.js, PHP, Ruby in Standard; any language in Flexible.
  • Two environments: Standard (sandboxed, free tier, scales to zero) and Flexible (Docker, custom runtimes, minimum cost).
  • Built-in services include cron, task queues, memcache, and mail (though Google is migrating these to standalone services).
  • Deploy with gcloud app deploy — your app is live in seconds.

Resources

App Engine Documentation Official documentation for all App Engine features and runtimes.

Quickstart: Python on App Engine Step-by-step guide to deploy a Python app.

App Engine Pricing Pricing details including free tier limits.

Standard vs Flexible Environments Detailed comparison of the two App Engine environments.

app.yaml Configuration Complete reference for the app.yaml configuration file.

Google Cloud Overview High-level overview of Google Cloud Platform.