Container as a Service mette a disposizione piattaforme container come soluzioni complete di hosting su cloud. Ti sveliamo di cosa si tratta e ti presentiamo quattro delle piattaforme CaaS più popolari. Inoltre, ti spieghiamo come sfruttare in ambito aziendale i servizi container basati su cloud.

Cos’è CaaS?

CaaS, abbreviazione di Container as a Service, è un modello di business in cui i fornitori delle piattaforme di cloud computing mettono a disposizione prestazioni relative alla virtualizzazione basata su container come servizio online ridimensionabile. Ciò permette di prendere in considerazione servizi container senza per forza dover disporre di un’infrastruttura che, in teoria, sarebbe indispensabile per utilizzarli. Il termine è una classica espressione del mondo del marketing che si rifà al altri modelli di servizi cloud come Infrastructure as a Service (IaaS), Platform as a Service (PaaS) e Software as a Service (SaaS).

Cosa sono i servizi container?

Con servizio container si intende un pacchetto di prestazioni offerto da un provider di cloud computing che permette agli utenti di sviluppare software in cosiddetti container di applicazione, di effettuare dei test, di eseguirli oppure di distribuirli attraverso infrastrutture informatiche apposite. Qui entra in gioco un concetto derivante dal mondo Linux: questa tecnologia permette la virtualizzazione a livello del sistema operativo eseguendo singole applicazioni, incluse tutte le funzioni annesse come le librerie e i file di configurazione, sotto forma di istanze incapsulate. Ciò permette l’utilizzo simultaneo su un unico sistema operativo di più applicazioni aventi diverse richieste e la distribuzione tramite sistemi differenti.

Di norma, il modello CaaS contiene un ambiente container completo, inclusi gli strumenti di orchestrazione, un catalogo di immagini (il cosiddetto registry), un software di gestione dei cluster e infine un set di strumenti per sviluppatori e di API.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estremamente vantaggiose e potenti core dedicati
  • Massima flessibilità senza periodo contrattuale minimo
  • Servizio di assistenza tecnica 24 ore su 24, 7 giorni su 7

CaaS: differenza da altri servizi cloud

A partire dalla metà degli anni 2000 grazie al cloud computing le aziende e i privati hanno a disposizione un’alternativa per la preparazione di risorse IT su macchina locale (on-premises). In questo contesto, oltre a CaaS, sono particolarmente noti i seguenti tre modelli di servizio:

  • IaaS: Infrastructure as a Service comprende la preparazione di risorse hardware virtuali come la performance del computer, lo spazio di archiviazione e le capacità di rete. I fornitori IaaS mettono a disposizione questi pilastri alla base delle infrastrutture IT sotto forma di macchine virtuali (VM) o di Virtual Local Area Networks (VLAN).
  • PaaS: il livello intermedio del modello di cloud computing viene definito come Platform as a Service. Nell’ambito del modello PaaS, i servizi cloud mettono a disposizione le piattaforme di programmazione e ambienti di sviluppo su internet. PaaS si basa sul modello IaaS.
  • SaaS: per quanto riguarda il livello più alto del modello di cloud computing, si tratta di un mero livello di applicazione. Con Software as a Service si intende la preparazione di software di applicazione tramite internet. In questo modello di servizio i programmi messi a disposizione non funzionano sull’hardware del cliente, bensì sul server del fornitore.
Immagine: Rappresentazione schematica dei modelli di servizio cloud IaaS, PaaS e SaaS
I modelli di servizio cloud IaaS, PaaS, e SaaS a confronto per l’erogazione di risorse in loco (on-premises).

In questa suddivisione classica dei tre affermati modelli di cloud computing, CaaS si posiziona tra IaaS e PaaS. Rispetto a questi modelli di servizio, Container as a Service si differenzia però per un approccio di virtualizzazione essenzialmente diverso: la tecnologia dei container.

Definizione

Container as a Service è una forma di virtualizzazione basata su container in cui l’ambiente di runtime, gli strumenti di orchestrazione e le risorse di infrastruttura alla base vengono messi a disposizione da un provider di cloud computing.

Come funziona CaaS?

