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
Utilizzare la libreria Benchmark.NET per misurare le performance
Determinare lo stato di un pod in Kubernetes
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Eseguire attività basate su eventi con Azure Container Jobs
Inizializzare i container in Azure Container Apps
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Utilizzare gli snapshot con Azure File shares
Utilizzare politiche di resiliency con Azure Container App
Utilizzare la session affinity con Azure Container Apps
Generare file per il download da Blazor WebAssembly
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Creare alias per tipi generici e tuple in C#