Azure Container Apps è una piattaforma di cloud computing di Microsoft che consente di creare, distribuire e gestire applicazioni in container. Utilizza Kubernetes in maniera trasparente ed offre una gestione semplificata delle operazioni. Con Azure Container Apps, non è necessario preoccuparsi della configurazione e della gestione dei nodi di Kubernetes, poiché la piattaforma di Microsoft gestisce queste attività per conto dell'utente. Ciò significa che gli sviluppatori possono concentrarsi sulla creazione e il deploy delle loro app, senza doversi preoccupare delle complessità tecniche di Kubernetes.
Tra i motivi che ci spingono ad utilizzare i container ci possono essere anche la necessità di astrarre dal fornitore di cloud senza doverci preoccupare di utilizzare SDK per ogni database, coda o servizio specifico. Viene in auto Dapr, un runtime open-source che aiuta a semplificare lo sviluppo di microservizi e applicazioni distribuite. Fornisce una serie di componenti predefiniti per facilitare la gestione delle attività comuni, come la gestione dei messaggi, dei dati e della scalabilità, che sono spesso complesse quando si lavora con applicazioni distribuite. Questo significa che è possibile utilizzare le stesse componenti e funzionalità su più cloud, rendendo più semplice la transizione da un cloud all'altro o la distribuzione su più cloud.
Possiamo sfruttare Dapr all'interno di Azure Container Apps con poco sforzo, senza rincorrere file yaml di configurazione. Prima di tutto dobbiamo andare nell'environment ed accedere alla sezione Dapr components. Qua troviamo centralizzati tutti i componenti che vogliamo sfruttare, dal database fino alle code. Premendo Add possiamo indicare e configurare uno o più componenti, come nel caso seguendo dove configuriamo Cosmos DB.
Troviamo la documentazione sui nomi e sui metadati direttamente sul sito https://docs.dapr.io/reference/components-reference/. Queste informazioni non dipendono da Container Apps ma Dapr stesso. Salviamo e ci ritroviamo con tutti i componenti configurati a livello dell'intero ambiente.
A questo punto non ci resta che andare nelle app dove vogliamo usufruire dei componenti. Nella sezione Dapr troviamo la possibilità di abilitarlo e di impostare alcune configurazioni, tra cui un identificativo univoco, il tipo di protocollo e il tipo di logging da effettuare.
Scegliere il protocollo dipende da noi e da come ci mettiamo in ascolto sugli eventi, come quelli forniti dalle code. In generale, usare GRPC ci permette di essere più veloci.
A questo punto rimane un ultimo passaggio da effettuare. Abilitare il componente all'app, perché vanno indicati in maniera puntuale gli scope. Infatti, a seconda dell'app possiamo usare provider differenti oppure limitare la visibilità solo da alcuni. Torniamo quindi sull'environment, andiamo in modifica sul componente e indichiamo nella sezione scope la visibilità alla nostra app.
Non ci resta che avviare la nostra app e se abbiamo utilizzato nomi e SDK nella maniera corretta, potremo dialogare con i componenti. In caso di problemi, consigliamo di consultare il log, il quale riporta ogni problematica di comunicazione.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Migrate and Modernize your .NET Applications on Azure
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Eliminare una project wiki di Azure DevOps
Potenziare Azure AI Search con la ricerca vettoriale
Filtering sulle colonne in una QuickGrid di Blazor
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Aggiungere interattività lato server in Blazor 8
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Utilizzare Azure Cosmos DB con i vettori
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core