Perché “Cloud-native” è anche “Green”

 

Il Cloud Computing, fin dalla definizione del NIST (National Institute for Standards and Technology) nel 2011 evidenziava novità profonde nell’IT, che fino ad allora aveva conosciuto al massimo Hosting e ASP (Application Server Provisioning: l’erogazione di SW applicativi da server remoti), via Internet.

Tra i principi fondamentali del Cloud Computing ricordiamo la Multi-Tenancy (la forte condivisione dello stesso HW e SW tra più aziende diverse) e l’Elasticità Rapida (l’uso delle sole risorse di volta in volta strettamente necessarie, attivandone di nuove solo nei momenti di picco e rilasciandole per altri usi o per lo spegnimento nelle pause). Ricordiamo che un server momentaneamente inattivo consuma comunque circa il 50% di energia rispetto al pieno utilizzo, perché il processore va tenuto in funzione assieme alla memoria per essere pronto a rispondere. Idle Server; What Does This Mean For Your Data Center? - Raritan

 

La nascita del termine “Cloud-native” Computing

Nonostante fossero chiare le peculiarità e i vantaggi del vero Cloud, per sfruttarle era necessario riprogettare radicalmente il software e la maggior parte delle aziende e dei programmatori ha preferito continuare con il semplice e tradizionale Hosting, chiamandolo Cloud solo per essere alla moda.

Da qualche anno si sta usando il termine “Cloud-native” per ristabilire la differenza con Hosting e ASP. Il merito va anche alla CNCF (Cloud Native Computing Foundation (cncf.io)) nata nel 2015 per diffondere questo nuovo paradigma attraverso l’open source, accumunando per la prima volta tutti i cloud provider mondiali, compresi quelli cinesi.

Per sfruttare tutti i vantaggi di una moderna piattaforma Cloud è necessario suddividere i tradizionali SW monolitici in micro-servizi relativamente autonomi che collaborano fra loro per mezzo di messaggi asincroni (come le mail) e API (Application Programming Interfaces) Standard, facilitando l’interoperabilità, il riutilizzo del software e l’uso efficiente delle risorse. Eventuali picchi di lavoro su un micro-servizio producono infatti delle temporanee code di messaggi in attesa di elaborazione, senza bloccare gli altri. Nel caso un micro-servizio diventi un vero collo di bottiglia, viene automaticamente replicato il numero di volte necessario per ridurre la lunghezza delle relative code, e quindi i tempi di attesa, sotto ad un limite prefissato. Con la multi-tenancy si ottiene anche il vantaggio della compensazione statistica di picchi e valli di attività tra utenti e aziende diverse.

Quasi contemporaneamente al termine “Cloud-native” si è diffuso anche “Edge-Computing” per indicare un’elaborazione parziale dei dati già in periferia dove sono prodotti e usati, e non solo nel Cloud.

Si parla sempre di più di architetture distribuite che servono, tra l’altro, anche a ridurre lo scambio di dati tra Cloud e periferia perché “anche i bit sono soggetti alla forza di gravità”. Questa frase paradossale sta ad indicare che per spostare anche un solo bit da Roma a Milano occorre del tempo (la velocità della luce è elevata ma non infinita) e dell’energia per alimentare gli apparati che tengono aperto il canale.

Si sta diffondendo finalmente un po’ di ecologia informatica, con concetti di minimizzazione del numero di componenti di un sistema (quello che non c’è, non si può rompere) e massimizzazione dell’uso degli stessi, perché un elaboratore sottoutilizzato consuma comunque energia, oltre a quella che ha richiesto per la sua produzione, trasporto e installazione. Un esempio nel settore IoT (Internet of Things) sono le moderne videocamere con Intelligenza Artificiale a bordo, recentemente anche all’interno dello stesso chip.

Un altro termine usato sempre più spesso è Serverless. Letteralmente “elaborazione senza server”, cosa tecnicamente paradossale, ma descrittiva del fatto che il programmatore si può concentrare sul codice, demandando la gestione dei server e la loro orchestrazione ad un servizio che adegua automaticamente l’uso delle risorse al carico di lavoro, fino allo spegnimento totale in caso di cessazione di ogni attività per un certo tempo, per esempio alla notte, e al riavvio automatico alla prima chiamata, con fortissimi risparmi energetici rispetto ai tradizionali data center.

 

Un esempio nel Retail

aKite, il SaaS per la gestione dei negozi rilasciato nel 2010 è stato il primo nel Retail ed ancora uno dei pochi ad essere progettato su questi principi.

L’architettura distribuita è stata necessaria per avere un POS che potesse funzionare anche sconnesso per le normali funzionalità come vendite, promozioni e fidelity. La progettazione efficiente consente di poter utilizzare anche l’HW più economico presente sul mercato. Il tutto naturalmente eliminando qualunque server di negozio.

Questa forma di Edge Computing ha anche il vantaggio di una maggiore velocità delle operazioni di vendita perché i dati sono locali. Inoltre si genera minor traffico in rete e si riduce il carico di lavoro sul Cloud dove, per mezzo dell’elasticità rapida, si usano solo le risorse strettamente indispensabili in ogni momento.

Per avere dati di vendita e giacenza di un’intera catena aggiornati in near-real-time in un sistema distribuito, è stata scelta la comunicazione attraverso messaggi asincroni. Quelli che transitano dalla sede verso i negozi consentono di avere i POS immediatamente aggiornati con nuovi prodotti, prezzi, clienti e di poter spegnere tutte le postazioni di Front e Back Store alla chiusura del PdV. Anche le postazioni che vengono attivate solo il fine settimana o nei momenti di punta hanno una coda sul Cloud in attesa di essere svuotata appena accese.

I sistemi di negozio di vecchia generazione spesso richiedono computer accesi anche di notte per scambiare dati con il centro. Agli ovvi sprechi energetici si aggiungono la degenerazioni di applicativi malfunzionanti e mai riavviati, maggiori rischi di attacchi informatici e di incendio a seguito di guasti particolarmente gravi.

Parlavo di efficienza energetica molti anni fa in aKite - Green-tailing ipotizzando risparmi fino al 90% rispetto a soluzioni tradizionali con server nei negozi. Nel frattempo l’efficienza energetica del Cloud è ulteriormente aumentata Cloud Computing Is Not the Energy Hog That Had Been Feared - The New York Times (nytimes.com)

Ora la necessità di essere “verdi” è ancora più evidente e condivisa. Un’informatica Verde perché Cloud-native fa bene al bilancio di ogni azienda, alla sua impronta ecologica, alla sua immagine aziendale … e al pianeta!