Container e Kubernetes, forza propulsiva delle applicazioni future

Unità standard di software, i container uniscono in un solo pacchetto il codice e tutte le sue dipendenze di un'applicazione.

data management snapshot Processi aziendali

Container e Kubernetes rappresentano la forza propulsiva delle applicazioni future per promuovere l’efficienza IT delle aziende: il pensiero di Umberto Galtarossa, Partner Technical Manager di Pure Storage. I container sono unità standard di software che riuniscono in un unico pacchetto il codice e tutte le sue dipendenze. In modo che un’applicazione possa funzionare in modo rapido e affidabile da un ambiente all’altro. I container semplificano il rollout delle applicazioni basate su cloud dal momento che contengono all’interno di pacchetti gestibili tutte le informazioni necessarie per eseguirle.

L’importanza della centralità dei dati

I dati sono il cuore delle aziende di oggi e di domani. Le organizzazioni digitali all’avanguardia usano un nuovo stack tecnologico “cloud-native” per trasformare questi dati in valore e insight. Le applicazioni cloud-native sono appositamente progettate per funzionare da subito in modalità cloud-like. Indipendentemente dal fatto che risiedano effettivamente nel cloud pubblico piuttosto che on-premises. Possono essere installate e perfezionate più rapidamente, e possono essere spostate tra ambienti differenti con più facilità.

Le applicazioni cloud-native sono generalmente composte da microservizi e pacchettizzate all’interno di container. I container rendono efficiente il funzionamento di applicazioni disgregate ad alti livelli di scala e fluidità con un overhead minimo. Kubernetes si occupa dell’orchestrazione machine-driven che gestisce tutti questi frammenti di applicazioni assemblandoli in un’applicazione che viene composta come necessario.

Microservizi e container, connubio perfetto

Detto in maniera semplice, i microservizi sono le funzioni individuali all’interno di un’applicazione. E formano la base di un nuovo approccio architetturale alla realizzazione delle applicazioni stesse. I microservizi permettono ai team IT di creare e far funzionare più facilmente le applicazioni che gli utenti desiderano e di cui hanno bisogno per superare la concorrenza. Molte delle più grandi applicazioni enterprise e consumer di oggi funzionano a microservizi. A dimostrazione del fatto che questo non è un trend riservato solamente alle piccole aziende ma anche a quelle più grandi e complesse. In realtà, più grande è l’organizzazione, maggiori sono i benefici derivanti dall’adozione dei microservizi.

La forza propulsiva delle applicazioni future: container e Kubernetes

Quando è stata l’ultima volta che il vostro servizio di streaming preferito vi ha inviato un avviso di manutenzione per segnalarvi un’interruzione? Non capita mai. Non esiste mai un momento adatto per aggiornare questi servizi perché c’è sempre qualcuno collegato a guardare qualche nuova serie tv. Il principio dei microservizi afferma che, se si è in grado di suddividere un’applicazione in piccoli mattoncini che comunicano tra loro tramite API, allora ogni parte può essere aggiornata indipendentemente dalle altre. Il risultato è che, se un servizio di streaming deve aggiornare la propria funzionalità di ripristino delle password, lo può fare senza dover eseguire il log out di milioni di utenti.

I microservizi sono destinati a rimanere e saranno la base delle applicazioni di domani. In quale tipo di ambiente dovrebbero funzionare? I container sono l’elemento costitutivo perfetto per i microservizi. Offrono un ambiente leggero e omogeneo che può seguire l’applicazione dalla scrivania dello sviluppatore alla fase di test, fino al deployment finale. Inoltre, i container possono girare su macchine fisiche o virtuali attivandosi in pochi secondi se non addirittura millisecondi, il che è più rapido delle VM.

Applicazioni pacchettizzate con le loro dipendenze

I pacchetti software hanno tradizionalmente sempre incluso tutto il codice necessario per far girare l’applicazione su un particolare sistema operativo. Tuttavia, per eseguire un’applicazione occorre molto più che il solo codice applicativo. Servono infatti anche altre applicazioni. Per esempio, un’applicazione che recupera le quotazioni di borsa potrebbe avvalersi di una library che converte i nomi delle aziende nei relativi simboli azionari e viceversa. Questa funzionalità è generica e priva di valore aggiunto. Ma è pur sempre importante per consentire a un utente di digitare “Apple” e vedersi restituire il relativo simbolo “AAPL”.

I servizi per container non sono tutti uguali

In termini di sfide, la prima generazione di applicazioni cloud-native è stata progettata per essere di tipo stateless. All’evolvere dell’uso dei container, gli sviluppatori hanno creato sempre più spesso al loro interno applicazioni di tipo stateful. Ovvero app che hanno bisogno di memorizzare dati in un volume che deve essere reso persistente e conservato. È qui che la questione dello storage si fa difficile. La flessibilità e l’apertura dei container si trasformano in ostacoli e colli di bottiglia a livello dello storage. Anche semplici capacità storage che diamo per scontate da anni nello stack applicativo tradizionale si trasformano in vere e proprie sfide quando si passa nel campo dei container.

Applicazioni future per container e Kubernetes

Ecco perché, come best practice, il consiglio è di scegliere una soluzione che metta a disposizione data service nativi per Kubernetes. Richiesti sia dalle app cloud-native che da quelle tradizionali (visto che queste ultime non sono destinate a scomparire presto). Ciò significa servizi storage a blocchi, a file e a oggetti, in varie classi di performance, erogati on-demand secondo quanto richiesto da Kubernetes. E ciò significa anche accesso istantaneo ai dati, protezione contro ogni genere di guasto, capacità di mobilizzare i dati tra cloud differenti e persino da/verso l’edge, e un livello solido di sicurezza indipendentemente dagli spostamenti di un’applicazione. Facendo ciò, le aziende vedranno da sé perché Kubernetes è diventato delle organizzazioni moderne.