Autore: Redazione ImpresaCity
Nello sviluppo delle app, il modello cloud è sempre più vincente, ma quali tecniche, tecnologie e strumenti di sviluppo innovativi si vanno affermando?
Nel panorama attuale delle business applications è ormai d’uso comune parlare di applicazioni cloud native. L’aggettivo “nativo per il cloud” definisce l’approccio col quale un’applicazione, quindi la sua architettura, viene progettata, implementata, eseguita e gestita all’interno di ambienti di cloud computing, sfruttandone l’elasticità e la natura distribuita. Ma come si realizzano applicazioni cloud-native? Le applicazioni tradizionali monolitiche risultano difficili da testare, scalare e manutenere, oltre ad avere un notevole footprint computazionale.
Di contro, gli applicativi cloud-native sono snelli, con un rapido startup time e si basano su un’architettura modulare, disaccoppiata, dove i componenti che la costituiscono (microservizi) sono specializzati e facili da mantenere, scalare e riutilizzare, oltre a permettere un’elevata densità applicativa sotto forma di containers sulle piattaforme cloud con conseguente compressione dei costi. Per definire un applicativo cloud-native, tuttavia, non è sufficiente basarsi sulla sua architettura. È necessario che vengano adottati strumenti e metodologie al servizio dell’applicazione tali per cui essa possa essere facilmente distribuita e gestita in maniera più resiliente e automatizzata possibile, indipendentemente dall’infrastruttura sottostante e sempre in maniera sicura. Tali strumenti possono essere middleware di comunicazione asincrona che vanno a colmare la “distanza” del disaccoppiamento in un’architettura EDA (Event Driven Architecture), database non relazionali ad oggetti o in memory con funzione di cache distribuita, software che consentano di connettere, gestire e monitorare applicativi basati su microservizi (vedi ServiceMesh), plugins che integrino la PaaS all’interno dell’IDE di sviluppo, meccanismi di provisioning applicativo di tipo Serverless che consentano allo stesso di reagire dinamicamente in base al demand, piuttosto che metodologie che investono tutto il ciclo di vita applicativo come il DevSecOps, in grado di “riunire intorno al tavolo di lavoro” i vecchi silos aziendali di Sviluppo, Operation e Sicurezza.
Questo grazie a pratiche ormai consolidate come la CI/CD, il monitoring e il testing, lo sviluppo di tipo API first, l’automazione su tutti i livelli, fino ad arrivare allo Shift-Left in ambito sicurezza che considera quest’ultima non più qualcosa di cui preoccuparsi alla fine o a contorno dello sviluppo applicativo, bensì come un requisito fondamentale che accompagni l’applicativo dall’inizio del suo concepimento fino a tutte le fasi del suo ciclo di vita, investendo il codice sorgente, i container che ospitano l’applicativo e quindi la piattaforma di orchestrazione, il networking, l’infrastruttura.
Quali le sfide principali che le aziende clienti si trovano ad affrontare nell’ambito dello sviluppo delle applicazioni e come vengono soddisfatte?
Anche l’approccio cloud-native presenta alcune sfide per le aziende che si pongono importanti obiettivi di innovazione, specialmente nelle fasi iniziali del percorso. Prima fra tutte i cambiamenti culturali e che riguardano la struttura organizzativa aziendale, la necessità di delineare figure professionali prima non esistenti, come per esempio il Responsabile DevOps, l’adozione di processi relativi al ciclo di vita differenti e più agili. Fondamentali anche le skills e la formazione richiesti su tecnologie e strumenti innovativi propri dei sistemi distribuiti e cloud che, data la velocità di evoluzione del mondo IT e un mercato sempre più agguerrito, non sono di facile reperimento. Spesso manca la proattività nel creare embrioni di competence center all’interno dell’azienda che si focalizzino e appassionino alle nuove tecnologie. Last but not least, una pianificazione adeguata delle risorse cloud necessarie e il monitoraggio continuo dei costi. Infatti, infrastrutture e strumenti cloud possono risultare molto onerosi soprattutto se acquistati on-demand e non tramite formule adeguate.
Tali sfide, con la giusta strategia e con la consapevolezza che si tratta di un'evoluzione continua basata sul feedback, possono essere superate in maniera positiva e molto remunerativa sul medio-lungo termine, specialmente laddove ci si avvalga del supporto di un trusted advisor tecnologico, il cui core business è anche quello di guidare le aziende lungo il percorso di trasformazione digitale.