Container e microservizi: cosa sono e perchè rendono l’azienda più agile

Il futuro del data center

Perché container e microservizi rendono l’azienda più agile

Implementare un’architettura “cloud-native” è la strada maestra che l’IT sta prendendo per tenere il passo con le richieste del business. Ma si fonda su alcuni pilastri tecnologici chiave da conoscere e padroneggiare: due di questi sono i microservizi e i container

23 Ott 2020

Redazione

Per comprendere appieno perché, e come, container e microservizi possano creare agilità ed efficienza nel business di un’impresa, occorre fare un piccolo passo indietro. I tradizionali data center, definiti da un’infrastruttura fisica on-premise, fatta di hardware e server fisici, e caratterizzati da un’architettura applicativa organizzata per ‘silos’ tecnologici, stanno rivelandosi sempre meno adatti a gestire i moderni workload generati dalla trasformazione digitale: oggi app e servizi digitali possono essere utilizzati via web, o tramite il canale mobile, 24 ore su 24 e richiedono requisiti di disponibilità, scalabilità, affidabilità, prestazioni non paragonabili a quelli dell’era pre digitale.

Oggi a un servizio, online o mobile – sia esso un sito di e-commerce o un’app di home banking – possono accedere contemporaneamente volumi di utenti che generano picchi di traffico difficili da amministrare con le risorse IT dei classici data center, perché la capacità non è facilmente scalabile in maniera elastica, o perché alcuni sistemi legacy non sono concepiti per supportare i workload con una disponibilità 24/7.

Non è, tuttavia, solo un problema di scalabilità o prestazioni: c’è anche l’esigenza, sempre più forte, delle imprese di creare velocemente nuove app e servizi digitali, per rispondere di continuo alla domanda proveniente dal mercato, e non perdere spazi e opportunità di business. Un contesto, quindi, in cui non è pensabile organizzare lo sviluppo applicativo mantenendo le ‘vecchie’ tempistiche di progettazione e ritmi lenti di rilascio del software: oggi la frequenza di rilascio della nuova versione di una app, e il suo ritmo d’aggiornamento, sono in accelerazione continua.

Container e microservizi: due pilastri del paradigma “cloud-native”

Container e microservizi possono fornire la risposta all’esigenza delle organizzazioni di gestire l’IT in maniera agile, perché sfruttano l’innovazione resa possibile dal paradigma cloud e rappresentano due fondamentali elementi costitutivi delle cosiddette architetture cloud-native: queste, secondo la definizione della Cloud Native Computing Foundation (CNCF), permettono di costruire e amministrare applicazioni scalabili in “ambienti moderni e dinamici, come i cloud pubblici, privati e ibridi”.

Essendo improntati su un’architettura cloud-native, i data center di ultima generazione non sono più unicamente costituiti da server e infrastrutture fisiche confinati nel perimetro on-premise, ma diventano “software-defined”: si compongono di macchine virtuali, container, microservizi, e possono estendersi su molteplici cloud e infrastrutture IT. Implementare un’architettura applicativa basata su microservizi, e “containerizzare” le applicazioni rende possibile spostarle con facilità tra cloud e ambienti IT differenti e, di conseguenza, migrare i workload dov’è più conveniente, in funzione delle esigenze di business.

Microservizi, cosa sono e perché sono utili

Nell’architettura applicativa tradizionale, di tipo monolitico, i diversi componenti di un’applicazione (database, logica di business, interfaccia utente) vengono sviluppati e integrati strettamente tra loro in un solo blocco di codice. Soprattutto quando le dimensioni dell’applicazione e del codice crescono diventa complesso apportare modifiche a un componente senza conseguenze sul funzionamento dell’intero sistema; è difficile anche fare rilasci e aggiornamenti frequenti e scalare la capacità e migliorare l’affidabilità, in quanto, data la stretta interdipendenza dei moduli, il malfunzionamento anche di un solo componente può influenzare gli altri e, di riflesso, la stabilità e disponibilità dell’intera applicazione.

Ciò non accade utilizzando lo stile architetturale basato su microservizi, in cui l’applicazione viene progettata sviluppando singoli servizi, ciascuno creato come componente indipendente, e dedicato a una determinata funzione, ma anche in grado di connettersi e comunicare con gli altri tramite l’uso di interfacce API (application programming interface).

