Cosa sono i cloud container?

I container cloud sono pacchetti di codice software che contengono il codice di un'applicazione, le sue librerie e altre dipendenze necessarie per l'esecuzione nel cloud. Il codice di qualsiasi applicazione software richiede determinati file, noti come librerie e dipendenze, per essere eseguito correttamente. In passato, il software doveva essere preparato in formati diversi per funzionare in vari ambienti, come Windows, Linux, Mac e dispositivi mobili. I container, invece, raccolgono il software e tutte le sue dipendenze in un singolo file, che può essere eseguito in qualsiasi ambiente. L'esecuzione del container nel cloud offre ulteriore flessibilità e vantaggi prestazionali su larga scala.

Quali sono i vantaggi dei container cloud?

Le applicazioni possono essere costituite da decine, centinaia o addirittura migliaia di container. Con i container cloud, è possibile distribuire e gestire questi container su molti server cloud o istanze diversi. I container cloud funzionano come se fossero collocati nello stesso posto. Ci sono molti vantaggi nell'utilizzare architetture applicative di cloud computing distribuito. 

Scopri di più sui server cloud

Implementazione delle applicazioni semplificata

I container sono particolari perché permettono l'implementazione di software in quasi tutti gli ambienti, senza dover creare bundle specifici per l'architettura e i sistemi operativi sottostanti. Prima dell'avvento della containerizzazione, le applicazioni dovevano essere assemblate con librerie specifiche per funzionare su determinate piattaforme. Ciò significava che l'implementazione di un software su diversi sistemi operativi avrebbe comportato più versioni dello stesso. I container cloud, invece, consentono alle applicazioni di operare su qualsiasi architettura sottostante, a condizione che la piattaforma di containerizzazione sia adeguatamente supportata. Pertanto, ora è necessaria solamente una versione del container destinato alla produzione.

Flessibilità

Con la containerizzazione del cloud, le macchine virtuali (VM) sottostanti sono tutte istanze cloud. Le istanze cloud sono disponibili in varie configurazioni, con tempi rapidi di attivazione e disattivazione e prezzi di cloud computing on demand. Questa capacità di riconfigurazione consente di modificare le macchine in funzione delle necessità specifiche dell'applicazione. È possibile ottimizzare l'uso delle risorse bilanciando il carico delle applicazioni basate su container su varie istanze cloud anziché su singoli server.

Scopri di più sul bilanciamento del carico

Resilienza

I container cloud offrono maggiore affidabilità e disponibilità per le applicazioni. In un'architettura distribuita e containerizzata, se una determinata macchina si guasta, un'altra può avviare rapidamente i container persi, rafforzando la resilienza dell'applicazione. È possibile aggiornare una nuova versione di un singolo container nell'applicazione con interruzioni minime per il resto dell'applicazione. Ciò si traduce in tempi di attività più lunghi.

Scalabilità

In ambienti di produzione tradizionali, le applicazioni sono spesso limitate dalle capacità di un singolo server. Tuttavia, con un approccio adeguato alla progettazione delle applicazioni e alla containerizzazione nel cloud, l'elaborazione dei dati e le operazioni di input/output di un'applicazione non sono più ristrette dalle limitazioni di singoli server. Le risorse sono distribuite tra diverse macchine, permettendo un dimensionamento praticamente illimitato e assicurando prestazioni e un'esperienza utente costanti.

 

Quali sono i casi d'uso dei container cloud?

I container cloud sono utili per qualsiasi organizzazione che crea o esegue applicazioni containerizzate e desidera utilizzare risorse di cloud computing.

Microservizi

L'architettura di microservizi permette di destrutturare le applicazioni in componenti più piccoli e indipendenti, ciascuno dedicato a una singola funzione. Questo approccio introduce flessibilità e promuove il riutilizzo e l'efficienza del codice. I container cloud facilitano l'esecuzione di applicazioni di grandi dimensioni, composte da centinaia o anche migliaia di microservizi, su una rete distribuita di istanze cloud. Distribuendo il carico di lavoro tra diverse istanze, si può ottimizzare il funzionamento a un costo contenuto e assicurare la continuità del servizio anche in caso di guasto di una macchina.

DevOps

DevOps riguarda l'automazione e la gestione dei processi di sviluppo, test e distribuzione delle applicazioni software. Il processo è ripetibile e basato su versioni, e può essere definito tramite codice, il che aiuta a risparmiare tempo nello sviluppo e a ridurre gli errori manuali che possono verificarsi. Il processo di containerizzazione e implementazione si integra bene con i processi e gli strumenti DevOps tradizionali. I file dei container cloud possono essere versionati e supportano le pratiche DevOps di integrazione continua e distribuzione continua (CI/CD).

Scopri di più su DevOps

Scopri di più sull'integrazione continua

Cloud ibrido

Potrebbe essere utile eseguire architetture applicative basate su container sia su server in locale sia su server cloud. L'implementazione di container cloud si integra in modo efficace in un ambiente di cloud ibrido. I servizi basati su container richiedono soltanto una corretta configurazione di rete e il servizio di containerizzazione deve essere attivo su tutte le macchine per operare in modo collettivo.

Come funzionano i container cloud?

