Docker e ASP.NET Core: portare i nostri siti web su container

di , in ASP.NET Core,

Gestire il ciclo di vita del software in produzione ha rappresentato, da sempre, uno dei nodi cruciali dell'information technology. La sfida più grande è senza dubbio quella di fare in modo che applicazioni diverse riescano a coesistere nello stesso scenario di deploy senza creare conflitti a vicenda. Le Virtual Machine, in questo contesto, sono da considerare come una vera e propria chiave di volta: prima del loro avvento, infatti, l'unico modo per garantire l'isolamento dei vari componenti del nostro software era quello di utilizzare diversi server fisici: il backend web server, il frontend web server, il DB server, e così via.

Grazie alle virtual machine, invece, è stato possibile simulare l'hardware e fare in modo che, all'interno di uno stesso server fisico, potessero coesistere diversi server virtuali, assolutamente isolati tra di loro, ma comunque in grado di comunicare e interagire. Di colpo, in altre parole, aggiornare un componente software o aggiungere un server alla nostra infrastruttura è diventato qualcosa che potevamo realizzare con pochi click.

Purtroppo però, non si tratta di un modello perfetto, e la ragione è in un certo senso sintetizzata dall'immagine in basso:

Figura 1

Ogni Virtual Machine, infatti, ha bisogno di replicare il sistema operativo, cosa che costituisce uno spreco di spazio su disco, di CPU e di memoria. In altre parole, di risorse.

Il modello dei container

I container rappresentano un concetto molto simile a quello di una virtual machine: sono componenti che possiamo avviare e dismettere, ma che, allo stesso tempo, sono estremamente più leggeri, dato che riducono al massimo le risorse necessarie per la loro esecuzione:

Figura 2

Questo è possibile grazie a un runtime che è in grado di eseguirli in una sandbox del sistema operativo. Ogni sandbox ha il suo proprio process tree, il suo file system, la sua memoria e la sua interfaccia di rete. La differenza rispetto al caso delle virtual machine è che, invece dell'hardware, i container virtualizzano il kernel del sistema operativo, e pertanto sono molto meno esosi di richieste.

In questo panorama, lo standard de-facto per l'esecuzione di container è Docker, un engine open source per l'authoring e l'esecuzione di container, la cui community edition è liberamente scaricabile e utilizzabile anche in scenari di produzione. Esiste anche una versione enterprise che aggiunge servizi particolari, quali hosting, support, certification, per la quale è prevista una tariffa mensile.

9 pagine in totale: 1 2 3 ... 6 7 8 9
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

Docker e ASP.NET Core: portare i nostri siti web su container 1010 4
| Condividi su: Twitter, Facebook, LinkedIn, Google+

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti