Containers e macchine virtuali: panoramica e compromessi

Che cosa sono i containers?

Che cosa sono i containers?

I container sono unità software standard che contengono tutto il codice e le dipendenze, tra cui file binari, librerie e file di configurazione, necessari per eseguire un'applicazione. I software containerizzati possono essere eseguiti in maniera affidabile da un ambiente di elaborazione a un altro.

Confronto tra macchine virtuali e containers

Sia le macchine virtuali (VM), sia i container utilizzano la virtualizzazione per creare ambienti isolati destinati all'esecuzione delle applicazioni. La differenza principale sta nella granularità della virtualizzazione offerta: le prime virtualizzano a livello di sistema operativo/computer, mentre i secondi virtualizzano a livello di software.

Diamo un'occhiata più da vicino alle differenze tra queste due tecnologie di virtualizzazione.

Macchine virtuali

Una macchina virtuale virtualizza l'intero computer e il sistema operativo in modo da ospitarli su un computer diverso. Per condividere le risorse sul computer host, è necessario un hypervisor per  virtualizzare il server. È possibile eseguire più macchine virtuali su un singolo hypervisor con un computer host. Le macchine virtuali consentono di risparmiare sui costi grazie alla possibilità di effettuare il partizionamento di un singolo server in più macchine su cui eseguire le applicazioni con dipendenze e requisiti operativi diversi. 

Se da un lato è possibile risparmiare sui costi dal momento che non è necessario acquistare nuovi server, le macchine virtuali richiedono tante risorse di sistema al computer host. Quando occorre simulare un intero sistema operativo e il computer alla base per eseguire una sola applicazione tramite l'hypervisor, è chiaro che un'ulteriore granularità potrebbe portare a un risparmio sui costi anche maggiore.

Prova FlashBlade attraverso il nostro Test Drive

Prova l'esperienza di un'istanza self-service di Pure1® per gestire Pure FlashBlade™, la soluzione più avanzata del settore che offre file e l'object storage scale-out nativi.

Containers

Immagina la comodità di eseguire un'applicazione in un ambiente virtuale senza i tanti requisiti di risorse di un hypervisor. In pratica è quello che puoi fare un container incapsulando il software in unità indipendenti virtuali. 

In un container, non è più necessario virtualizzare un intero sistema operativo e il server con un hypervisor. Invece, si virtualizzano solo le dipendenze software e hardware necessarie per l'esecuzione di un'applicazione specifica mentre utilizzi il kernel di sistema operativo del computer host. I containers permettono di creare più workload su un'unica istanza di sistema operativo. Di conseguenza,  i containers sono sovraccaricano meno i server fisici rispetto alle macchine virtuali.

Compromessi tra containers e macchine virtuali

Mentre i containers sono più agili delle macchine virtuali, la loro dipendenza dal kernel di sistema operativo del computer host limita l'uso di applicazioni che richiedono ambienti di sistema operativo diversi. Le macchine virtuali sono inoltre più isolate e sicure in quanto sono del tutto indipendenti dal computer host. 

L'utilizzo dei containers è consigliato in caso di:

  • Aumento al massimo del numero di applicazioni in esecuzione su un unico kernel di sistema operativo
  • Implementazione di più istanze di una singola applicazione
  • Priorità alle risorse di calcolo e storage

L'utilizzo delle macchine virtuali è consigliato in caso di:

  • Esecuzione di più applicazioni con dipendenze su sistemi operativi diversi su un singolo server 
  • Esecuzione di un'applicazione che necessita di tutte le risorse e le funzionalità di un sistema operativo
  • Priorità all'isolamento e alla sicurezza

Vantaggi dell'orchestrazione dei containers con Pure Service Orchestrator

Mentre i containers permettono di ignorare i dettagli hardware da una prospettiva di sviluppo software, le inefficienze dell'infrastruttura IT legacy possono comunque determinare un calo delle performance complessive.

Pure Service Orchestrator™ è uno strumento di orchestrazione dei containers che offre risorse di storage persistente per le applicazioni containerizzate. Si integra perfettamente con Kubernetes e altri strumenti di orchestrazione dei containers per fornire:

  • Distribuzione automatizzata dello storage on demand
  • Provisioning basato su policy
  • Scalabilità elastica in tutti gli array, incluso l'hybrid cloud
  • Deployment intelligente dei containers nei file e block array
  • Resilienza a livello enterprise con failover automatizzato e integrità dell'accesso ai dati con self-healing

Pure Service Orchestrator combina scalabilità elastica, provisioning intelligente e ripristino trasparente per offrire containers as-a-service.

800-379-7873 +44 20 3870 2633 +43 720882474 +32 (0) 7 84 80 560 +33 9 75 18 86 78 +49 89 12089 253 +353 1 485 4307 +39 02 9475 9422 +31 (0) 20 201 49 65 +46-101 38 93 22 +45 2856 6610 +47 2195 4481 +351 210 006 108 +966112118066 +27 87551 7857 +34 51 889 8963 +41 31 52 80 624 +90 850 390 21 64 +971 4 5513176 +7 916 716 7308 +65 3158 0960 +603 2298 7123 +66 (0) 2624 0641 +84 43267 3630 +62 21235 84628 +852 3750 7835 +82 2 6001-3330 +886 2 8729 2111 +61 1800 983 289 +64 21 536 736 +55 11 2655-7370 +52 55 9171-1375 +56 2 2368-4581 +57 1 383-2387