La base di Container as a Service è un cluster di computer, messo a disposizione su cloud che può essere parzialmente noleggiato dagli utenti per caricare, generare, gestire centralmente ed eseguire sulla piattaforma cloud le applicazioni basate su container. L’interazione con l’ambiente container basato su cloud avviene o tramite un’interfaccia grafica (GUI) o sotto forma di chiamate API. I tipi di tecnologie container a disposizione degli utenti si differenziano a seconda dei provider. Il fulcro di ogni piattaforma CaaS è tuttavia uno strumento di orchestrazione (conosciuto anche come orchestrator), che permette la gestione di architetture container più complesse. A questo scopo risultano essenziali le seguenti funzioni:

  • Distribuzione di container su più host
  • Raggruppamento di container in unità logiche
  • Ridimensionamento dei container
  • Load balancing (bilanciamento del carico)
  • Assegnazione di capacità di archiviazione
  • Interfaccia di comunicazione tra container
  • Service discovery

La scelta dell’orchestrator coinvolto nell’utilizzo di CaaS ha una diretta influenza su quali funzioni sono a disposizione degli utenti del servizio cloud. Attualmente nel mercato della virtualizzazione basata su container dominano soprattutto i seguenti strumenti di orchestrazione: Docker Swarm, Kubernetes, OpenShift e Amazon Elastic Container Service (ECS).

Consiglio

In articoli appositi della Digital Guide trovi descrizioni dettagliate degli strumenti di orchestrazione più diffusi e degli strumenti per Docker, nonché un confronto dettagliato tra OpenShift e Kubernetes.

Cosa contraddistingue un buon fornitore di Container as a Service?

Al momento di scegliere un servizio CaaS per uso aziendale, dovresti farti le seguenti domande:

  • Quali strumenti di orchestrazione sono disponibili?
  • Quali formati di file per le applicazioni container sono supportati?
  • È possibile eseguire applicazioni multi-contenitore?
  • Come vengono gestiti i cluster per il funzionamento dei container?
  • Quali funzioni di rete e di memoria sono supportate?
  • Il fornitore offre un registro privato per le immagini dei container?
  • Quanto è integrato l’ambiente di runtime dei container con gli altri servizi cloud del provider?
  • Quali sono i modelli di fatturazione disponibili?

I servizi CaaS disponibili sul mercato in sintesi

La tecnologia dei container è in pieno boom e di conseguenza l’offerta di servizi CaaS prospera. Tra i prodotti offerti praticamente da tutti i provider di cloud pubblici si trovano servizi per la virtualizzazione a livello del sistema operativo. Anche Amazon, Microsoft, Google e IONOS, che attualmente sono le figure più importanti sul mercato di CaaS, hanno ampliato le loro piattaforme cloud con una soluzione container basata su Docker.

N.B.

Docker è una delle piattaforme container più conosciute e importanti sul mercato. Il formato container sviluppato da Docker, ossia uno sviluppo del container di Linux (LXC), è ampiamente diffuso e supportato da tutti i provider CaaS.

IONOS Cloud Managed Kubernetes

Il servizio Managed Kubernetes è la piattaforma ideale per applicazioni container ad alte prestazioni e altamente scalabili. Disponibile direttamente tramite il pannello IONOS Cloud, esso combina la piattaforma IaaS di IONOS con le tecnologie container leader di mercato Docker e Kubernetes.

Immagine: Sito web del prodotto IONOS Managed Kubernetes
IONOS Cloud Managed Kubernetes: hai in unico pacchetto l’hosting di cluster, distribuzione di container e orchestrazione.

La soluzione CaaS di IONOS è rivolta agli sviluppatori, alle sviluppatrici e alle operazioni IT e consente di fornire, gestire e scalare applicazioni basate su container in cluster Kubernetes. La gamma di funzioni comprende:

  • Nodi cloud gestiti con risorse server dedicate
  • Gestione individuale dei cluster
  • Accesso completo ai contenitori di applicazioni
  • Orchestrazione personalizzata
  • Supporto tecnico per l’utilizzo e la creazione di cluster di container nel Cloud Panel da parte di IONOS
  • Community di IONOS Cloud

Il supporto di IONOS si estende all’erogazione e alla gestione del cluster di container. Non viene offerto supporto diretto per kubectl o la dashboard di Kubernetes. Diverse applicazioni di terze parti come Febrac8, Helm, GitLab o Autoscaler sono disponibili per gli utenti come soluzioni one click dal Cloud Panel di IONOS. Il servizio online DockerHub può essere integrato come registro per le immagini Docker.

IONOS Cloud Managed Kubernetes consente la configurazione completamente automatizzata di cluster Kubernetes. Il servizio è gratuito: si paga solo l’infrastruttura IONOS Cloud sottostante che viene effettivamente fornita.

Vantaggi Svantaggi
Piena compatibilità con Kubernetes Manca il supporto software per kubectl e Kubernetes
Ampia selezione di soluzioni di terze parti pre-installate
Elevata portabilità
Managed Kubernetes
Orchestrazione sicura dei carichi di lavoro dei container
  • Configurazione automatica dei cluster Kubernetes
  • Archiviazione persistente completamente integrata
  • Assistenza clienti 24/7