Un container cloud è semplicemente un contenitore che viene eseguito su un'infrastruttura cloud anziché su una macchina locale o in un data center. I container nel cloud computing sono file immagine che contengono tutto il necessario per eseguire il software: codice, runtime, librerie, variabili di ambiente e file di configurazione. Le immagini dei container vengono realizzate a livelli, iniziando da un'immagine di base, che è tipicamente una versione minimale di un sistema operativo, per poi aggiungere ulteriori livelli come definito dalle istruzioni in un file di configurazione del container. Una caratteristica fondamentale delle immagini dei container è la loro immutabilità: una volta create, rimangono invariate. Queste immagini possono essere conservate in un registro dei container e riutilizzate in modo uniforme in diversi ambienti cloud.

Di seguito è riportata una panoramica dei diversi aspetti della tecnologia dei container.

Runtime del container

I runtime dei container sono responsabili dell'effettivo funzionamento dei container. Gestiscono l'esecuzione, il ciclo di vita e l'isolamento delle risorse dei container. I container funzionano come processi isolati nello spazio utente del sistema operativo dell'istanza cloud. Condividono il sistema operativo host ma rimangono separati sia l'uno dall'altro, sia dall'host. Tale isolamento agevola un'allocazione efficiente delle risorse, in cui il runtime impone dei limiti per evitare conflitti di risorse tra i container.

Rete

È possibile configurare i container cloud con stack di rete isolati, garantendo che le applicazioni eseguite in container separati non interferiscano l'una con l'altra. La comunicazione con l'esterno e tra i container viene gestita attraverso la mappatura delle porte e i canali di rete predefiniti. 

Archiviazione

I container cloud utilizzano in genere un'archiviazione temporanea, il che significa che tutti i dati scritti sul livello scrivibile del container vengono persi quando questo si arresta. Per conservare i dati in modo persistente, è possibile utilizzare i volumi di archiviazione cloud. Questi volumi sono indipendenti dal ciclo di vita dei container e possono essere condivisi tra diversi container.

Orchestrazione

Nei sistemi su larga scala, si utilizzano strumenti di orchestrazione per automatizzare l'implementazione, il dimensionamento e la gestione di più container. Questi strumenti distribuiscono i container su un cluster di server cloud, bilanciando il carico e gestendo i processi di failover. L'automazione semplifica notevolmente la gestione delle applicazioni containerizzate in ambienti complessi. È possibile implementare e gestire ampie applicazioni containerizzate di livello avanzato su architetture cloud ibride senza dover intervenire su ogni singola istanza cloud. Invece di trasferire manualmente un file di immagine del container su ogni istanza, gli strumenti di orchestrazione possono essere programmati per estrarre i file di immagine dal registro del container e implementarli automaticamente nelle istanze cloud.

Qual è la differenza tra container cloud e istanze cloud?

Un'istanza cloud è una macchina virtuale le cui risorse fisiche sottostanti sono interamente gestite da un provider cloud. Le istanze cloud operano come server fisici e offrono piena configurabilità, permettendo di utilizzarle come se fossero server locali. Tuttavia, non richiedono la gestione dell'hardware e del sistema operativo. Le istanze cloud possono essere avviate e rimosse rapidamente e facilmente. È possibile implementare container cloud su istanze cloud per eseguire le loro applicazioni basate su cloud in modo distribuito. Il termine container cloud si riferisce a un container in esecuzione su istanze cloud.

Scopri di più sulle istanze cloud

Scopri di più sulla differenza tra container e macchine virtuali

In che modo AWS può supportare le tue necessità di container cloud?

Attualmente, quasi l'80% di tutti i container cloud viene eseguito su Amazon Web Services (AWS). I servizi di container AWS offrono numerosi strumenti di sistema per gestire l'infrastruttura di container sottostante, consentendo di concentrarsi sull'innovazione e sulle esigenze specifiche della propria azienda.

  • AWS Copilot è un'interfaccia a riga di comando (CLI) e può essere utilizzato per avviare e gestire rapidamente applicazioni containerizzate su AWS
  • Amazon Elastic Container Service (Amazon ECS) è un servizio di orchestrazione di container completamente gestito che semplifica l'implementazione, la gestione e il dimensionamento delle applicazioni containerizzate
  • Amazon Elastic Kubernetes Service (Amazon EKS) è un servizio Kubernetes gestito per l'esecuzione dell'orchestrazione di container Kubernetes nel cloud AWS e nei data center on-premise.
  • Amazon Elastic Container Registry (Amazon ECR) è un registro di container completamente gestito che facilita la gestione e l'accesso a immagini e artefatti dei container
  • AWS Fargate è un motore di calcolo serverless per container che consente di concentrarsi sullo sviluppo di applicazioni anziché sulla gestione dell'infrastruttura

L'immagine seguente illustra le varie opzioni disponibili per le soluzioni di container AWS, suddivise per livello: provisioning, orchestrazione e capacità.

Inizia a utilizzare i container cloud su AWS creando un account oggi stesso.

Fasi successive su AWS

Scopri ulteriori risorse correlate al prodotto
Ulteriori informazioni sull'Architettura orientata ai servizi 
Registrati per creare un account gratuito

Ottieni accesso istantaneo al piano gratuito di AWS. 

Registrati 
Inizia subito nella console

Inizia subito a costruire con AWS nella Console di gestione AWS.

Accedi