microsoft / microsoft/GitHub-Copilot-for-Azure

Gap-2: Container Apps Develop (C → A) — Templates + composition + Dapr + Jobs + multi-language

Open
#1,610 1 comment 0 reactions 0 assignees View on GitHub
enhancement untriaged
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.