다음을 통해 공유


.NET .NET Aspire 개요

.NET Aspire 관찰 가능한 프로덕션 준비 앱을 빌드하기 위한 강력한 도구, 템플릿 및 패키지 집합입니다. .NET Aspire 특정 클라우드 네이티브 문제를 처리하는 NuGet 패키지 컬렉션을 통해 제공됩니다. 클라우드 네이티브 앱은 종종 단일 모놀리식 코드 베이스가 아닌 상호 연결된 작은 부분 또는 마이크로 서비스로 구성됩니다. 클라우드 네이티브 앱은 일반적으로 데이터베이스, 메시징 및 캐싱과 같은 많은 수의 서비스를 사용합니다. 지원에 대한 자세한 내용은 .NET.NET Aspire 지원 정책참조하세요.

분산 애플리케이션은 여러 노드에서 계산 리소스를 사용하는 애플리케이션으로, 다른 호스트에서 실행되는 컨테이너 등에서 사용됩니다. 이러한 노드는 사용자에게 응답을 전달하기 위해 네트워크 경계를 통해 통신해야 합니다. 클라우드 네이티브 앱은 클라우드 인프라의 확장성, 복원력 및 관리 효율성을 최대한 활용하는 특정 유형의 분산 앱입니다.

왜 .NET.NET Aspire?

.NET Aspire .NET 클라우드 네이티브 앱을 빌드하는 환경을 개선하도록 설계되었습니다. 분산 앱을 빌드하고 실행하는 데 도움이 되는 일관되고 의견 있는 도구 및 패턴 집합을 제공합니다. .NET .NET Aspire은 당신이 다음과 같은 작업을 수행하는 데 도움을 주도록 설계되었습니다.

  • 오케스트레이션: .NET.NET Aspire 다중 프로젝트 애플리케이션을 실행하고 연결하는 기능과 로컬 개발 환경에 대한 종속성을제공합니다.
  • 통합: .NET Aspire 통합은 Redis 또는 Postgres같은 일반적으로 사용되는 서비스에 대한 NuGet 패키지이며, 표준화된 인터페이스를 통해 앱과 일관되고 원활하게 연결할 수 있습니다.
  • 도구: .NET Aspire에는 Visual Studio, Visual Studio Code, 그리고 .NET CLI를 위한 프로젝트 템플릿과 도구 환경이 포함되어 있어 .NET.NET Aspire 프로젝트를 생성하고 상호 작용하는 데 도움이 됩니다.

오케스트레이션

.NET .NET Aspire오케스트레이션은 주로 클라우드 네이티브 앱의 구성 및 상호 연결 관리를 간소화하여 로컬 개발 환경을 향상시키는 데 중점을 둡니다. .NET .NET Aspire오케스트레이션은 Kubernetes같은 프로덕션 환경에서 사용되는 강력한 시스템을 대체하기 위한 것이 아닙니다. 대신 서비스 검색, 환경 변수 및 컨테이너 구성 설정을 간소화하여 하위 수준 구현 세부 정보를 처리할 필요가 없는 추상화 집합을 제공합니다. 이러한 추상화는 수많은 통합 및 서비스가 있는 앱 간에 일관된 설정 패턴을 보장하므로 개발 단계에서 복잡한 애플리케이션을 보다 쉽게 관리할 수 있습니다.

.NET .NET Aspire 오케스트레이션은 다음과 같은 문제를 해결합니다.

  • 앱 컴퍼지션: 애플리케이션을 구성하는 .NET 프로젝트, 컨테이너, 실행 파일 및 클라우드 리소스를 지정합니다.
  • 서비스 검색 및 연결 문자열 관리: 앱 호스트는 개발자 환경을 간소화하기 위해 올바른 연결 문자열 또는 네트워크 구성 및 서비스 검색 정보를 삽입하도록 관리합니다.

예를 들어 .NET Aspire사용하여 다음 코드는 로컬 Redis 컨테이너 리소스를 만들고, 사용할 수 있게 될 때까지 기다린 다음, 몇 가지 도우미 메서드 호출을 사용하여 "frontend" 프로젝트에서 적절한 연결 문자열을 구성합니다.

// Create a distributed application builder given the command line arguments.
var builder = DistributedApplication.CreateBuilder(args);

// Add a Redis server to the application.
var cache = builder.AddRedis("cache");

