Kubernetes: cos’è e tutto quello che non puoi non sapere a riguardo

Perché scegliere Kubernetes

In questo articolo parliamo di Kubernetes, la piattaforma opensource che permette a tutti coloro che la utilizzano di gestire i carichi di lavoro e i servizi containerizzati.

Il suo nome deriva dal greco e significa “pilota” o “timoniere”: questo ci fa capire quanto questo strumento sia utile per gestire i carichi di lavoro e la gestione automatica dei container. Le sue caratteristiche principali quali la vasta gamma di funzionalità e la portabilità tra i diversi cloud provider, hanno contribuito alla sua diffusione e al suo utilizzo da parte degli sviluppatori di tutto il mondo.

(altro…)

Come funziona Docker Repository

Avvicinandoti a Docker avrai sentito parlare di Docker Repository e ti sarai chiesto di cosa si tratta. Siediti comodo che in questa mini guida ti spieghiamo tutto nel dettaglio.

Un Docker repository è un contenitore che contiene una o più Docker image relative ad un software o ad un progetto. Perché più Docker image se il software è sempre lo stesso? Perché di un software si possono avere più versioni.

Ogni volta che lo sviluppatore del software rilascia una nuova versione crea una nuova Docker Image, con lo stesso nome, ma con una versione diversa e successivamente pubblica l’immagine sullo stesso repository.

(altro…)

Come installare docker su Windows

Windows è forse il sistema operativo che richiede più attenzione al momento dell’installazione di Docker. Ci sono infatti alcuni prerequisiti che è necessario tenere in considerazione.

 

Versioni di Windows supportate

Prima di installare Docker per Windows assicurati di avere una versione di Windows compatibile: ad oggi le versioni supportate sono: Windows 10 64-bit: Home, Pro, Enterprise, o Education, versione 1903 (Build 18362 o superiore).

Windows Subsystem per Linux

Come descritto nella documentazione ufficiale di Docker, è necessario prima di installare Docker su Windows, installare il “Windows Subsystem for Linux”.

(altro…)

Come funziona Docker: struttura e funzionamento

Negli ultimi anni, Docker si è guadagnato un posto importante nella vita quotidiana degli sviluppatori. Vediamo di fare una panoramica di questo tool e capire come funziona Docker dietro le quinte.

Caratteristiche di Docker

Una delle funzionalità  più importanti offerte da Docker è il tempo di avvio istantaneo. Un container Docker può essere avviato in una frazione di tempo minima, un’operazione velocissima che niente ha a che vedere con i minuti che ci vogliono per l’avvio di una macchina virtuale.

Docker utilizza le funzionalità  del kernel Linux per l’avvio e l’interazione con i container. A causa di questa dipendenza dal kernel Linux, quando Docker viene eseguito su altri sistemi come MacOs, viene avviato un ulteriore livello di virtualizzazione, che normalmente viene “mascherato” da Docker for Mac (come utente utilizzatore non noterai la differenza, se non in termini di velocità ).

Cos’è la virtualizzazione?

Docker è uno strumento utilizzato per eseguire container: I container sono simili alle macchine virtuali pertanto simulano una macchina in esecuzione all’interno del tuo computer reale. Se non hai mai utilizzato VirtualBox o VMware, ad esempio potresti avere familiarità  con le macchine virtuali utilizzate per eseguire Windows all’interno di un Mac.

Una macchina virtuale simula tutte le parti di un computer reale, inclusi lo schermo e il disco rigido, che sul computer reale (spesso indicato come host) è solo un grande singolo file (chiamato disco rigido virtuale). Su una macchina virtuale (o VM) che esegue Windows, il disco rigido virtuale contiene tutto il codice del sistema operativo Windows, che può essere di diversi gigabyte.

Windows nella VM non sa di essere in esecuzione all’interno di una simulazione e dunque in sostanza all’interno di un vero computer, “pensa” solo di essere egli stesso il sistema operativo principale. Docker per intenderci, come VirtualBox, “virtualizza” un sistema operativo all’interno di un sistema operativo host.

Qual è la differenza tra una VM e un container?

L’utilizzo di una macchina virtuale può essere impegnativo per un processore. Nell’esempio di prima, non solo l’host Mac esegue tutte le attività  in background di Mac OS, ma esegue anche tutte le attività  in background di Windows, che costituiscono tutte un programma pesante per l’host.

Il sistema operativo host ha il controllo sulla potenza di elaborazione che è in grado di fornire ad un programma ed è proprio per questo motivo che le macchine virtuali spesso funzionano molto lentamente.
Può essere dunque particolarmente faticoso eseguire più VM contemporaneamente, perché ciò significherebbe chiedere ad un computer di eseguire diversi sistemi operativi contemporaneamente mantenendo giganteschi dischi rigidi virtuali contenenti diversi sistemi operativi.

L’esecuzione di più istanze dello stesso sistema operativo è spesso ridondante e non necessaria, inoltre rischia di vanificare l’esecuzione di un sistema operativo virtualizzato.

I container invece condividono risorse ridondanti, come alcuni file del sistema operativo di grandi dimensioni, e le risorse hardware vengono assegnate dinamicamente a seconda della necessità  di ogni container sul momento.

come funziona Docker

In conclusione

I Docker container sono molto utili per creare ambienti isolati in cui eseguire programmi separati senza interferire tra loro, infatti facilitano la vita dello sviluppatore che si troverà  a lavorare in un ambiente isolato senza interferire con la configurazione dell’host.

Se desideri saperne di più su Docker, puoi leggere “How to get started with Docker“, per scoprire come scrivere un Dockerfile, per creare immagini personalizzate e per capire come utilizzare Docker Compose per orchestrare diversi container Docker.

Come utilizzare Docker Compose

Docker Compose è uno degli strumenti più utili per gli sviluppatori e i sys admin. La maggior parte delle posizioni lavorative in ambito IT infatti richiedono la conoscenza di Docker e di Docker Compose. Senza dubbio, sapere come utilizzare queste tecnologie costituirà  un vantaggio nel proseguimento della tua carriera.

Cos’è Docker compose?

In poche parole, Docker Compose è uno strumento che ti consente di gestire più Docker containers. Ricordi i micro-services, ossia il concetto di suddividere un’applicazione web in diversi servizi? Ebbene, questi servizi verranno eseguiti in singoli container che devono essere gestiti e devono essere messi in condizione di dialogare tra loro. Docker compose permette di fare proprio questo. (altro…)

Come creare un container con Docker

Continuiamo con le nostre guide dedicate a Docker. Oggi vediamo nel dettaglio un argomento di quelli davvero fondamentali per tutti coloro che si occupano di sviluppo web: Docker container.

Un container è l’istanza in esecuzione di un’applicazione in un ambiente isolato al quale vengono dinamicamente assegnate risorse per l’esecuzione. Il container al suo interno contiene l’applicazione da eseguire e tutto ciò di cui necessita: runtime, librerie, configurazione, ecc.

Qual è la differenza tra immagine e container?

L’immagine docker è un package statico, nel quale vengono pacchettizzate tutte le risorse necessarie all’esecuzione di un’applicazione. (altro…)

Come creare un ambiente Docker ottimale

Per lo sviluppo di un software è necessario avere a disposizione un ambiente locale con tutti i servizi a disposizione per la corretta esecuzione dell’applicazione che si sta sviluppando.

Ad esempio, se si sta sviluppando un’applicazione web con Symfony, sarà  necessario avere a disposizione un webserver come Apache o Nginx, un interprete PHP e probabilmente un database sul quale salvare i dati, come Postgre o MySql. (altro…)