Amazon Elastic Container Service (ECS)

Da aprile 2015 la piattaforma di commercio online Amazon mette a disposizione delle soluzioni per la virtualizzazione basate su container nell’ambito della piattaforma di cloud computing AWS (Amazon Web Service): si tratta di Amazon Elastic Container Service (ECS). Come il servizio di IONOS, ECS supporta solo contenitori nel formato Docker.

FnFvpIsBrog.jpg Per visualizzare questo video, sono necessari i cookie di terze parti. Puoi accedere e modificare le impostazioni dei cookie qui.

Amazon ECS offre agli utenti diverse interfacce che permettono di eseguire applicazioni isolate in container di Docker all’interno di Amazon Elastic Compute Cloud (EC2). Da un punto di vista tecnico il servizio CaaS si basa sulle seguenti risorse cloud:

  • Istanze Amazon EC2 (istanze di Amazon Elastic Compute Cloud): per quanto riguarda Amazon EC2 si tratta delle capacità ridimensionabili di calcolo del servizio di cloud computing di Amazon, che viene noleggiato sotto forma di istanze.
  • Amazon S3 (Amazon Simple Storage): Amazon S3 è una piattaforma di storage di oggetti (object storage).
  • Amazon EBS (Amazon Elastic Block Store): Amazon EBS mette a disposizione volumi di storage persistente a blocchi per istanze EC2.
  • Amazon RDS (Amazon Relational Database Service): Amazon RDS è un servizio di database per la gestione dei motori di database relazionali Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle e Microsoft SQL Server.

Su ECS, nelle impostazioni standard la gestione di container avviene tramite un orchestratore proprietario che funge da master e comunica con un agente a ogni nodo del cluster da gestire. In alternativa viene offerto un modulo open source: si tratta di Blox, il quale permette di integrare in ECS anche scheduler sviluppati personalmente, nonché strumenti di terze parti come Mesos.

Un punto di forza di Amazon EC2 Container Service è la sua integrazione con altri servizi Amazon, come lo strumento di gestione dei permessi “AWS Identity and Access Management (IAM)”, il bilanciatore di carico del cloud “Elastic Load Balancing” o il servizio di monitoraggio “Amazon CloudWatch”.

Uno svantaggio di Amazon EC2 Container Service è la limitazione alle istanze EC2. Il servizio CaaS di Amazon non offre alcun supporto per le infrastrutture IT al di fuori di AWS, né fisico né virtuale. Gli scenari di cloud ibridi non sono possibili quanto non lo è una combinazione delle risorse IT di differenti provider di cloud pubblici (multi-cloud).

Questo potrebbe essere collegato al modello di business nel quale Amazon offre il suo servizio di CaaS: Amazon EC2 Container Service è a disposizione tramite AWS principalmente a titolo gratuito. Si paga esclusivamente per la disponibilità dell’infrastruttura cloud, ad esempio per un cluster di istanze EC2 che funge da base per l’utilizzo di applicazioni container.

Vantaggi Svantaggi
Integrazione con altri prodotti AWS L’implementazione dei container è limitata alle istanze Amazon EC2
Gratuito da usare (costi di infrastruttura) Orchestratore proprietario

Google Kubernetes Engine (GKE)

Anche Google ha integrato un servizio container ospitato sul cloud pubblico: si tratta di Google Kubernetes Engine (GKE). Un componente fondamentale di questo servizio CaaS è lo strumento di orchestrazione Kubernetes.

pQ87vVMZK-A.jpg Per visualizzare questo video, sono necessari i cookie di terze parti. Puoi accedere e modificare le impostazioni dei cookie qui.

GKE attinge a risorse di Google Compute Engine (GCE) e permette agli utenti di eseguire applicazioni basate su container sui cluster nel cloud di Google. Sull’infrastruttura di Google non si hanno limiti con GKE: il sistema di federazione dei cluster dell’orchestratore Kubernetes fa sì che si possano sintetizzare risorse di diversi cluster di computer in una federazione di calcolo logica e in caso di necessità permette anche di realizzare scenari di cloud ibridi e multi-cloud.

Ogni cluster realizzato con l’aiuto di GKE è costituito da un master di Kubernetes, sul quale viene eseguito il server API di Kubernetes, e da un numero a scelta di nodi worker, i quali servono le richieste REST del server API ed eseguono i servizi necessari per il supporto di container di Docker.

