Cos'è Docker e come utilizzarlo per implementare Noisy

Come promesso a dicembre, in questo articolo spiegheremo come velocizzare Noisy; questi è uno script di cui abbiamo già descritto qui il funzionamento e che, il momento in cui è attivo, ci permette di oscurare le nostre abitudini di navigazione generando ogni secondo una nuova richiesta ad un diverso URL; di norma tale velocità si può ritenere più che accettabile, ma è possibile aumentarla e qui vedremo come.

Si ritiene doveroso, quindi, spiegare cosa sia Docker poiché, negli ultimi tempi se ne sente parecchio parlare nell’ambito informatico, ma molto spesso può risultare poco chiaro il suo possibile utilizzo. Docker, quindi, è un software che “impacchetta software in unità standardizzate per lo sviluppo, l’invio e la distrubuzione“. Cosa significa esattamente tutto ciò? Docker nasce per semplificare l’utilizzo dei container che sono delle “unità autonome di software che si possono consegnare da un server all’altro, da un laptop ad un desktop a qualsiasi altra macchina tecnologica”, tali unità avranno la possibilità di funzionare nello stesso modo a dispetto del tipo di strumento che stiamo utilizzando poiché isolate a livello di processo e contenenti il loro proprio sistema file. Docker quindi ci permette di utilizzare queste unità in modo estremamente più semplice senza incorrere in problemi di compatibilità di sistema, questa sua capacità si rivela particolarmente utile nei lavori di gruppo e nella gestione e creazione di applicazioni.

Il modo migliore, però, per comprendere cosa sia Docker e come possa essere utilizzato è ricorrere ad un esempio concreto: vediamo quindi come implementare la velocità di Noisy con Docker. Prima di tutto, quindi, scarichiamo Docker qui ed installiamolo: durante il processo dovremmo fare il log out da Windows ed il computer potrebbe riavviarsi per una volta. Docker è utilizzabile anche con il sistema operativo Linux installandolo da terminale con il comando apt-get install Docker (i comandi qui sotto riportati sono utilizzabili anche su terminale Linux)

Il momento in cui Docker sarà disponibile ed attivo potremo accedere al terminale che prediligiamo (che sia PowerShell, cioè quello con schermata blu che utilizzeremo noi in questo articolo, o il Command Promt, ovvero il cmd con schermata nera, non fa alcuna differenza come possiamo notare dall’immagine qui sotto) e controllare con due comandi se tutto è funzionante:

docker version
docker run hello-world

Fatto questo, il nostro scopo è velocizzare Noisy (che avremo già installato e provato seguento le istruzioni scritte qui) per cui andremo a cercarci la cartella dove lo script si trova installato che nel nostro caso è documents/noisy/noisy-master (per accedervi basterà dare il comando cd documents/noisy/noisy-master oppure cd + percorso per raggiungere il file in questione). Con il comando ls potremo trovare nella lista la presenza del Dockerfile che ci serve per costruire il nostro container, ovvero la nostra unità isolata. Ricordiamoci che con docker build –help potremo accedere alla lista dei comandi che potrebbero esserci utili. Iniziamo con la costruzione dell’immagine Docker utilizzando il seguente comando:

docker build .

Quello che vogliamo è far partire lo script e rendere il suo container, cioè la sua unità isolata, ripetibile ed è per questo che vogliamo controllare che tipo di immagini abbiamo a disposizione usando il comando:

docker images

Nel caso in cui stessimo utilizzando il terminale di Linux ricordiamoci anche di installare docker-compose per poter utilizzare propriamente i containers (comando: apt install docker-compose). Tale passaggio non serve per coloro che come noi stanno utilizzando Windows poiché tale pacchetto risulterà già presente ed installato nel nostro sistema.

Notiamo la presenza di un’immagine chiamata essa stessa noisy che utilizzeremo tra poco. Con il comando ls avevamo dato un’occhiata ad una lista di directories (o percorsi) all’interno della nostra cartella in cui figurava anche una chiamata examples all’interno della quale si trova docker-compose, spostiamoci quindi in questa zona:

cd examples/docker-compose

Riprovando ad utilizzare il comando ls noteremo la presenza, ora, di un file denominato docker-compose.yml questa è un estensione che può essere lanciata solo in alcune applicazioni, come nel nostro caso:

docker-compose up --scale noisy=10

Dove up ordina al file docker-compose di utilizzare l’immagine noisy che avevano notato poco fa. L’uso di scale accompagnato dal parametro =10 ordina al file di generare 10 richieste al secondo anziché 1 al secondo come accadeva nell’impostazione pre-esistente di Noisy.

A questo punto, per pura curiosità, diamo un’occhiata ad una schermata del nostro traffico network utilizzando il programma Wireshark di cui abbiamo parlato già in passato (qui la sua presentazione e qui un esempio pratico sul suo utilizzo). In specifico, guardiamo cosa succede quando Noisy viene utilizzato così com’è e quando, invece, viene velocizzato con Docker. Senza navigare, quindi, con il computer abbiamo analizzato il traffico della linea osservando in specifico le tempistiche di trasmissione.

Nell’immagine soprastante possiamo notare sulla destra delle tempistiche abbastanza dilatate nella trasmissione dei pacchetti, mentre sulla sinistra, ovvero nel momento che abbiamo attivato lo script Noisy la velocità dello scambio è aumentata.

Come possiamo notare qui sopra, con l’utilizzo di Docker, la velocità di scambio dei pacchetti aumenta vertiginosamente rispetto a quello che accade negli altri due stati mostrati nella schermata antecedente. In tal modo potenziamo Noisy rendendo le nostre abitudini di navigazione difficilmente tracciabili.

Share the love

Comincia la discussione

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.