loading experience

.NET

Aspire: orchestrare applicazioni distribuite in sviluppo

API, database, cache e code avviati insieme con un solo comando, con cruscotto di log e tracce incluso.

Aspire: orchestrare applicazioni distribuite in sviluppo

Un'applicazione moderna raramente è un solo progetto: un'API, un frontend, un database, una cache, magari una coda. Avviarli tutti, collegarli e capire cosa succede tra loro è faticoso. Aspire (nato come .NET Aspire) risolve proprio questo.

L'AppHost avvia e collega tutte le risorse, il cruscotto le osserva.
L'AppHost avvia e collega tutte le risorse, il cruscotto le osserva.

L'AppHost

Un progetto speciale descrive in C# le risorse dell'applicazione e come sono collegate:

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache");
var db = builder.AddPostgres("postgres").AddDatabase("catalogo");

var api = builder.AddProject<Projects.Catalogo_Api>("api")
    .WithReference(db)
    .WithReference(cache);

builder.AddProject<Projects.Negozio_Web>("web")
    .WithReference(api);

builder.Build().Run();

All'avvio Aspire crea i container necessari, passa ai progetti le stringhe di connessione e gli indirizzi dei servizi, e apre un cruscotto.

Il cruscotto

Log, tracce distribuite e metriche di tutti i servizi in un'unica interfaccia. Si vede una richiesta attraversare frontend, API e database, con i tempi di ogni passaggio: trovare un collo di bottiglia diventa questione di minuti.

Service defaults

Un progetto condiviso applica a tutti i servizi le stesse impostazioni di base: OpenTelemetry, health check, resilienza delle chiamate HTTP e scoperta dei servizi. Ogni progetto lo attiva con una riga, builder.AddServiceDefaults().

E in produzione?

Aspire nasce soprattutto per lo sviluppo locale, ma il modello dell'applicazione può essere usato per generare la configurazione di deploy verso container e cloud. Anche senza usarlo in produzione, il guadagno nella fase di sviluppo e nei test di integrazione è notevole.

Commenti (0)

Nessun commento ancora.

Lascia un commento