Scenario Router¶
Use this page when you have a specific situation and want to jump straight to the page that answers it. This is a breadth-first index across four lifecycle phases — Plan, Deploy, Operate, Troubleshoot — that complements the depth-first Learning Paths and the symptom-first Decision Tree.
Start with Learning Paths if you're new to App Service
This page assumes you already know what you're trying to do. If you're still deciding what to learn first, start with Learning Paths — it sequences a role-based tour of the guide. Use this Scenario Router when you have a specific question and want to jump to the exact page that answers it.
How to Use This Router¶
- Pick the table for the lifecycle phase you're in — Plan, Deploy, Operate, or Troubleshoot.
- Scan the left column for the situation that matches yours; open the destination on the right.
- If two rows fit, prefer the row from the phase you're actually in — the same platform concept often appears in more than one phase.
- If your situation spans two phases (a design choice today that will become an incident later), check Cross-Phase Scenarios first.
- Every destination is a real page in this guide, not an external link and not an aspirational page.
- Rows are intentionally short. Follow the link for the depth; this table is a switchboard, not a summary.
- If your situation is missing, open an issue — the router is meant to grow.
Lifecycle Overview¶
flowchart LR
A[Plan] --> B[Deploy]
B --> C[Operate]
C --> D[Troubleshoot]
D -.-> A I'm Planning¶
| Situation | Where to go |
|---|---|
| I'm choosing which learning path to follow | Learning Paths — role-based reading paths |
| I want to understand App Service platform architecture | Platform Architecture — request lifecycle and resource model |
| I'm picking a hosting plan (Basic, Premium, Isolated) | Hosting Models — plan tiers and workload fit |
| I'm choosing a deployment option (zip, container, GitHub Actions) | Deployment Options — supported deployment methods |
| I'm designing VNet integration, private endpoints, and egress | Platform Networking — inbound and outbound topology |
| I'm designing the production baseline (security, slots, health) | Production Baseline — hardening checklist |
| I'm planning mTLS between clients and the app | mTLS Best Practices — client cert design and validation |
| I want to avoid common App Service anti-patterns | Common Anti-Patterns — what to not do and why |
| I'm picking a language track for a new app | Language Guides Hub — Python, Node.js, Java, .NET |
I'm Deploying¶
| Situation | Where to go |
|---|---|
| I want the quickest possible first deploy | Language Guides Hub — pick Python, Node.js, Java, or .NET tutorial |
| I want to see end-to-end deployment topologies | Deployment Scenarios — public, VNet-integrated, private-endpoint |
| I'm deploying with zip deploy | Zip Deploy — CLI, ARM, and pipeline flows |
| I'm wiring GitHub Actions CI/CD | GitHub Actions Deployment — federated identity and pipeline templates |
| I'm deploying a container image (Web App for Containers) | Container Deploy — ACR wiring and image update |
| I need deployment slots and slot swap | Slots and Swap — pre-warm and swap-with-preview flows |
| I need to configure incoming client certificates | Incoming Client Certificates — mTLS ingress configuration |
I'm Operating in Production¶
| Situation | Where to go |
|---|---|
| I need day-2 operational procedures | Operations Hub — production runbooks |
| I want to follow production best practices | Best Practices Hub — hardening and design guidance |
| I need to scale up or scale out | Scaling Operations — plan tier changes and autoscale rules |
| I need to configure health checks and auto-recovery | Health and Recovery — health path, Auto-Heal, and slot swap |
| I need to configure backup and restore | Backup and Restore — scheduled backups and recovery |
| I need to manage networking (VNet, PE, DNS) | Operations: Networking — day-2 network changes |
| I'm hardening security posture | Operations: Security — identity, TLS, and Key Vault |
| I need to trust an outbound client certificate | Outbound Client Certificates — mTLS egress configuration |
| I need to control cost across a portfolio | Cost Optimization — right-size plans and slot usage |
I'm Troubleshooting¶
| Situation | Where to go |
|---|---|
| I need to systematically diagnose an issue | Decision Tree — hypothesis-driven triage flow |
| I need to know what evidence to collect | Evidence Map — question → KQL + CLI artifact index |
| I want quick pattern-match cards for common symptoms | Quick Diagnosis Cards — one-page symptom cards |
| An incident just started and I have 10 minutes | First 10 Minutes — ordered triage checklist |
| I need a first-principles method for a novel symptom | Troubleshooting Method — competing hypotheses framework |
| My app fails to start after deploy | App Startup Failures — startup log, container port, and warmup |
My Windows app has an IIS or web.config startup failure | Windows IIS and web.config Startup — IIS handlers, startup timeout, and deployed configuration |
| I need Windows Kudu diagnostics or worker-process evidence | Windows Kudu Diagnostics — choose Debug Console, Process Explorer, dumps, or deployment APIs |
My Windows Java app returns 500.121 near the request timeout | Windows httpPlatformHandler KQL Pack — IIS sub-status and backend correlation queries |
| My app returns intermittent 5xx under load | Intermittent 5xx Under Load — worker exhaustion and thread starvation |
| My app is under memory pressure or workers keep recycling | Memory Pressure and Worker Degradation — plan tier and GC behavior |
| Outbound calls fail with DNS or private-endpoint routing issues | PE Custom DNS Route Confusion — VNet integration DNS |
| Outbound calls fail with SNAT port exhaustion | SNAT or Application Issue — connection pooling and SNAT limits |
Cross-Phase Scenarios¶
Some situations straddle two phases — the design choice you make while planning determines the failure mode you eventually debug. These rows link the two together so you can see the pattern and the drill in one place. If you're only in one phase today, still skim this table: it's the cheapest way to preview which decisions will hurt later.
| Situation | Where to go |
|---|---|
| I'm designing deployment slots and want to preview the config-drift failure mode | Deployment Best Practices then Slot Swap Config Drift — plan + incident |
| I'm designing VNet integration and want to see the DNS failure mode | Networking Best Practices then DNS Resolution VNet-Integrated — plan + drill |
| I'm designing scaling policy and want to see the memory-pressure failure mode | Scaling Best Practices then Memory Pressure and Worker Degradation — plan + incident |
| I'm designing mTLS and want to see the failure mode it prevents | mTLS Best Practices then mTLS Failures — plan + drill |
When This Router Isn't the Right Entry Point¶
- You're brand new to App Service → start with Learning Paths instead.
- You already have a symptom (startup failure, 5xx, DNS error) and don't know which lifecycle phase you're in → jump to Decision Tree or Quick Diagnosis Cards.
- You're picking a stack for a brand-new app → use Language Guides Hub.
See Also¶
- Learning Paths — depth-first, role-based reading order
- Overview — what App Service is and who this guide is for
- Repository Map — full section map
- Language Guides Hub — Python, Node.js, Java, .NET tutorials
- Decision Tree — symptom-first troubleshooting router
- Evidence Map — evidence-collection index
Sources¶
- Azure App Service overview (Microsoft Learn)
- Azure App Service plan overview (Microsoft Learn) — the plan/tier decision behind the Plan phase of this router
- Deployment best practices (Microsoft Learn)
- Monitor App Service (Microsoft Learn)