무료 및 오픈 소스
Aspire는 개발자 우선, 항상 무료인 오픈 소스 플랫폼입니다. 활기찬 커뮤니티에 참여해 모던 개발의 미래를 함께 만들어가세요.
코드로 스택 정의—타입 안전하고 읽기 쉬움. 로컬에서 실행하고 아키텍처 변경 없이 어디든 배포.
프론트엔드, API, 컨테이너, DB를 재작성 없이 오케스트레이션. 스택에 맞게 확장하고 어디든 배포.
내장 OpenTelemetry가 로그/트레이스/헬스 체크 자동 제공—설정 없이 더 빠른 디버그.
어디든 배포—Kubernetes, 클라우드, 온프레. 추가 재작성 없이 일관성 유지.
Aspire는 모듈형, 컴포저블, 확장 가능. 관계, 배포 옵션, dev 플래그를 한 곳에서 구성. AppHost 자세히 보기.
var builder = DistributedApplication.CreateBuilder(args);
// This would be a rather boring AppHost ☹️...
// Toggle the options above to see what an AppHost might look like.
// For example, select "Front end" to add a frontend service.
var builder = DistributedApplication.CreateBuilder(args);
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT");
var builder = DistributedApplication.CreateBuilder(args);
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT");
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT");
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT");
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj");
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj");
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres);
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres);
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj");
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj");
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres);
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres);
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
var builder = DistributedApplication.CreateBuilder(args);
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
당신의 스택을 위해, Aspire는 C#, Java, Python, JavaScript, TypeScript, Go 등 앱을 오케스트레이션—선호 언어 사용. 앱 모델링 방법 보기.
넓은 언어 & 프레임워크 지원으로 선호 기술로 개발하면서 Aspire 오케스트레이션 이점 활용.
로컬 개발을 위해 설계, Aspire는 머신에서 프로덕션 유사 환경을 재현하여 “내 PC에서는 됨” 문제를 줄입니다. 배포 & 앱 토폴로지 알아보기.
컨테이너화된 서비스로 로컬 개발
테스트용 전체 스테이징 환경을 생성/삭제
프로덕션 클라우드 서비스 — 코드 변경 불필요
Redis
Shortlived container
PostgreSQL
Azure Database for PostgreSQL
PostgreSQL
Local container
Frontend
Azure Static Web Apps
Aspire CLI로 로컬 전부 기동하거나 CI/CD에서 배포 산출물 생성. 첫 Aspire 앱 만들기.
로그·메트릭·트레이스를 실시간 모니터링—워크플로에 통합된 OpenTelemetry 대시보드.
멀티 클라우드, 무제한 통합 — Azure, AWS, 자체 인프라에 연결. 광범위한 생태계로 어떤 스택도 강화. 통합 갤러리 보기.
우리 말만 믿지 마세요! 인디부터 엔터프라이즈까지—더 빠르게 빌드하고 자신 있게 배포. 커뮤니티 둘러보기.
CT
Hit F5 to begin — skip the setup boss fight, ship code faster.
SP
Aspire lets developers be developers again.
NU
I've never wanted to commit to a Microsoft technology this much.
RH
I had someone start on a Monday morning and they were contributing code by lunch.
NC
The best thing that happened in .NET since it went open source in 2014!
SK
Aspire was easy to integrate with our existing container orchestration.
DC
OpenTelemetry out-of-the-box in the Aspire dashboard is a game changer for observability!
MJ
I was surprised by how quickly Aspire got me from idea to running services.
Aspire CLI 설치 후 모델링·실행·배포 방법을 Docs에서 학습.
문서 보기 Aspire 로 앱 모델링·실행·배포 방법 학습.