Going to the cloud? Go containers

La distribuzione senza errori di un’applicazione moderna sul cloud è, molto spesso, un compito estenuante.
Per intraprendere il viaggio del cloud-native un ciclo di rilascio dopo l’altro e raggiungere il tuo obiettivo ogni volta, hai bisogno di qualcosa che sia altamente performante, affidabile e di successo costante.

Mentre le VM sembrano essere ancora sulla cresta dell’onda, container e microVM stanno cercando di guidare le architetture della prossima era.

 

Le macchine virtuali sempre così affidabili
Una macchina virtuale, come dichiarato da VMware, è un computer software. Comprimendo e astraendo l’hardware , le macchine virtuali offrono la potenza di elaborazione e l’ambiente di cui le applicazioni hanno bisogno, ottimizzando al contempo il computer fisico o un server sottostante per eseguire più macchine virtuali contemporaneamente.

Per le aziende che si spostano dai data center on-prem al cloud, ciò ha portato vantaggi inediti: gestione centralizzata della rete; utilizzo ottimizzato del server; più ambienti OS sulla stessa macchina, ma isolati l’uno dall’altro; consolidamento delle applicazioni in un unico sistema; risparmiare soldi; ottimizzazione DR; e altro ancora

Per i nuovi utenti del cloud, come le aziende con sistemi legacy profondamente radicati o applicazioni monolitiche, le VM hanno offerto vantaggi significativi. Ma, con il passare degli anni, era chiaro che le macchine virtuali non sono sempre ideali. Ogni VM ha il proprio sistema operativo, questo le ha rese più grandi e lente all’avvio e aggiunte ai loro cicli RAM e CPU.

Scopri i containers… leggeri, veloci e affidabili
I container – orchestrati da Kubernetes, Docker Swarm e dai loro simili – astraggono il sistema operativo, fornendo un modo per eseguire applicazioni su più sistemi isolati, condividendo al contempo un sistema operativo, spesso anche i binaries e le librerie. Ciò ha reso i container leggeri; si parla spesso di megabyte e richiedono alcuni millisecondi per il boot. In effetti, potresti essere in grado di mettere due o tre volte più applicazioni su un singolo server che orchestra containers, rispetto alle macchine virtuali.

Proprio come le macchine virtuali hanno astratto l’hardware, i containers  stanno astraendo il software. Proprio come le VM hanno eliminato l’onere della gestione dei server, i container riducono in modo significativo le spese generali del software – correzione di errori, aggiornamenti delle patch – poiché devono verificarsi per un’istanza del sistema operativo anziché per ogni istanza come nel caso delle VM. Oggi, infatti, i containers orchestrati da Kubernetes vengono spesso eseguiti su un’infrastruttura basata su VM, poiché gran parte dell’IT aziendale è ancora basato su VM.

Ma, più recentemente, tra i team di ingegneria progressiva delle applicazioni, i containers sono diventati il ​​modo preferito di distribuire applicazioni in un ambiente multi-cloud. Soprattutto per le applicazioni basate su microservizi, i container presentavano notevoli vantaggi rispetto alle macchine virtuali in termini di costi, efficienza, flessibilità e velocità di esecuzione. I containers hanno anche reso più facile la possibilità di creare un ambiente efficiente e portatile per lo sviluppo, i test e la distribuzione.

Tuttavia, mancano della sicurezza inattaccabile delle macchine virtuali. I container hanno dovuto sopportare le conseguenze dell’isolamento a livello di processo, a differenza dei confini della virtualizzazione dell’hardware che avevano le VM. Non intendiamo dire che che i container non siano sicuri: hanno una sicurezza a livello di container, a livello di cluster e a livello di kernel.

Incontra il microVM: sembra un contenitore, si comporta come una macchina virtuale
Le MicroVM sono macchine virtuali leggere isolate dall’hardware con il proprio mini-kernel. Offrono sicurezza dalla virtualizzazione dell’hardware come per le macchine virtuali, con l’agilità dei container. La principale differenza tra i contenitori come li conosciamo oggi e i microVM è che questi ultimi offrono l’isolamento supportato dall’hardware all’interno di un containers Kubernetes.

Le MicroVM isolano automaticamente le attività vulnerabili / non affidabili per proteggere il resto dell’ambiente. Sono isolati da entrambi gli altri microVM e dal sistema operativo, assicurandosi che qualsiasi attacco sia contenuto nei microVM e non influiscano su nessun’altra parte dell’applicazione. Anche negli attacchi che superano la sicurezza basata su host e di rete, come spesso possono fare sofisticati aggressori di oggi, le microVM assicurano che gli endpoint siano sicuri. Con lo stesso modello, le microVM possono anche proteggere le applicazioni sensibili e prevenire la perdita di dati fornendo solo l’accesso ad altri sistemi o dati necessari. Pertanto, è possibile eseguire attività sia attendibili che non attendibili in un singolo sistema senza la preoccupazione che quest’ultimo distrugga il primo.

Tuttavia, le microVM sono diverse dalle VM tradizionali in quanto non sono macchine complete ma macchine “appena sufficienti”. Sfruttano la virtualizzazione hardware delle macchine virtuali nel contesto dei contenitori di applicazioni. Accedono solo a una piccola parte delle risorse del sistema operativo e ad altri processi, garantendo che non vi siano perdite di velocità e prestazioni a causa di una maggiore sicurezza.

Anche se Bromium ha iniziato la conversazione sulle microVM nel 2012, è solo quest’anno che il loro slancio è aumentato. Strumenti come AWS Firecracker e il consulente di Google si sono lentamente uniti al toolkit dell’ingegnere applicativo aziendale, ma i microVM sono ancora poco ortodossi, mostrando un grande potenziale, ma non testato.

Trova il tuo punto debole
Il cloud, fino a poco tempo fa, era dominato dalle macchine virtuali. Man mano che sempre più applicazioni vengono distribuite alle macchine virtuali, le sue carenze diventano evidenti. Ma saltare al microVM è troppo rischioso. MicroVM è un anticonformista, non testato, non fidato, che ha ancora molta strada da fare prima dell’accettazione del mainstream.
I contenitori sono il tuo punto debole. Sono molto più avanti rispetto alla VM tradizionale. Hanno trovato accettazione da parte di chi è il tecnico – Netflix, Airbnb e simili giuro da Kubernetes. I fornitori di servizi cloud si stanno impegnando a vicenda per rendere efficiente l’implementazione in container, per non parlare delle dozzine di strumenti avanzati disponibili sul mercato!Nel 2020, se non sei sul carro contenitore, sei già molto indietro.