Skip to content
Back to skills

Compute Host Selection

ASecurity

Decision playbook for choosing the right Azure compute service — App Service, Container Apps, Azure Functions, Static Web Apps, or AKS — based on workload shape, ops burden, and scaling requirements.

  • 7 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 23, 2026
ai-agentsnodedockerkubernetesazureapi

Works with

  • api

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add mcorbett51090/RavenClaude --skill compute-host-selection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Compute Host Selection?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Compute Host Selection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mcorbett51090-compute-host-selection/badge)](https://www.skillsdirectory.com/skills/mcorbett51090-compute-host-selection)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: compute-host-selection
description: "Decision playbook for choosing the right Azure compute service — App Service, Container Apps, Azure Functions, Static Web Apps, or AKS — based on workload shape, ops burden, and scaling requirements."
---

# Compute Host Selection

## When to Use This Skill

Use when a new workload needs a home on Azure and the right compute service is not obvious, or when reviewing an existing workload that may be over- or under-engineered for its current host.

## 1. The Primary Decision Tree

Answer these questions in order:

| Question | If YES | If NO |
|---|---|---|
| Is it purely static (HTML/JS/CSS + optional serverless API)? | **Static Web Apps** | Continue |
| Is it event-driven, short-duration (< 10 min), and triggered by a queue/timer/HTTP? | **Azure Functions** | Continue |
| Does it need HTTP scaling to zero AND you want container-native packaging? | **Container Apps** | Continue |
| Does it need the full Kubernetes API (CRDs, operators, custom schedulers)? | **AKS** | Continue |
| Everything else (traditional web app, always-on API, background service) | **App Service** | — |

## 2. Service Comparison Table

| Service | Scale-to-zero | Container-native | Ops burden | Best for |
|---|---|---|---|---|
| App Service | No (always-on) | Optional | Low | Web apps, REST APIs, background workers |
| Container Apps | Yes (Consumption) | Yes | Low-medium | Microservices, event-driven containers, scale-to-zero HTTP |
| Azure Functions | Yes | Optional | Low | Event-driven, short-lived, trigger-based processing |
| Static Web Apps | Yes | No | Minimal | SPAs, static sites, Jamstack with optional API routes |
| AKS | No | Yes | High | Kubernetes-specific APIs, complex orchestration |

## 3. Hosting the Claude Application on Azure

Per `app-platform-engineer`'s remit:

| Claude app shape | Recommended host |
|---|---|
| HTTP API wrapper around Claude | Container Apps (scale-to-zero, sidecar-friendly) |
| Serverless inference trigger | Azure Functions (Consumption plan, Durable for long chains) |
| Long-running agent with stateful conversation | Container Apps (min replicas: 1) or App Service |
| Full web app (front-end + API) | App Service (front-end) + Container Apps (API) |

Seam: `claude-app-engineering` names the target; this plugin provisions it.

## 4. App Service Plan SKU Selection

| Workload | SKU tier | Notes |
|---|---|---|
| Production web API | P2v3 or P3v3 | Zone-redundant available from P1v3+ |
| Dev / internal tools | B2 or B3 | No autoscale; acceptable for low-traffic |
| High-scale or zone-redundant | P2v3 + ZoneRedundant: true | Premium v3 required |
| Functions (always-on) | Elastic Premium EP2 | Needed when cold-start is unacceptable |

Avoid the Free and Shared tiers for anything beyond prototyping.

## 5. Container Apps Environment Considerations

```bicep
resource containerAppsEnv 'Microsoft.App/managedEnvironments@2024-03-01' = {
  name: 'cae-myapp-prod-eastus'
  location: location
  properties: {
    zoneRedundant: true    // prod only; not available in all regions
    workloadProfiles: [
      {
        name: 'Consumption'
        workloadProfileType: 'Consumption'
      }
    ]
  }
}
```

Use the **Consumption** workload profile for scale-to-zero. Use **Dedicated** (D4 / D8) for workloads needing guaranteed CPU/memory.

## 6. When to Use AKS (and When Not To)

**Use AKS only when you need:**
- Custom Kubernetes operators or CRDs
- Specific runtime scheduling (GPU node pools, spot nodes)
- Existing Kubernetes manifests and Helm charts from on-premises

**Do not use AKS when:**
- The requirement is "containerized" — Container Apps handles this with far less ops overhead
- The team doesn't have Kubernetes expertise — cluster upgrades, node pool management, and CNI configuration are non-trivial
- Cost is a concern — AKS system node pools run 24/7; Container Apps Consumption scales to zero

## 7. Checklist Before Finalizing

- [ ] Workload shape mapped to the decision tree (§1)
- [ ] Scale-to-zero requirement confirmed or ruled out
- [ ] Zone redundancy requirement confirmed for prod
- [ ] Ops team capability assessed (AKS requires Kubernetes expertise)
- [ ] Cost estimate produced for the selected SKU
- [ ] Seam to `claude-app-engineering` invoked if the workload is a Claude app

## Pitfalls

- Defaulting to AKS because the team "uses Docker" — Container Apps covers 90% of container use cases without Kubernetes ops overhead
- Using the Consumption plan for Functions that must always be warm — use Elastic Premium
- Choosing App Service for scale-to-zero HTTP APIs — it doesn't scale to zero; use Container Apps
- Forgetting zone redundancy for prod workloads — outages in a single AZ take the service down

## See Also

- [`../../agents/app-platform-engineer.md`](../../agents/app-platform-engineer.md) — compute decisions, scaling, and Claude-app Azure hosting
- [`../../agents/azure-architect.md`](../../agents/azure-architect.md) — WAF reliability and service selection
- [`../../CLAUDE.md`](../../CLAUDE.md) — house opinion: pick compute from the tree; AKS only when you need Kubernetes

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…