Nonostante siano così importanti, per non fallire, i nuovi approcci di business resi possibili dalla digital transformation devono poter poggiare su solide basi e fondarsi su un’infrastruttura IT dotata di un’architettura applicativa moderna: in altre parole, un’architettura ‘cloud-native’. Quest’ultima, infatti, rispetto a quella tradizionale, spesso costituita da applicazioni monolitiche, complesse e costose da gestire, può consentire al reparto IT aziendale di beneficiare di vantaggi strategici di sviluppo e amministrazione applicativa. Vantaggi che oggi si rivelano essenziali per rendere l’attività di business più agile, produttiva e rispondente alle attuali esigenze imprenditoriali, in continuo mutamento anche nel campo del software.
Un’architettura cloud native è appositamente costruita per funzionare sfruttando i principi e le caratteristiche intrinseche del cloud. In primo luogo, quindi, fornisce la capacità di disaccoppiare il funzionamento di una data applicazione software dalla sua stretta appartenenza e dipendenza da una particolare infrastruttura hardware. Questa stretta dipendenza si verifica, tipicamente, con le classiche legacy application, installate nei data center aziendali: applicazioni enterprise come quelle del settore bancario, ancora funzionanti su mainframe datati. Queste app, che necessitano assolutamente di application modernization, in genere sono caratterizzate da una struttura software monolitica, scritte in linguaggi altrettanto datati, come il Cobol, e difficili da modificare per riuscire a supportare, ad esempio, gli odierni requisiti di scalabilità, e di aggiornamento continuo delle funzionalità e della sicurezza.
Anche la Cloud Native Computing Foundation (CNCF) fornisce una propria definizione di cloud native computing: “Le tecnologie cloud native abilitano le organizzazioni a costruire e far funzionare applicazioni scalabili in ambienti moderni e dinamici, come i cloud privati e ibridi. Container, mesh di servizi, microservizi, infrastruttura immutabile, ed API (application programming interface) dichiarative esemplificano tale approccio. Queste tecniche permettono di realizzare sistemi resilienti, gestibili e osservabili e, combinate con una forte automazione, consentono agli ingegneri di effettuare modifiche ad elevato impatto in modo frequente e predicibile, con un lavoro minimo”.
La realizzazione di applicazioni native per il cloud può basarsi sull’utilizzo di differenti tecnologie di virtualizzazione, che, a seconda delle necessità aziendali e degli specifici requisiti tecnici da soddisfare, includono le macchine virtuali, i container, le piattaforme serverless e software di orchestrazione di vario tipo. Al di là però di quali di questi strumenti vengano di volta in volta scelti, l’approccio basilare adottato nella costruzione di un’architettura cloud-native è scomporre le applicazioni in microservizi, cioè singoli servizi indipendenti, ciascuno dei quali in grado di eseguire un processo applicativo, e di comunicare con gli altri tramite API.
Usare strumenti di virtualizzazione come i container e improntare lo sviluppo applicativo sul paradigma dei microservizi permette alle imprese di soddisfare tutti i requisiti chiave attualmente richiesti nei moderni processi di sviluppo del software, compresa la realizzazione di applicazioni per l’uso anche in ambiente mobile. In particolare, migrando verso il paradigma cloud-native è possibile: