Container as a Service mette a di­spo­si­zio­ne piat­ta­for­me container come soluzioni complete di hosting su cloud. Ti sveliamo di cosa si tratta e ti pre­sen­tia­mo quattro delle piat­ta­for­me CaaS più popolari. Inoltre, ti spie­ghia­mo come sfruttare in ambito aziendale i servizi container basati su cloud.

Cos’è CaaS?

CaaS, ab­bre­via­zio­ne di Container as a Service, è un modello di business in cui i fornitori delle piat­ta­for­me di cloud computing mettono a di­spo­si­zio­ne pre­sta­zio­ni relative alla vir­tua­liz­za­zio­ne basata su container come servizio online ri­di­men­sio­na­bi­le. Ciò permette di prendere in con­si­de­ra­zio­ne servizi container senza per forza dover disporre di un’in­fra­strut­tu­ra che, in teoria, sarebbe in­di­spen­sa­bi­le per uti­liz­zar­li. Il termine è una classica espres­sio­ne del mondo del marketing che si rifà al altri modelli di servizi cloud come In­fra­struc­tu­re 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 pre­sta­zio­ni offerto da un provider di cloud computing che permette agli utenti di svi­lup­pa­re software in co­sid­det­ti container di ap­pli­ca­zio­ne, di ef­fet­tua­re dei test, di eseguirli oppure di di­stri­buir­li at­tra­ver­so in­fra­strut­tu­re in­for­ma­ti­che apposite. Qui entra in gioco un concetto derivante dal mondo Linux: questa tec­no­lo­gia permette la vir­tua­liz­za­zio­ne a livello del sistema operativo eseguendo singole ap­pli­ca­zio­ni, incluse tutte le funzioni annesse come le librerie e i file di con­fi­gu­ra­zio­ne, sotto forma di istanze in­cap­su­la­te. Ciò permette l’utilizzo si­mul­ta­neo su un unico sistema operativo di più ap­pli­ca­zio­ni aventi diverse richieste e la di­stri­bu­zio­ne tramite sistemi dif­fe­ren­ti.

Di norma, il modello CaaS contiene un ambiente container completo, inclusi gli strumenti di or­che­stra­zio­ne, un catalogo di immagini (il co­sid­det­to registry), un software di gestione dei cluster e infine un set di strumenti per svi­lup­pa­to­ri e di API.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estre­ma­men­te van­tag­gio­se e potenti core dedicati
  • Massima fles­si­bi­li­tà senza periodo con­trat­tua­le minimo
  • Servizio di as­si­sten­za tecnica 24 ore su 24, 7 giorni su 7

CaaS: dif­fe­ren­za da altri servizi cloud

A partire dalla metà degli anni 2000 grazie al cloud computing le aziende e i privati hanno a di­spo­si­zio­ne un’al­ter­na­ti­va per la pre­pa­ra­zio­ne di risorse IT su macchina locale (on-premises). In questo contesto, oltre a CaaS, sono par­ti­co­lar­men­te noti i seguenti tre modelli di servizio:

  • IaaS: In­fra­struc­tu­re as a Service comprende la pre­pa­ra­zio­ne di risorse hardware virtuali come la per­for­man­ce del computer, lo spazio di ar­chi­via­zio­ne e le capacità di rete. I fornitori IaaS mettono a di­spo­si­zio­ne questi pilastri alla base delle in­fra­strut­tu­re IT sotto forma di macchine virtuali (VM) o di Virtual Local Area Networks (VLAN).
  • PaaS: il livello in­ter­me­dio del modello di cloud computing viene definito come Platform as a Service. Nell’ambito del modello PaaS, i servizi cloud mettono a di­spo­si­zio­ne le piat­ta­for­me di pro­gram­ma­zio­ne 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 ap­pli­ca­zio­ne. Con Software as a Service si intende la pre­pa­ra­zio­ne di software di ap­pli­ca­zio­ne tramite internet. In questo modello di servizio i programmi messi a di­spo­si­zio­ne non fun­zio­na­no 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’ero­ga­zio­ne di risorse in loco (on-premises).

In questa sud­di­vi­sio­ne 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 dif­fe­ren­zia però per un approccio di vir­tua­liz­za­zio­ne es­sen­zial­men­te diverso: la tec­no­lo­gia dei container.