L’architettura a microservizi fornisce vari vantaggi: si guadagna in agilità di sviluppo e time-to-market, lavorando al contempo su diversi componenti e servizi; diventa più agevole adottare le pratiche CI/CD (continuous integration/continuous deployment), fulcro del modello di sviluppo DevOps, perché modifiche e deployment del codice si fanno per singoli microservizi; la scalabilità delle performance è favorita dall’indipendenza di ciascun microservizio; e, se quest’ultimo dovesse bloccarsi, non comprometterebbe in alcun modo il funzionamento dell’applicazione nel suo complesso, mantenendo la continuità del business. Inoltre, ogni microservizio è come un mattoncino, riutilizzabile per costruire altre applicazioni.

Container: aumentare agilità e automazione nel cloud ibrido

In accordo con la filosofia cloud-native, l’agilità dell’IT e del business nel cloud ibrido aumenta ulteriormente se, oltre a costruire un’applicazione come un insieme di microservizi, si incapsula ciascun microservizio in un container.

La tecnologia container consente di racchiudere in un file immagine tutto ciò che serve (codice, dipendenze, librerie, file di configurazione) per il funzionamento di un dato microservizio: lo rende quindi indipendente dalla piattaforma hardware e software sottostante, e implementabile in qualunque ambiente IT: data center on-premise, cloud privati, pubblici, ibridi. I container si possono connettere, per comunicare tra loro, ed anche orchestrare tramite tecnologie come Kubernetes, un software in grado di automatizzare il deployment e la scalabilità dei servizi containerizzati in funzione delle necessità. Grazie all’agilità che permette di ottenere, la tecnologia container sta continuando a diffondersi: secondo Gartner, entro il 2022 oltre il 75% delle organizzazioni globali eseguirà applicazioni containerizzate in produzione. 

Accelerare la trasformazione: la prospettiva VMware

Data la complessità delle tecnologie appena illustrate, va detto che, oggi, realizzare app e servizi software agili, in grado di funzionare in qualunque ambiente IT e piattaforma cloud, e apprezzati da utenti e clienti, dipende dal grado di maturità che un’organizzazione riesce ad esprimere nell’applicare il paradigma DevOps e nell’utilizzare microservizi e container per modernizzare la tradizionale architettura applicativa, e farla evolvere verso ambienti runtime cloud-native.

Per raggiungere questo obiettivo, il percorso di trasformazione tecnologica e organizzativa non è banale, perché richiede cambiamenti culturali nei processi di lavoro e assunzione di competenze, ma può essere semplificato e accelerato da soluzioni create in maniera apposita: è il caso, ad esempio, della gamma di soluzioni VMware Tanzu, che consente ai team ‘development’ e ‘operations’ (DevOps) di lavorare assieme per fornire software di qualità più rapidamente, e semplificare l’amministrazione di operation multi-cloud tramite una gestione centralizzata. In sostanza, con VMware Tanzu è possibile sviluppare app moderne, eseguendole, gestendole e connettendole in sicurezza su qualunque cloud, semplificando l’adozione di Kubernetes e automatizzando il provisioning dei workload containerizzati in produzione.

In aggiunta, nell’ottica di accrescere l’agilità dell’IT nel cloud ibrido, che fa leva su microservizi e container, s’inseriscono, ad esempio, servizi di cloud ibrido come VMware Cloud on AWS: quest’ultimo porta nel cloud AWS la piattaforma SDDC (software-defined data center) di classe enterprise di VMware. VMware Cloud on AWS è in grado di supportare con flessibilità i workload di un’organizzazione sia on-premise, sia nel cloud pubblico.

Tra l’altro, nel mondo cloud-native e delle relative applicazioni e servizi VMware, a metà settembre il system integrator Sinthera ha annunciato di aver conseguito la certificazione VMware Cloud Native Master Services Competency (MSC). Tale certificazione, ideata per il portafoglio VMware Tanzu, consente ai partner di VMware di progettare piattaforme basate su Kubernetes, e di fornire ai propri clienti i servizi della piattaforma VMware Tanzu.

white-paper-microservizi-e-container-guida-alle-tecnologie-che-rendono-agile-il-tuo-business

@RIPRODUZIONE RISERVATA

Articolo 1 di 4