microsoft / microsoft/GitHub-Copilot-for-Azure
Gap-2: Container Apps Develop (C → A) — Templates + composition + Dapr + Jobs + multi-language
- Dominant language
- Python
- Stars
- 250
- Forks
- 204
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 67
Description
Parent: #1608
## Container Apps Develop: C → A
**Learning from:** Functions (A) — composition algorithm with base + recipes
**Current state:** 5 reference files (README, bicep, scaling, health-probes, environment). No code generation, no container templates.
**What "A" looks like for Container Apps:**
Container Apps is a **general-purpose serverless container platform** that hosts any app stack and SDK at high scale. Key scenarios include high-scale serverless web apps, microservices with Dapr, background workers, and jobs. Event-driven processing (triggers, bindings) is best handled by **Functions on Container Apps** — bringing the Functions programming model into the Container Apps environment.
## Deliverables
- [ ] `services/container-apps/templates/selection.md` — Decision tree: High-scale serverless web app vs microservices vs background worker vs job vs Functions-on-Container-Apps (event-driven)
- [ ] `services/container-apps/templates/composition.md` — Composition algorithm (base + sidecar + integration recipes)
- [ ] **Base templates:**
- `web-app.md` — High-scale serverless web apps (any stack: Node.js, Python, .NET, Java, Go, Rust)
- `api.md` — REST/gRPC API services with ingress, auth, and scaling
- `microservice.md` — Multi-service architecture with service discovery
- `worker.md` — Background processing / long-running tasks
- `job.md` — Container Apps Jobs (scheduled, event-triggered, manual)
- `functions-on-aca.md` — Functions hosted on Container Apps (event-driven processing with triggers/bindings in container environment)
- [ ] **Recipe templates** (per language: C#, Python, Node.js/TS, Go, Java):
- `recipes/dapr/` — Dapr service invocation, state management, pub/sub
- `recipes/cosmos/` — Cosmos DB integration
- `recipes/servicebus/` — Service Bus integration with KEDA scaling
- `recipes/eventhubs/` — Event Hub consumer with KEDA scaling
- `recipes/redis/` — Redis state store / cache
- `recipes/acr/` — ACR build + push + deploy workflow
- `recipes/postgres/` — PostgreSQL Flexible Server integration
- [ ] **Dockerfile templates:** Per language with multi-stage builds (Node, Python, .NET, Java, Go)
- [ ] **Eval templates:** `eval/summary.md` per recipe
- [ ] Update `azure-prepare` routing to load Container Apps templates for container/microservice/serverless web app requests
## Key Scenarios (from Azure Learn + builder input)
- **High-scale serverless web apps** — Any stack/SDK hosted on Container Apps with auto-scaling (including scale to zero), custom domains, and managed TLS. The "serverless App Service" experience.
- **Microservices** with service discovery, traffic splitting, and Dapr integration
- **Functions on Container Apps** — Event-driven processing (queue triggers, blob triggers, timer triggers) using the Functions programming model running inside the Container Apps environment. Best of both worlds: Functions triggers + Container Apps scaling/networking.
- **Background workers** — Long-running processes consuming from queues or doing batch processing
- **Container Apps Jobs** — Scheduled, event-triggered, or manual batch/cron workloads
- **Any app stack** — Container Apps supports all languages, frameworks, and SDKs that can run in a container (not limited to a specific runtime list)
> ⚠️ **Starting assessment** — domain experts should modify or contribute what they believe is essential.
Contributor guide
Research direction
Read parent issue #1608 and the existing services/container-apps reference files first. Define the templates listed in this issue, including selection.md, composition.md, base and recipe files, Dockerfile templates, eval/summary.md, and azure-prepare routing; done means the full set is present and routing covers the stated Container Apps scenarios.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, docker, go, java, node.js, postgresql, python, redis, typescript
- Domain
- cloud, devops, documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100