Il team Azure Incubations di Microsoft ha annunciato Radius, una piattaforma cloud-native e open-source per permettere a sviluppatori e amministratori di collaborare per sviluppare applicazioni multi-cloud.
Radius offre un set di tool per lo sviluppo standardizzato delle applicazioni e la gestione automatica delle risorse del cloud, garantendo agli sviluppatori e agli amministratori una visione completa dell'intera architettura. Con la piattaforma gli sviluppatori possono sviluppare il software una sola volta ed eseguirlo su ogni infrastruttura, sia on-premise che in cloud, anche all'edge.
Radius offre supporto built-in per tool di sviluppo come Dapr e per linguaggi di Infrastructure as Code (IaC come Terraform e Bicep. La piattaforma si integra all'ambiente di sviluppo e alle pipeline CI/CD esistenti per gestire l'esecuzione delle applicazioni su Kubernetes, Azure, AWS, Google Cloud e Alibaba Cloud occupandosi di configurare in automatico permessi e stringhe di connessione, sollevando gli sviluppatori da questi task.
Gli amministratori del cloud possono inoltre usare Radius per gestire le applicazioni in esecuzione sugli ambienti e le risorse in uso.
Esperienza cross-platform e multi-cloud provider
Una delle principali feature di Radius è la possibilità di eseguire le applicazioni sviluppate sulla piattaforma su ogni cloud e on-premise usando lo stesso set di tool, comprese le definizioni e i workflow di sviluppo, in maniera agnostica.
La piattaforma consente di integrare il software con altri servizi come Redis, Mongo, Dapr e SQL, ai quali se ne aggiungeranno altri in base ai feedback della community.
Nel caso di un'applicazione che sfrutta un database SQL, in locale gli sviluppatori possono usare un container SQL e poi passare a un database ad alto rendimento nel passaggio in produzione. Invece di modificare il codice e le connessioni, Radius consente di modellare una risorsa SQL e utilizzare la sua stringa di connessione durante le fasi di sviluppo e di test.
Al momento del rilascio in produzione, gli sviluppatori possono aggiornare le risorse dell'applicazione cambiando solo le connessioni della definizione dell'applicazione per collegarsi a servizi come Azure SQL DB o AWS RDS.
Configurazione automatica degli ambienti e gestione delle risorse
Un altro modulo centrale di Radius, disponibile nella prima release, è Recipes, un servizio che semplifica e velocizza la comunicazione tra sviluppatori e amministratori cloud per la gestione delle risorse e la configurazione degli ambienti.
Gli amministratori possono definire delle "Recipe", template IaC che gli sviluppatori possono usare per accedere alle risorse autonomamente; Recipes, inoltre, consente agli amministratori di applicare policy sulle risorse cloud che possono essere usate, come sono configurate e chi può eseguire applicazioni.
Questo livello di automazione garantisce ad amministratori e sviluppatori che le applicazioni cloud siano eseguite sempre secondo le policy dell'organizzazione. Per esempio, un amministratore può imporre come requisiti di produzione l'uso di minimo due nodi e minimo due repliche, oppure specificare che la cache deve essere distribuita in una regione specifica.
Una volta definita la Recipe, gli sviluppatori possono utilizzarla per distribuire un'applicazione senza doversi preoccupare della correttezza delle configurazioni.
Radius application graph
La piattaforma migliora anche la visibilità delle risorse in uso per permettere agli amministratori di assicurarsi che le applicazioni rispettino i requisiti di costo, operatività e sicurezza.
Radius mette a disposizione l'application graph, una rappresentazione della struttura dell'applicazione che include ambienti, gruppi di risorse e connessioni. Il grafico applicativo mostra come il software e l'infrastruttura sono interconnessi.
Inoltre, la piattaforma si integra con strumenti come Terraform e con i sistemi CI/CD esistenti, come GitHub Actions, per offrire un'esperienza di gestione senza soluzione di continuità.
L'obiettivo di Azure Incubations è di migliorare lo sviluppo e la gestione di applicazioni cloud con l'open-source. Il progetto è stato proposto per entrare a far parte del Cloud Native Computing Foundation, il progetto di Linux Foundation che ha l'obiettivo di sviluppare ecosistemi sostenibili per il software cloud-native.