L’avvento del cloud computing ha messo dinanzi agli occhi degli sviluppatori, dei professionisti, delle aziende e degli utenti finali, scenari mai visti in precedenza. I progressi compiuti a livello di infrastruttura cloud hanno permesso di sviluppare applicazioni evolute, a loro volta base su microservizi flessibili, scalabili e portatili.
D’altra parte, però, gli sviluppatori hanno progressivamente registrato una crescente complessità nella gestione dell’infrastruttura e la mancanza di visibilità sulle risorse che compongono le loro applicazioni. Ostacoli rilevanti che pongono un freno alla produttività.
Per gli operatori, la mancanza di standardizzazione e automazione nel processo di distribuzione delle applicazioni può avere come conseguenza la perdita di controllo sull’infrastruttura e portare a una certa perdita di fiducia nelle applicazioni distribuite.
Cos’è Radius, la piattaforma aperta per collaborare sullo sviluppo e sulla distribuzione delle applicazioni in-cloud
Per rispondere alle sfide di oggi e di domani, Microsoft ha presentato Radius, una piattaforma open source che offre supporto integrato per alcuni degli strumenti di sviluppo di app più popolari come Dapr e linguaggi IaC (Infrastructure as Code) come Terraform e Bicep.
L’azienda di Redmond osserva che le moderne applicazioni sono molto più che semplici elenchi di risorse da utilizzare. Radius vuole quindi incontrare sviluppatori e operatori lì dove si trovano oggi adattandosi alle attività di sviluppo esistenti e alle pipeline CI/CD (Continuous Integration/Continuous Deployment), insieme di pratiche e strumenti che consentono agli sviluppatori di automatizzare il processo di integrazione, test e distribuzione del codice di programmazione.
Radius aiuta gli sviluppatori a comprendere meglio tutti i componenti che compongono le loro applicazioni e si prende cura delle configurazioni della piattaforma come autorizzazioni, stringhe di connessione e altro per semplificare l’attività quotidiana. Gli operatori possono a loro volta assicurarsi che tutte le applicazioni siano distribuite in conformità con le politiche organizzative, quindi utilizzare Radius per gestire ciascuna applicazione e le sue risorse.
Come funziona la piattaforma
L’immagine seguente rende molto più chiaro cos’è Radius e come funziona. La piattaforma, progettata dal team Microsoft Azure Incubations, consente a sviluppatori e ingegneri di collaborare nella distribuzione e gestione di applicazioni cloud-native, attenendosi alle best pratice più efficaci.
Come si vede nello schema riportato di seguito, Radius supporta la distribuzione di applicazioni su diversi ambienti cloud, inclusi cloud privati, Microsoft Azure e Amazon Web Services (AWS). La sua architettura è pensata per essere multi-cloud fin dalla fase di progettazione. Inoltre, si integra con tecnologie consolidate come Kubernetes, ampiamente utilizzato per orchestrare container e gestire applicazioni distribuite. Supporta inoltre, come accennato in precedenza, strumenti di infrastruttura esistenti come Terraform e Bicep.
Il nuovo software Microsoft fornisce un prezioso ausilio per comprendere appieno il funzionamento delle applicazioni, andando oltre le funzionalità fornite da Kubernetes. Consente agli sviluppatori di visualizzare tutti i componenti di ciascuna applicazione e si occupa automaticamente delle connessioni quando nuovi componenti vengono aggiunti al progetto.
Radius si occupa inoltre di garantire che l’infrastruttura cloud utilizzata dalle applicazioni rispetti requisiti di costo, operativi e di sicurezza. Questi requisiti sono definiti attraverso “ricette” create dagli operatori IT, ingegneri di piattaforma e ingegneri di sicurezza. Il sistema lega un’applicazione alla sua infrastruttura correlata, consentendo una visualizzazione chiara delle interconnessioni tra applicazione e infrastruttura.
I campi applicativi
Una delle caratteristiche chiave di Radius è la sua capacità di fornire un’esperienza coerente con diverse piattaforme, che si tratti di cloud provider differenti o di infrastrutture on-premises. Questo significa che le applicazioni definite e gestite con Radius possono essere distribuite ed eseguite su qualsiasi cloud utilizzando gli stessi strumenti, garantendo coerenza nei flussi di lavoro di sviluppo.
Un esempio concreto: un’applicazione che utilizza un database Mongo può essere sviluppata e testata localmente con un container Mongo. Quando è il momento di passare in produzione, utilizzando Radius gli sviluppatori possono facilmente cambiare le risorse dell’applicazione, ad esempio connettendosi a servizi come Azure CosmosDB o AWS DocumentDB, senza modificare il codice.
La collaborazione tra sviluppatori e operatori è semplificata grazie alle “ricette” di Radius: esse consentono di configurare modelli di codice per l’infrastruttura (come moduli Terraform e file Bicep). I modelli possono essere utilizzati dagli sviluppatori per la distribuzione self-service delle risorse, riducendo la necessità di passaggi manuali che rallentano lo sviluppo.
Le ricette consentono anche agli operatori di definire e far rispettare politiche aziendali, come la configurazione delle risorse cloud e i permessi di distribuzione. I programmatori possono così concentrarsi sul codice dell’applicazione senza preoccuparsi dei dettagli dell’infrastruttura sottostante.
Maggiori informazioni sul progetto Radius sono disponibili nella nota pubblicata dal team di Microsoft e nell’articolo Enabling developer collaboration with Radius.