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

di Marco De Sanctis, 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

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

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

Approfondimenti

Top Ten Articoli

Articoli via e-mail

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

In primo piano

I più letti di oggi

In evidenza

Misc