De­fi­ni­zio­ne

Container as a Service è una forma di vir­tua­liz­za­zio­ne basata su container in cui l’ambiente di runtime, gli strumenti di or­che­stra­zio­ne e le risorse di in­fra­strut­tu­ra alla base vengono messi a di­spo­si­zio­ne da un provider di cloud computing.

Come funziona CaaS?

La base di Container as a Service è un cluster di computer, messo a di­spo­si­zio­ne su cloud che può essere par­zial­men­te no­leg­gia­to dagli utenti per caricare, generare, gestire cen­tral­men­te ed eseguire sulla piat­ta­for­ma cloud le ap­pli­ca­zio­ni basate su container. L’in­te­ra­zio­ne con l’ambiente container basato su cloud avviene o tramite un’in­ter­fac­cia grafica (GUI) o sotto forma di chiamate API. I tipi di tec­no­lo­gie container a di­spo­si­zio­ne degli utenti si dif­fe­ren­zia­no a seconda dei provider. Il fulcro di ogni piat­ta­for­ma CaaS è tuttavia uno strumento di or­che­stra­zio­ne (co­no­sciu­to anche come or­che­stra­tor), che permette la gestione di ar­chi­tet­tu­re container più complesse. A questo scopo risultano es­sen­zia­li le seguenti funzioni:

  • Di­stri­bu­zio­ne di container su più host
  • Rag­grup­pa­men­to di container in unità logiche
  • Ri­di­men­sio­na­men­to dei container
  • Load balancing (bi­lan­cia­men­to del carico)
  • As­se­gna­zio­ne di capacità di ar­chi­via­zio­ne
  • In­ter­fac­cia di co­mu­ni­ca­zio­ne tra container
  • Service discovery

La scelta dell’or­che­stra­tor coinvolto nell’utilizzo di CaaS ha una diretta influenza su quali funzioni sono a di­spo­si­zio­ne degli utenti del servizio cloud. At­tual­men­te nel mercato della vir­tua­liz­za­zio­ne basata su container dominano so­prat­tut­to i seguenti strumenti di or­che­stra­zio­ne: Docker Swarm, Ku­ber­ne­tes, OpenShift e Amazon Elastic Container Service (ECS).

Consiglio

In articoli appositi della Digital Guide trovi de­scri­zio­ni det­ta­glia­te degli strumenti di or­che­stra­zio­ne più diffusi e degli strumenti per Docker, nonché un confronto det­ta­glia­to tra OpenShift e Ku­ber­ne­tes.

Cosa con­trad­di­stin­gue 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 or­che­stra­zio­ne sono di­spo­ni­bi­li?
  • Quali formati di file per le ap­pli­ca­zio­ni container sono sup­por­ta­ti?
  • È possibile eseguire ap­pli­ca­zio­ni multi-con­te­ni­to­re?
  • Come vengono gestiti i cluster per il fun­zio­na­men­to dei container?
  • Quali funzioni di rete e di memoria sono sup­por­ta­te?
  • 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 fat­tu­ra­zio­ne di­spo­ni­bi­li?

I servizi CaaS di­spo­ni­bi­li sul mercato in sintesi

La tec­no­lo­gia dei container è in pieno boom e di con­se­guen­za l’offerta di servizi CaaS prospera. Tra i prodotti offerti pra­ti­ca­men­te da tutti i provider di cloud pubblici si trovano servizi per la vir­tua­liz­za­zio­ne a livello del sistema operativo. Anche Amazon, Microsoft, Google e IONOS, che at­tual­men­te sono le figure più im­por­tan­ti sul mercato di CaaS, hanno ampliato le loro piat­ta­for­me cloud con una soluzione container basata su Docker.

N.B.

Docker è una delle piat­ta­for­me container più co­no­sciu­te e im­por­tan­ti sul mercato. Il formato container svi­lup­pa­to da Docker, ossia uno sviluppo del container di Linux (LXC), è am­pia­men­te diffuso e sup­por­ta­to da tutti i provider CaaS.

IONOS Cloud Managed Ku­ber­ne­tes