Anche GKE supporta il formato container di Docker, ampiamente diffuso. Per la preparazione di immagini Docker gli utenti hanno a disposizione un registry di container privato e una sintassi basata su JSON permette di definire servizi container come template.

L’integrazione di Kubernetes su GKE offre le seguenti funzioni per l’orchestrazione di applicazioni container:

  • Automatic Binpacking: Kubernetes posiziona automaticamente i container sulla base di limitazioni e richieste di risorse in modo tale che il cluster sia caricato in maniera equilibrata.
  • Health check con funzione di riparazione automatica: grazie a controlli dello stato automatici, Kubernetes assicura che tutti i nodi e container funzionino perfettamente.
  • Ridimensionamento orizzontale: con Kubernetes si possono ridimensionare le applicazioni a piacere, aumentandole o diminuendole.
  • Service discovery e load balancing: Kubernetes offre due metodi per il service discovery. I servizi possono essere rintracciati tramite variabili di ambiente e record DNS. Si può realizzare un bilanciamento del carico tra diversi container attraverso indirizzi IP e nomi DNS.
  • Orchestrazione dell’archivio: Kubernetes permette il montaggio automatico di diversi sistemi di archiviazione.

Per quanto concerne i costi del servizio CaaS, Google segue una strada differente da Amazon. Nella versione di base gratuita, è possibile utilizzare un credito mensile di 74,40 dollari per account di fatturazione, che viene applicato ai cluster zonali e autopilot. Nelle edizioni “Kubernetes” si paga per ora e per vCPU o cluster. I costi del piano “Compute” si basano sui prezzi del Compute Engine.

Vantaggi Svantaggi
Integrazione con gli altri prodotti Google Curva di apprendimento ripida
Interoperabilità Può diventare rapidamente costoso

Microsoft Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) è un ambiente di hosting ottimizzato per Azure, la piattaforma di cloud computing di Microsoft, che permette agli utenti di sviluppare applicazioni basate su container e di renderle disponibili in cluster di computer ridimensionabili. AKS si basa su una versione ottimizzata per Azure di strumenti container open source e rende possibile l’utilizzo di container di Linux e Windows in formato Docker.

Immagine: Sito web del prodotto Microsoft Azure Kubernetes Service (AKS)
Screenshot del sito di Azure Kubernetes Service (AKS); fonte: https://azure.microsoft.com/it-it/products/kubernetes-service/

Quali sono le funzioni disponibili per gli utenti di AKS durante l’utilizzo di applicazioni containerizzate sul cloud di Azure, dipende per prima cosa dalla scelta dell’orchestratore. I più diffusi orchestratori di container supportati sono Kubernetes, DC/OS e Docker Swarm. Nella versione Docker Swarm, AKS si basa sullo stack Docker e utilizza le stesse tecnologie open source dello Universal Control Plane di Docker (un componente di base di Docker Datacenter). Implementato in Azure Container Service, Docker Swarm offre la seguente gamma di funzioni per l’orchestrazione e la scalabilità delle applicazioni container:

  • Docker Compose: la soluzione di Docker per applicazioni multi-container permette di collegare più container tra loro e di eseguirli con un unico comando centrale.
  • Controllo tramite riga di comando: Docker CLI (Command Line Interface) e lo strumento multi-container Docker Compose permettono la gestione diretta di cluster container tramite riga di comando.
  • REST API: Docker Remote API offre l’accesso a vari strumenti di terze parti dell’ambiente Docker.
  • Distribuzione basata su regole: la distribuzione di container di Docker all’interno del cluster è gestibile tramite etichette e limitazioni.
  • Service discovery: Docker Swarm offre agli utenti diverse funzioni di service discovery.

Oltre a ciò, Microsoft ha ampliato AKS con funzioni CI/CD (Continuous Integration and Deployment) per applicazioni multi-container che sono state sviluppate con Visual Studio, Visual Studio Team Services o lo strumento open source Visual Studio Code.

L’Identity and Access Management su Azure viene regolato tramite Active Directory, le cui funzioni base sono a disposizione degli utenti a titolo gratuito fino a un limite di 500.000 oggetti. Come già per Amazon ECS, anche in Azure Container Service non ci sono costi per l’utilizzo di strumenti container. I costi sono applicati solamente per l’utilizzo dell’infrastruttura alla base.

Vantaggi Svantaggi
Completamente integrato con la piattaforma cloud Azure Scelta limitata di sistemi operativi
Supporta tutti gli strumenti di orchestrazione standard
Hai trovato questo articolo utile?
Vai al menu principale