Scopri come potenziare lo sviluppo con .NET Aspire, assicurandoti la persistenza dei dati in ambiente di sviluppo.
È assodato che ogni sviluppatore desideri ottenere il meglio dal proprio ambiente di sviluppo, in particolare quando si utilizzano architetture basate su contenitori e servizi cloud. Ecco perché l’aspetto della persistence dei dati nelle applicazioni diventa fondamentale, specialmente durante le fasi di sviluppo.
Quando si opera con applicazioni che fanno largo uso di database e servizi di storage, come PostgreSQL o Azure Storage Blobs e Queues, è comune l’esigenza di mantenere inalterato lo stato dei dati tra una sessione e l’altra. Nell’ambito di .NET Aspire Preview 2, questa esigenza si concretizza nella necessità di replicare i dati in modo persistente, evitando di ripartire da zero a ogni riavvio dell’applicazione.
Il segreto per ottenere persistenza dei dati con .NET Aspire sta nel montare i volumi nei container in cui le applicazioni memorizzano i dati. Per esempio, utilizzando PostgreSQL in locale all’interno di un contenitore Docker, è possibile configurare il montaggio di un volume per il directory dei dati del database:
.WithVolumeMount("./data/postgres", "/var/lib/postgresql/data", VolumeMountType.Bind);
Una soluzione analoga si applica all’utilizzo dell’emulatore di Azure Storage, Azurite, anch’esso basato su contenitori, attraverso la quale si realizza un percorso di dati condiviso tra il host e il container:
.WithAnnotation(new VolumeMountAnnotation("./data/azurite", "/data", VolumeMountType.Bind));
Importante è effettuare questa operazione solamente in ambiente di sviluppo locale, dal momento che in produzione si dovrebbero utilizzare i servizi Azure nativi senza montaggi di volume. Attenzione, inoltre, a non includere i percorsi di dati nel versionamento del codice sorgente, inclusi accidentalmente nel .gitignore
.
Introducendo queste configurazioni nel workflow dello sviluppatore, non solo si guadagna in efficienza mantenendo lo stato dell’applicazione tra una sessione e l’altra, ma si garantisce anche una maggior coerenza con l’ambiente di produzione, soprattutto grazie all’emulazione fidata proposta da Azurite.