Compartilhar via


visão geral do Aspire

Aspire fornece ferramentas, modelos e pacotes para criar aplicativos distribuídos observáveis e prontos para produção. No centro está o modelo de aplicativo — uma fonte única de verdade com prioridade no código que define os serviços, os recursos e as conexões do aplicativo.

Aspirefornece uma cadeia de ferramentas unificada: inicie e depure todo o aplicativo localmente com um comando e, em seguida, implante em qualquer lugar,Kubernetes na nuvem ou em seus próprios servidores, usando a mesma composição.

A extensibilidade é um foco fundamental. AspireAs APIs são projetadas para que você possa adaptar a plataforma à sua infraestrutura, serviços e fluxos de trabalho.

Principais capacidades

  • Orquestração do AppHost: Definir serviços, dependências e configuração no código.
  • Integrações avançadas: Pacotes NuGet para serviços populares com interfaces padronizadas.
  • Ferramentas consistentes: Modelos de projeto e experiências para Visual Studioo VS Code e a CLI.

Para obter as informações oficiais de suporte, consulte a Aspire Política de Suporte.

O AppHost

AspireO AppHost é onde você define os serviços e as dependências do aplicativo no código, sem necessidade de arquivos de configuração complexos. O AppHost fornece orquestração para seu ambiente de desenvolvimento local simplificando o gerenciamento de descoberta de serviços, variáveis de ambiente e configurações de contêiner.

Imagine uma arquitetura comum de três camadas: um front-end, que depende de uma API, que se conecta a um banco de dados. Em Aspire, essa topologia é representada no AppHost, conforme mostrado no código a seguir:

var builder = DistributedApplication.CreateBuilder(args);

// Add database service
var postgres = builder.AddPostgres("db")
    .AddDatabase("appdata")
    .WithDataVolume();

// Add API service and reference dependencies
var api = builder.AddProject<Projects.ApiService>("api")
    .WithReference(postgres)
    .WaitFor(postgres);

// Add frontend service and reference the API
var frontend = builder.AddProject<Projects.Frontend>("frontend")
    .WithReference(api);

builder.Build().Run();

O AppHost auxilia nas seguintes preocupações:

  • Composição do aplicativo: especifique os projetos, contêineres, executáveis e recursos de nuvem que compõem seu aplicativo.
  • Gerenciamento de cadeia de conexão e descoberta de serviço: injeta automaticamente as cadeias de conexão corretas e as configurações de rede.

É importante observar que a orquestração do Aspire se concentra em aprimorar a experiência de desenvolvimento local. Não se destina a substituir sistemas de produção como Kubernetes, mas fornece abstrações que eliminam detalhes de implementação de baixo nível durante o desenvolvimento.

Para obter mais informações, consulte Aspire a visão geral da orquestração.

integrações Aspire

Aspire facilita a definição de tudo o que seu aplicativo precisa usando integrações — pacotes NuGet projetados para simplificar conexões com serviços e plataformas populares. Cada integração lida com a configuração de recursos de nuvem e fornece padrões padronizados para verificações de integridade, telemetria e configuração.

Os recursos que você pode integrar incluem:

  • Serviços de IA: modelos de linguagem grandes, pontos de extremidade de IA e serviços cognitivos.
  • Caches: Rediscaches na memória e soluções de cache distribuídas.
  • Contêineres: Docker contêineres para bancos de dados, agentes de mensagens e outros serviços.
  • Bancos de dados: SQL Server, PostgreSQL, , MySQLe MongoDBoutros armazenamentos de dados.
  • Executáveis: aplicativos de console, scripts e serviços em segundo plano.
  • Estruturas: aplicativos Web, APIs e microsserviços criados com várias estruturas.
  • Serviços de Mensagens: Azure Service Bus, , RabbitMQKafka e outros sistemas de mensagens.
  • Projetos: .NET projetos, Node.js aplicativos, Python serviços e muito mais.
  • Armazenamento: armazenamento de blobs, sistemas de arquivos e serviços de armazenamento em nuvem.

As integrações são de dois tipos: as integrações de "hospedagem" representam o serviço ao qual você está se conectando, enquanto as integrações "cliente" representam o consumidor desse serviço.

Tip

Por trás das cenas, uma integração de hosting pode representar um contêiner, um executável ou apenas um código C# que configura recursos sem executar um processo separado. Você pode adicionar qualquer imagem de contêiner, base de código, script ou recurso de nuvem ao AppHost. A criação de integrações reutilizáveis Aspire é semelhante à criação de componentes reutilizáveis para seus aplicativos.

Monitorar e solucionar problemas com o Aspire painel de controle

Aspire inclui um painel de desenvolvedor poderoso que fornece visibilidade em tempo real em seu aplicativo distribuído. O painel permite que você inspecione recursos, exiba logs, rastreamentos e métricas e gerencie os serviços do aplicativo, tudo de uma única interface do usuário.

Quando você executa seu Aspire aplicativo, o painel é iniciado automaticamente. É possível:

  • Veja todos os recursos do aplicativo e o status deles.
  • Investigue logs, rastros e métricas de qualquer serviço.
  • Inicie, interrompa ou reinicie os recursos diretamente do painel.
  • Visualize dependências e solucione problemas mais rapidamente.

O painel está disponível como parte de uma Aspire solução ou como uma ferramenta autônoma para qualquer aplicativo que emita OpenTelemetry dados.

Saiba mais na visão geral do painel ou aprofunde-se nos recursos e no uso do painel.

Do desenvolvimento à implantação

Ao compor seu aplicativo distribuído no AspireAppHost, você não está apenas definindo serviços para desenvolvimento local. Você está configurando a base para implantação. A mesma composição que você usa para executar e depurar localmente se torna o modelo para implantação em produção, garantindo a consistência do desenvolvimento até a produção.

Aspire fornece modelos de projeto e experiências de ferramentas para seus ambientes de desenvolvimento favoritos. Esses modelos incluem padrões predefinidos opinativos com código padrão para verificações de integridade, registro em log e telemetria. Os modelos também incluem padrões de serviço que lidam com configurações comuns:

builder.AddServiceDefaults();

Quando adicionado ao código C#, este método configura:

  • OpenTelemetry: log formatado, métricas de runtime e rastreamento para ASPCore, gRPC e HTTP.
  • Verificações de integridade: endpoints padrão que as ferramentas podem consultar para monitorar seu aplicativo.
  • Descoberta de serviço: habilita a descoberta de serviço e configura HttpClient adequadamente.

Para obter mais informações, consulte Aspire os padrões de serviço.

Considere como o exemplo de arquitetura de três camadas pode ser implantado em ambientes diferentes:

Resource Desenvolvimento local Azure AWS
Frontend npm run Azure Container Apps Serviço de Contêiner Elástico da Amazon
Serviço de API dotnet run Azure Container Apps AWS Lambda
Database docker.io/library/postgres Azure Banco de dados para PostgreSQL Serviço de Banco de Dados Relacional da Amazon

Tip

Estes são apenas alguns exemplos de como você pode implantar Aspire aplicativos.

AspireOs recursos de implantação são flexíveis e não interferem nos fluxos de trabalho existentes. Você pode continuar usando suas ferramentas e serviços preferenciais, beneficiando-se da topologia de aplicativo consistente definida em seu AppHost.

Para obter mais informações, consulte Implantar Aspire aplicativos.

Próximas etapas