Deployment Model
Aspire uses a pipeline-based deployment model where your application model is transformed into deployment artifacts:- Development: Define your application using the Aspire app model in your AppHost project
- Manifest Generation: Generate a deployment manifest describing all resources and their configuration
- Deployment: Deploy to your target environment using platform-specific tools
Manifest Generation
The manifest is a JSON file that describes your entire application topology, including:- Container images and their configurations
- .NET projects and their build settings
- Environment variables and configuration
- Service endpoints and bindings
- Dependencies between resources
Generating a Manifest
Use theaspire CLI to generate a deployment manifest:
aspire-manifest.json file in the output directory:
Manifest Resource Types
The manifest supports several resource types:project.v0 - .NET Projects
project.v0 - .NET Projects
Represents a .NET project that will be built and containerized.
container.v0 - Container Images
container.v0 - Container Images
Represents a pre-built container image.
container.v1 - Container with Dockerfile
container.v1 - Container with Dockerfile
Represents a container built from a Dockerfile.
value.v0 - Connection Strings
value.v0 - Connection Strings
Represents a connection string or other configuration value.
parameter.v0 - Parameters
parameter.v0 - Parameters
Represents a deployable parameter with optional secrets.
Deployment Targets
.NET Aspire supports deployment to multiple platforms:Azure Container Apps
Deploy to Azure’s serverless container platform with automatic scaling and managed infrastructure
Kubernetes
Deploy to any Kubernetes cluster using Helm charts or kubectl
Deployment Pipeline
The deployment process uses a pipeline architecture located insrc/Aspire.Hosting/Publishing/:
Pipeline Steps
- Manifest Publishing - Generates the deployment manifest
- Deployment Step - Executes platform-specific deployment logic
Using the Deploy Command
Theaspire deploy command orchestrates the deployment:
The deploy command is located in
src/Aspire.Cli/Commands/DeployCommand.cs and executes the publish pipeline with the --step deploy flag.Deployment State Management
Aspire tracks deployment state to enable incremental deployments and rollbacks:- State is stored per environment (Development, Staging, Production)
- Use
--clear-cacheto reset deployment state - State managers are implemented in
src/Aspire.Hosting/Pipelines/Internal/
Next Steps
Deploy to Azure
Learn how to deploy to Azure Container Apps and configure Azure resources
Deploy to Kubernetes
Learn how to deploy to Kubernetes clusters using Helm