Il servizio Managed Ku­ber­ne­tes è la piat­ta­for­ma ideale per ap­pli­ca­zio­ni container ad alte pre­sta­zio­ni e altamente scalabili. Di­spo­ni­bi­le di­ret­ta­men­te tramite il pannello IONOS Cloud, esso combina la piat­ta­for­ma IaaS di IONOS con le tec­no­lo­gie container leader di mercato Docker e Ku­ber­ne­tes.

Immagine: Sito web del prodotto IONOS Managed Kubernetes
IONOS Cloud Managed Ku­ber­ne­tes: hai in unico pacchetto l’hosting di cluster, di­stri­bu­zio­ne di container e or­che­stra­zio­ne.

La soluzione CaaS di IONOS è rivolta agli svi­lup­pa­to­ri, alle svi­lup­pa­tri­ci e alle ope­ra­zio­ni IT e consente di fornire, gestire e scalare ap­pli­ca­zio­ni basate su container in cluster Ku­ber­ne­tes. La gamma di funzioni comprende:

  • Nodi cloud gestiti con risorse server dedicate
  • Gestione in­di­vi­dua­le dei cluster
  • Accesso completo ai con­te­ni­to­ri di ap­pli­ca­zio­ni
  • Or­che­stra­zio­ne per­so­na­liz­za­ta
  • 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’ero­ga­zio­ne e alla gestione del cluster di container. Non viene offerto supporto diretto per kubectl o la dashboard di Ku­ber­ne­tes. Diverse ap­pli­ca­zio­ni di terze parti come Febrac8, Helm, GitLab o Au­to­sca­ler sono di­spo­ni­bi­li 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 Ku­ber­ne­tes consente la con­fi­gu­ra­zio­ne com­ple­ta­men­te au­to­ma­tiz­za­ta di cluster Ku­ber­ne­tes. Il servizio è gratuito: si paga solo l’in­fra­strut­tu­ra IONOS Cloud sot­to­stan­te che viene ef­fet­ti­va­men­te fornita.

Vantaggi Svantaggi
Piena com­pa­ti­bi­li­tà con Ku­ber­ne­tes Manca il supporto software per kubectl e Ku­ber­ne­tes
Ampia selezione di soluzioni di terze parti pre-in­stal­la­te
Elevata por­ta­bi­li­tà
Managed Ku­ber­ne­tes
Or­che­stra­zio­ne sicura dei carichi di lavoro dei container
  • Con­fi­gu­ra­zio­ne au­to­ma­ti­ca dei cluster Ku­ber­ne­tes
  • Ar­chi­via­zio­ne per­si­sten­te com­ple­ta­men­te integrata
  • As­si­sten­za clienti 24/7

Amazon Elastic Container Service (ECS)

Da aprile 2015 la piat­ta­for­ma di commercio online Amazon mette a di­spo­si­zio­ne delle soluzioni per la vir­tua­liz­za­zio­ne basate su container nell’ambito della piat­ta­for­ma di cloud computing AWS (Amazon Web Service): si tratta di Amazon Elastic Container Service (ECS). Come il servizio di IONOS, ECS supporta solo con­te­ni­to­ri nel formato Docker.

FnFvpIsBrog.jpg Per vi­sua­liz­za­re questo video, sono necessari i cookie di terze parti. Puoi accedere e mo­di­fi­ca­re le im­po­sta­zio­ni dei cookie qui.

Amazon ECS offre agli utenti diverse in­ter­fac­ce che per­met­to­no di eseguire ap­pli­ca­zio­ni 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à ri­di­men­sio­na­bi­li di calcolo del servizio di cloud computing di Amazon, che viene no­leg­gia­to sotto forma di istanze.
  • Amazon S3 (Amazon Simple Storage): Amazon S3 è una piat­ta­for­ma di storage di oggetti (object storage).
  • Amazon EBS (Amazon Elastic Block Store): Amazon EBS mette a di­spo­si­zio­ne volumi di storage per­si­sten­te a blocchi per istanze EC2.
  • Amazon RDS (Amazon Re­la­tio­nal Database Service): Amazon RDS è un servizio di database per la gestione dei motori di database re­la­zio­na­li Amazon Aurora, Post­gre­SQL, MySQL, MariaDB, Oracle e Microsoft SQL Server.