// Add the frontend project to the application and configure it to use the 
// Redis server, defined as a referenced dependency.
builder.AddProject<Projects.MyFrontend>("frontend")
       .WithReference(cache)
       .WaitFor(cache);

자세한 내용은 .NET.NET Aspire 오케스트레이션 개요참조하세요.

중요하다

AddRedis 호출은 로컬 개발 환경에 새 Redis 컨테이너를 만듭니다. 기존 Redis 인스턴스를 사용하려는 경우 AddConnectionString 메서드를 사용하여 기존 연결 문자열을 참조할 수 있습니다. 자세한 내용은 기존 리소스 참조를 참조하세요.

.NET .NET Aspire 통합

.NET .NET Aspire 통합은Redis 또는 PostgreSQL같은 인기 있는 서비스 및 플랫폼에 대한 연결을 간소화하도록 설계된 NuGet 패키지입니다. .NET .NET Aspire 통합은 상태 검사 및 원격 분석 추가와 같은 표준화된 구성 패턴을 통해 많은 클라우드 네이티브 문제를 처리합니다. 통합은 두 가지 측면이 있습니다. 하나는 연결하려는 서비스를 나타내고, 다른 하나는 client 또는 그 서비스의 소비자를 나타냅니다. 즉, 각 호스팅 패키지에 대해 서비스 연결을 처리하는 해당 client 패키지가 있습니다.

각 통합은 오케스트레이션과 함께 작동하도록 설계되었으며, 명명된 리소스를 참조하여 의 구성 요소가 자동으로 삽입됩니다. 즉, Example.ServiceFoo Example.ServiceBar참조하는 경우 Example.ServiceFoo 통합의 필수 구성을 상속하여 서로 자동으로 통신할 수 있도록 합니다.

예를 들어 .NET.NET Aspire Service Bus 통합을 사용하여 다음 코드를 고려합니다.

builder.AddAzureServiceBusClient("servicebus");

AddAzureServiceBusClient 메서드는 다음과 같은 문제를 처리합니다.

  • DI 컨테이너에서 ServiceBusClient에 연결용으로 Azure Service Bus을(를) 싱글톤으로 등록합니다.
  • 코드를 통해 직접 또는 구성을 통해 인라인으로 ServiceBusClient 구성값을 적용합니다.
  • Azure Service Bus 사용과 관련된 상태 검사, 로깅 및 원격 분석을 활성화합니다.

사용 가능한 통합의 전체 목록은 .NET.NET Aspire 통합 개요 페이지에 자세히 설명되어 있습니다.

프로젝트 템플릿 및 도구

.NET Aspire Visual Studio, Visual Studio Code및 .NET CLI위한 프로젝트 템플릿 및 도구 환경 집합을 제공합니다. 이러한 템플릿은 .NET.NET Aspire 프로젝트를 만들고 상호 작용하는 데 도움이 되도록 설계되었습니다. 템플릿은 의견을 제시하며 빠르게 시작하는 데 도움이 되는 기본값 집합을 제공합니다. 여기에는 원격 분석, 상태 검사 및 서비스 검색과 같은 클라우드 네이티브 앱에 공통적인 상용구 코드 및 구성이 포함됩니다. 자세한 내용은 템플릿 참조하세요.

.NET .NET Aspire 템플릿에는 일반적인 서비스 구성을 처리해주는 보일러플레이트 확장 메서드도 포함됩니다.

builder.AddServiceDefaults();

AddServiceDefaults 수행하는 작업에 대한 자세한 내용은 .NET.NET Aspire 서비스 기본값참조하세요.

Program.cs 파일에 추가된 경우 위의 코드는 다음과 같은 문제를 처리합니다.

  • OpenTelemetry: ASP.NET Core, gRPC 및 HTTP에 대한 형식 있는 로깅, 런타임 메트릭, 내장 미터 및 추적을 설정합니다. 자세한 내용은 .NET.NET Aspire 원격 분석참조하세요.
  • 기본 상태 검사: 도구가 앱을 모니터링하기 위해 쿼리할 수 있는 기본 상태 검사 엔드포인트를 추가합니다. 자세한 내용은 C# 앱 상태 검사를 참조하세요.
  • 서비스 검색: 앱에 대한 서비스 검색 사용하도록 설정하고 그에 따라 HttpClient 구성합니다.

다음 단계