Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aspire fornisce strumenti, modelli e pacchetti per la creazione di app distribuite osservabili e pronte per la produzione. Al centro c'è il modello di app, una unica fonte di verità che definisce i servizi, le risorse e le connessioni dell'app.
Aspire offre una toolchain unificata: avviare ed eseguire il debug dell'intera app in locale con un comando, quindi distribuirlo ovunqueKubernetes, nel cloud o nei propri server, usando la stessa composizione.
L'estendibilità è un obiettivo principale. AspireLe API sono progettate in modo da poter adattare la piattaforma all'infrastruttura, ai servizi e ai flussi di lavoro.
Funzionalità chiave
- Orchestrazione di AppHost: Definire servizi, dipendenze e configurazione nel codice.
- Integrazioni avanzate: Pacchetti NuGet per i servizi più diffusi con interfacce standardizzate.
- Strumenti coerenti: Modelli ed esperienze di progetto per Visual Studio, VS Code e l'interfaccia della riga di comando.
Per informazioni ufficiali sul supporto, vedere i Aspire criteri di supporto.
The AppHost
AspireAppHost è la posizione in cui definisci i servizi e le dipendenze dell'app nel codice, senza file di configurazione complessi necessari. AppHost offre l'orchestrazione per l'ambiente di sviluppo locale semplificando la gestione dell'individuazione dei servizi, delle variabili di ambiente e delle configurazioni dei contenitori.
Immagine di un'architettura a tre livelli comune: un front-end, che dipende da un'API, che si connette a un database. In Aspirequesta topologia è rappresentata in AppHost, come illustrato nel codice seguente:
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();
AppHost supporta i problemi seguenti:
- Composizione dell'app: specificare progetti, contenitori, eseguibili e risorse cloud che costituiscono l'applicazione.
- Individuazione dei servizi e gestione delle stringhe di connessione: inserire automaticamente le stringhe di connessione e le configurazioni di rete corrette.
È importante notare che Aspire l'orchestrazione si concentra sul miglioramento dell'esperienza di sviluppo locale. Non è progettato per sostituire sistemi di produzione come Kubernetes, ma fornisce astrazioni che eliminano i dettagli di implementazione di basso livello durante lo sviluppo.
Per altre informazioni, vedere Aspire Panoramica dell'orchestrazione.
integrazioni Aspire
Aspire semplifica la definizione di tutte le esigenze dell'app usando le integrazioni: i pacchetti NuGet progettati per semplificare le connessioni ai servizi e alle piattaforme più diffusi. Ogni integrazione gestisce la configurazione delle risorse cloud e fornisce modelli standardizzati per controlli di integrità, telemetria e configurazione.
Le risorse che è possibile integrare includono:
- Servizi di intelligenza artificiale: modelli linguistici di grandi dimensioni, endpoint di intelligenza artificiale e servizi cognitivi.
- Cache: Redis, cache in memoria e soluzioni di memorizzazione nella cache distribuite.
- Contenitori: Docker contenitori per database, broker di messaggi e altri servizi.
- Database: SQL Server, PostgreSQL, MySQLMongoDB, e altri archivi dati.
- Eseguibili: applicazioni console, script e servizi in background.
- Framework: applicazioni Web, API e microservizi creati con diversi framework.
- Servizi di messaggistica: Azure Service Bus, , RabbitMQKafka e altri sistemi di messaggistica.
- Progetti: .NET progetti, Node.js applicazioni, Python servizi e altro ancora.
- Archiviazione: archiviazione BLOB, file system e servizi di archiviazione cloud.
Le integrazioni hanno due componenti: le integrazioni "hosting" rappresentano il servizio a cui ci si connette, mentre le integrazioni "client" rappresentano il cliente di tale servizio.
Tip
Un'integrazione dell'hosting può rappresentare un contenitore, un eseguibile o anche solo codice C# che configura le risorse senza eseguire un processo separato. È possibile aggiungere qualsiasi immagine del contenitore, codebase, script o risorsa cloud a AppHost. La creazione di integrazioni riutilizzabili Aspire è simile alla creazione di componenti riutilizzabili per le app.
Monitorare e risolvere i problemi con il Aspire dashboard
Aspire include un potente dashboard per sviluppatori che offre visibilità in tempo reale nell'app distribuita. Il dashboard consente di esaminare le risorse, visualizzare log, tracce e metriche e gestire i servizi dell'app, tutti da un'unica interfaccia utente.
Quando si esegue l'app Aspire , il dashboard viene avviato automaticamente. È possibile:
- Visualizzare tutte le risorse dell'app e il relativo stato.
- Analizzare i log, le tracce e le metriche di qualsiasi servizio.
- Avviare, arrestare o riavviare le risorse direttamente dal dashboard.
- Visualizzare le dipendenze e risolvere i problemi più velocemente.
Il dashboard è disponibile sia come parte di una Aspire soluzione che come strumento autonomo per qualsiasi app che genera OpenTelemetry dati.
Per altre informazioni, vedere la panoramica del dashboard o approfondire le funzionalità e l'utilizzo del dashboard.
Dallo sviluppo alla distribuzione
Quando si compone l'app distribuita in AspireAppHost, non si definiscono solo i servizi per lo sviluppo locale, ma si configurano le basi per la distribuzione. La stessa configurazione usata per l'esecuzione e il debug in locale diventa lo schema per la distribuzione in produzione, garantendo la coerenza dallo sviluppo ad ambiente di produzione.
Aspire offre modelli di progetto ed esperienze di strumenti per gli ambienti di sviluppo preferiti. Questi modelli includono valori predefiniti preconfezionati con codice boilerplate per controlli di integrità, log e telemetria. I modelli includono anche le impostazioni predefinite del servizio che gestiscono configurazioni comuni:
builder.AddServiceDefaults();
Quando viene aggiunto al codice C#, questo metodo configura:
- OpenTelemetry: registrazione formattata, metriche di runtime e traccia per ASPCore, gRPC e HTTP.
- Controlli di integrità: endpoint predefiniti su cui gli strumenti possono eseguire query per monitorare l'app.
- Individuazione dei servizi: abilita l'individuazione dei servizi e configura di HttpClient conseguenza.
Per altre informazioni, vedere Aspire Impostazioni predefinite del servizio.
Si consideri il modo in cui l'esempio di architettura a tre livelli può essere distribuito in ambienti diversi:
| Resource | Sviluppo locale | Azure | AWS |
|---|---|---|---|
| Frontend | npm run |
Azure Container Apps | Amazon Elastic Container Service |
| Servizio API | dotnet run |
Azure Container Apps | AWS Lambda |
| Database | docker.io/library/postgres |
Azure Database per PostgreSQL | Amazon Relational Database Service |
Tip
Questi sono solo alcuni esempi di come distribuire Aspire le app.
AspireLe funzionalità di distribuzione sono flessibili e non interferiscono con i flussi di lavoro esistenti. È possibile continuare a usare gli strumenti e i servizi preferiti sfruttando al tempo stesso la topologia coerente dell'app definita in AppHost.
Per ulteriori informazioni, consultare Distribuzione Aspire delle app.