Su ECS, nelle im­po­sta­zio­ni standard la gestione di container avviene tramite un or­che­stra­to­re pro­prie­ta­rio che funge da master e comunica con un agente a ogni nodo del cluster da gestire. In al­ter­na­ti­va viene offerto un modulo open source: si tratta di Blox, il quale permette di integrare in ECS anche scheduler svi­lup­pa­ti per­so­nal­men­te, nonché strumenti di terze parti come Mesos.

Un punto di forza di Amazon EC2 Container Service è la sua in­te­gra­zio­ne con altri servizi Amazon, come lo strumento di gestione dei permessi “AWS Identity and Access Ma­na­ge­ment (IAM)”, il bi­lan­cia­to­re di carico del cloud “Elastic Load Balancing” o il servizio di mo­ni­to­rag­gio “Amazon Cloud­Watch”.

Uno svan­tag­gio di Amazon EC2 Container Service è la li­mi­ta­zio­ne alle istanze EC2. Il servizio CaaS di Amazon non offre alcun supporto per le in­fra­strut­tu­re IT al di fuori di AWS, né fisico né virtuale. Gli scenari di cloud ibridi non sono possibili quanto non lo è una com­bi­na­zio­ne delle risorse IT di dif­fe­ren­ti 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 di­spo­si­zio­ne tramite AWS prin­ci­pal­men­te a titolo gratuito. Si paga esclu­si­va­men­te per la di­spo­ni­bi­li­tà dell’in­fra­strut­tu­ra cloud, ad esempio per un cluster di istanze EC2 che funge da base per l’utilizzo di ap­pli­ca­zio­ni container.

Vantaggi Svantaggi
In­te­gra­zio­ne con altri prodotti AWS L’im­ple­men­ta­zio­ne dei container è limitata alle istanze Amazon EC2
Gratuito da usare (costi di in­fra­strut­tu­ra) Or­che­stra­to­re pro­prie­ta­rio

Google Ku­ber­ne­tes Engine (GKE)

Anche Google ha integrato un servizio container ospitato sul cloud pubblico: si tratta di Google Ku­ber­ne­tes Engine (GKE). Un com­po­nen­te fon­da­men­ta­le di questo servizio CaaS è lo strumento di or­che­stra­zio­ne Ku­ber­ne­tes.

pQ87vVMZK-A.jpg Per vi­sua­liz­za­re questo video, sono necessari i cookie di terze parti. Puoi accedere e mo­di­fi­ca­re le im­po­sta­zio­ni dei cookie qui.

GKE attinge a risorse di Google Compute Engine (GCE) e permette agli utenti di eseguire ap­pli­ca­zio­ni basate su container sui cluster nel cloud di Google. Sull’in­fra­strut­tu­ra di Google non si hanno limiti con GKE: il sistema di fe­de­ra­zio­ne dei cluster dell’or­che­stra­to­re Ku­ber­ne­tes fa sì che si possano sin­te­tiz­za­re risorse di diversi cluster di computer in una fe­de­ra­zio­ne di calcolo logica e in caso di necessità permette anche di rea­liz­za­re scenari di cloud ibridi e multi-cloud.

Ogni cluster rea­liz­za­to con l’aiuto di GKE è co­sti­tui­to da un master di Ku­ber­ne­tes, sul quale viene eseguito il server API di Ku­ber­ne­tes, 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, am­pia­men­te diffuso. Per la pre­pa­ra­zio­ne di immagini Docker gli utenti hanno a di­spo­si­zio­ne un registry di container privato e una sintassi basata su JSON permette di definire servizi container come template.

L’in­te­gra­zio­ne di Ku­ber­ne­tes su GKE offre le seguenti funzioni per l’or­che­stra­zio­ne di ap­pli­ca­zio­ni container:

  • Automatic Bin­pac­king: Ku­ber­ne­tes posiziona au­to­ma­ti­ca­men­te i container sulla base di li­mi­ta­zio­ni e richieste di risorse in modo tale che il cluster sia caricato in maniera equi­li­bra­ta.
  • Health check con funzione di ri­pa­ra­zio­ne au­to­ma­ti­ca: grazie a controlli dello stato au­to­ma­ti­ci, Ku­ber­ne­tes assicura che tutti i nodi e container fun­zio­ni­no per­fet­ta­men­te.
  • Ri­di­men­sio­na­men­to oriz­zon­ta­le: con Ku­ber­ne­tes si possono ri­di­men­sio­na­re le ap­pli­ca­zio­ni a piacere, au­men­tan­do­le o di­mi­nuen­do­le.
  • Service discovery e load balancing: Ku­ber­ne­tes offre due metodi per il service discovery. I servizi possono essere rin­trac­cia­ti tramite variabili di ambiente e record DNS. Si può rea­liz­za­re un bi­lan­cia­men­to del carico tra diversi container at­tra­ver­so indirizzi IP e nomi DNS.
  • Or­che­stra­zio­ne dell’archivio: Ku­ber­ne­tes permette il montaggio au­to­ma­ti­co di diversi sistemi di ar­chi­via­zio­ne.

