Containerizzazione IT: spazio per l'innovazione nello sviluppo
Negli ultimi anni la containerizzazione dell'IT è stata di gran moda. E per una buona ragione: promette uno sviluppo IT più veloce, più efficiente e con un risparmio di risorse.
Volete saperne di più sulla containerizzazione? Definizione, vantaggi, casi d'uso e soluzioni: in questo articolo troverete tutte le risposte che cercate.
La containerizzazione IT: definizione
Che cos'è la containerizzazione IT?
La containerizzazione IT significa impacchettare tutti i servizi, gli script, le API e le librerie di cui un'applicazione ha bisogno. L'obiettivo è consentire l'esecuzione su qualsiasi kernel compatibile.
- Non c'è bisogno di preoccuparsi di interazioni o incompatibilità con i container esistenti o futuri su quella macchina.
- Non occupa tante risorse quanto una macchina virtuale (VM), che ha il suo sistema operativo e blocca le risorse quando viene lanciata.
Perché usare i container?
Chi dovrebbe lanciarli?
La containerizzazione è un formidabile acceleratore tecnologico che promuove anche un uso efficiente delle risorse. Non si può quindi evitare la containerizzazione nei seguenti casi:
- Si gestisce un gran numero di applicazioni eterogenee e largamente indipendenti.
- Volete accelerare la velocità di distribuzione delle vostre applicazioni in risposta ai cambiamenti nel comportamento dei vostri target e per incoraggiare l'innovazione.
- State cercando di migliorare l' elasticità della vostra architettura, di controllarla o di prepararvi a una forte crescita.
Vantaggi e svantaggi della containerizzazione IT
Vantaggi
- Sviluppo più rapido: lo sviluppatore lavora in un framework limitato allo stretto necessario, che gli risparmia in particolare la codifica dei test di interazione. Inoltre, incoraggia la creazione di sandbox, in modo che le competenze possano essere sviluppate più rapidamente e la capacità di innovazione aumentata.
- Portabilità e quindi implementazione più rapida: il contenitore creato è coerente e non soffre se viene eseguito in un altro ambiente, mentre è meno avido di energia di una macchina virtuale e può quindi essere più facilmente spostato, copiato e rilanciato.
- Minore impatto sulle prestazioni del server, in quanto un container può liberare rapidamente le risorse inutilizzate (memoria, storage).
Svantaggi
- Un container Linux non può essere utilizzato su una macchina Windows (e viceversa) a meno che non esista un livello intermedio di virtualizzazione/emulazione per il sistema operativo corrispondente.
- Ci sono stati diversi casi in cui il kernel di un'applicazione containerizzata è stato compromesso (diversi casi nel cloud), mettendo a rischio tutti i container presenti sul server (fisico o virtuale).
Containerizzazione e virtualizzazione: non buttate via le vostre macchine virtuali
Va notato che la containerizzazione non esclude la virtualizzazione delle macchine: i due metodi possono essere mescolati in base alle esigenze.
Una macchina virtuale può ospitare container se questo facilita la gestione e la sicurezza dell'organizzazione per ambiente o dominio.
Quali sono le soluzioni di containerizzazione?
Docker... e altre piattaforme
La containerizzazione è quindi al servizio dell' agilità, che è stata ulteriormente incoraggiata dalla rapida e diffusa adozione di soluzioni come Docker, dell'azienda francese dotCloud, basata su tecnologie open source.
I dipartimenti IT, ma anche le piattaforme cloud di Oracle o Microsoft l'hanno adottato e la comunità Docker Hub mette a disposizione un gran numero di container sandbox che catalizzano l'innovazione.
Naturalmente esistono altre soluzioni che facilitano la containerizzazione, sia per Linux che per Windows, FreeBSD o Solaris:
- LXC (la base storica della containerizzazione in Linux),
- Rocket (rkt) di CoreOs,
- i container di Windows Hyper-V (che sono simili a macchine virtuali leggere),
- Docker per Windows,
- Oracle Zones,
- FreeBSD Jails, ecc.
Una seconda pietra miliare è stata raggiunta nell'accelerazione dell'adozione dei container quando Google ha lanciato nel 2015 la soluzione Kubernetes (K8s), l' orchestratore leader di mercato.
Ma cos'è un orchestratore di container?
L'agilità e l'elasticità promesse dall'uso massiccio dei container sono possibili solo se sono :
- ben gestiti
- sicuri
- facili da distribuire o spostare da una macchina all'altra,
- modulare le risorse dell'infrastruttura secondo le necessità.
Inoltre, un' applicazione containerizzata può fare appello ad altri servizi che sono a loro volta sostenuti da altri container; avrà quindi bisogno che tutti questi servizi siano disponibili in tempo utile.
Questa è la funzione dell 'orchestratore, che si occuperà dei componenti del vostro cluster per garantire la distribuzione e la disponibilità dei vostri container per coprire le esigenze delle vostre applicazioni.
Anche in questo caso, i concorrenti di K8s sono numerosi (e talvolta coesistono):
- Docker Straw,
- Amazon ECS,
- Rancher,
- Microsoft AKS basato su... Kubernetes!
Questa combinazione di Container/Orchestratore, ed eventualmente di VM, promette di rispondere alle sfide delle aziende in forte crescita o di quelle che cercano elasticità, agilità e innovazione.
[Alcuni casi d'uso concreti
- La DockerCon 2017 è stata l'occasione per Paypal di presentare il suo percorso di trasformazione delle applicazioni per semplificarle e migliorarne la disponibilità. Di conseguenza, in 2 anni di lavoro sono emersi 150.000 container per modernizzare le applicazioni aziendali principali a vantaggio dei clienti.
- Più recentemente, nel 2019, Pipedrive, uno strumento di CRM, ha dimostrato l'efficacia della containerizzazione nell'accelerare i suoi sviluppi e migliorare l'elasticità della sua infrastruttura.
- Babylon, dal canto suo, ha implementato la containerizzazione per favorire la portabilità dei suoi motori AI nel settore sanitario, ma soprattutto per consentire alle applicazioni più esigenti di utilizzare le risorse cloud, assorbendo una crescita di oltre il 1.500% in 3 anni.
- Blablacar ha dimostrato come la containerizzazione unita a una buona orchestrazione possa far risparmiare diversi giorni nel ciclo di vita di un'applicazione, sempre in un contesto di crescita esponenziale. Si attendono anche riscontri sui benefici dell'elasticità della combinazione container-cloud in un contesto di crisi come quello sanitario, che ha colpito in modo particolarmente duro il settore dei trasporti.
- Docker ha presentato le proposte di Netflix per consolidare l'uso di queste tecnologie, fornendo soluzioni volte a mettere in sicurezza i propri container, a razionalizzarne l'uso e a garantirne la massima interoperabilità.
Conclusione
Come logica estensione dello sforzo di razionalizzazione delle risorse iniziato con le macchine virtuali, i container apportano anche un significativo valore aggiunto all' organizzazione e all' innovazione nello sviluppo IT.
Come ogni grande sviluppo tecnologico, anche la containerizzazione ha la sua parte di "cattivi segnali", con le aziende all'avanguardia nell'innovazione che affrontano la sfida a rotta di collo.