Per quanto concerne i costi del servizio CaaS, Google segue una strada dif­fe­ren­te da Amazon. Nella versione di base gratuita, è possibile uti­liz­za­re un credito mensile di 74,40 dollari per account di fat­tu­ra­zio­ne, che viene applicato ai cluster zonali e autopilot. Nelle edizioni “Ku­ber­ne­tes” si paga per ora e per vCPU o cluster. I costi del piano “Compute” si basano sui prezzi del Compute Engine.

Vantaggi Svantaggi
In­te­gra­zio­ne con gli altri prodotti Google Curva di ap­pren­di­men­to ripida
In­te­ro­pe­ra­bi­li­tà Può diventare ra­pi­da­men­te costoso

Microsoft Azure Ku­ber­ne­tes Service (AKS)

Azure Ku­ber­ne­tes Service (AKS) è un ambiente di hosting ot­ti­miz­za­to per Azure, la piat­ta­for­ma di cloud computing di Microsoft, che permette agli utenti di svi­lup­pa­re ap­pli­ca­zio­ni basate su container e di renderle di­spo­ni­bi­li in cluster di computer ri­di­men­sio­na­bi­li. AKS si basa su una versione ot­ti­miz­za­ta 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)
Screen­shot del sito di Azure Ku­ber­ne­tes Service (AKS); fonte: https://azure.microsoft.com/it-it/products/ku­ber­ne­tes-service/

Quali sono le funzioni di­spo­ni­bi­li per gli utenti di AKS durante l’utilizzo di ap­pli­ca­zio­ni con­tai­ne­riz­za­te sul cloud di Azure, dipende per prima cosa dalla scelta dell’or­che­stra­to­re. I più diffusi or­che­stra­to­ri di container sup­por­ta­ti sono Ku­ber­ne­tes, DC/OS e Docker Swarm. Nella versione Docker Swarm, AKS si basa sullo stack Docker e utilizza le stesse tec­no­lo­gie open source dello Universal Control Plane di Docker (un com­po­nen­te di base di Docker Da­ta­cen­ter). Im­ple­men­ta­to in Azure Container Service, Docker Swarm offre la seguente gamma di funzioni per l’or­che­stra­zio­ne e la sca­la­bi­li­tà delle ap­pli­ca­zio­ni container:

  • Docker Compose: la soluzione di Docker per ap­pli­ca­zio­ni 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 per­met­to­no 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.
  • Di­stri­bu­zio­ne basata su regole: la di­stri­bu­zio­ne di container di Docker all’interno del cluster è gestibile tramite etichette e li­mi­ta­zio­ni.
  • Service discovery: Docker Swarm offre agli utenti diverse funzioni di service discovery.

Oltre a ciò, Microsoft ha ampliato AKS con funzioni CI/CD (Con­ti­nuous In­te­gra­tion and De­ploy­ment) per ap­pli­ca­zio­ni multi-container che sono state svi­lup­pa­te con Visual Studio, Visual Studio Team Services o lo strumento open source Visual Studio Code.

L’Identity and Access Ma­na­ge­ment su Azure viene regolato tramite Active Directory, le cui funzioni base sono a di­spo­si­zio­ne 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’in­fra­strut­tu­ra alla base.

Vantaggi Svantaggi
Com­ple­ta­men­te integrato con la piat­ta­for­ma cloud Azure Scelta limitata di sistemi operativi
Supporta tutti gli strumenti di or­che­stra­zio­ne standard
Vai al menu prin­ci­pa­le