feat: update bibliography with new references and enhance Docker section in Tesi.tex
All checks were successful
Build LaTeX Document / build_latex (push) Successful in 2m55s

This commit is contained in:
2025-03-18 22:49:08 +01:00
parent 686a272064
commit 4f44cf5c0f
5 changed files with 89 additions and 23 deletions

View File

@@ -1,18 +1,3 @@
@article{Blum2021,
title = {WebRTC - Realtime Communication for the Open Web Platform: What was once a way to bring audio and video to the web has expanded into more use cases we could ever imagine.},
volume = {19},
ISSN = {1542-7749},
url = {http://dx.doi.org/10.1145/3454122.3457587},
DOI = {10.1145/3454122.3457587},
number = {1},
journal = {Queue},
publisher = {Association for Computing Machinery (ACM)},
author = {Blum, Niklas and Lachapelle, Serge and Alvestrand, Harald},
year = {2021},
month = feb,
pages = {7793}
}
@misc{acestreamAnnouncementStream,
author = {},
title = {{A}nnouncement! {A}{C}{E} {S}tream; {N}ew era of {T}{V} and {I}nternet broadcasting --- oldforum.acestream.media},
@@ -80,6 +65,29 @@
journal = {{IEEE} Communications Surveys {\&} Tutorials}
}
@misc{AzureFunctions,
author = {Franco Palermo},
title = {{A}zure {F}unctions with {D}ocker --- franco.palermo812},
howpublished = {\url{https://medium.com/@franco.palermo812/azure-functions-with-docker-47e22866330}},
year = {},
note = {[Accessed 18-03-2025]}
}
@article{Blum2021,
title = {WebRTC - Realtime Communication for the Open Web Platform: What was once a way to bring audio and video to the web has expanded into more use cases we could ever imagine.},
volume = {19},
issn = {1542-7749},
url = {http://dx.doi.org/10.1145/3454122.3457587},
doi = {10.1145/3454122.3457587},
number = {1},
journal = {Queue},
publisher = {Association for Computing Machinery (ACM)},
author = {Blum, Niklas and Lachapelle, Serge and Alvestrand, Harald},
year = {2021},
month = feb,
pages = {7793}
}
@article{Budhkar2019,
doi = {10.1007/s12083-019-00755-x},
url = {https://doi.org/10.1007/s12083-019-00755-x},
@@ -110,6 +118,22 @@
note = {[Accessed 18-03-2025]}
}
@misc{geeksforgeeksContainerizationUsing,
author = {},
title = {{C}ontainerization using {D}ocker - {G}eeksfor{G}eeks --- geeksforgeeks.org},
howpublished = {\url{https://www.geeksforgeeks.org/containerization-using-docker/}},
year = {},
note = {[Accessed 18-03-2025]}
}
@misc{geeksforgeeksDockerNetworking,
author = {},
title = {{D}ocker {N}etworking - {G}eeksfor{G}eeks --- geeksforgeeks.org},
howpublished = {\url{https://www.geeksforgeeks.org/basics-of-docker-networking/}},
year = {},
note = {[Accessed 18-03-2025]}
}
@misc{githubGitHubWebtorrentbittorrenttracker,
author = {},
title = {{G}it{H}ub - webtorrent/bittorrent-tracker: {S}imple, robust, {B}it{T}orrent tracker (client \& server) implementation --- github.com},

View File

@@ -595,14 +595,14 @@ Perciò abbiamo deciso di creare un sistema di test automatizzato che possa ripr
Per verificare le affermazioni degli sviluppatori di PeerTube, abbiamo deciso di:
\begin{itemize}
\item Creare un'automazione per riprodurre i test descritti nell'articolo
\item Creare un'automazione per riprodurre indipendentemente i test descritti nell'articolo
\item Raccogliere metriche più dettagliate rispetto a quelle presentate nell'articolo originale
\item Analizzare aspetti non considerati, come latenza, qualità dell'esperienza utente e comportamento in condizioni di rete non ideali
\item Analizzare i dati raccolti per valutare le prestazioni del sistema P2P di PeerTube
\end{itemize}
\subsection{Stack tecnologico per i test}
Per i nostri test abbiamo utilizzato:
Per i nostri test abbiamo utilizzato una combinazione di tecnologie open source per creare un sistema di test automatizzato che sfrutta le seguenti tecnologie:
\begin{itemize}
\item \textbf{Docker}: Per creare ambienti isolati e facilmente riproducibili
@@ -610,10 +610,51 @@ Per i nostri test abbiamo utilizzato:
\item \textbf{MongoDB}: Per l'archiviazione strutturata dei dati raccolti
\item \textbf{Python}: Come linguaggio principale per l'automazione
\item \textbf{Selenium}: Per simulare browser reali che guardano lo stream
\item \textbf{webrtc-internals-exporter}: Per raccogliere metriche dettagliate sulle connessioni WebRTC
\item \textbf{webrtc-internals-exporter}: Una estensione del browser creata per raccogliere metriche dettagliate sulle connessioni WebRTC
\item \textbf{Hetzner Cloud}: Per distribuire i test su macchine virtuali in diverse regioni geografiche
\end{itemize}
\subsection{Docker}
Docker è una piattaforma open source che semplifica la creazione, la distribuzione e l'esecuzione di applicazioni in contenitori. I contenitori Docker sono degli ambienti isolati che simulano un sistema operativo completo, come le macchine virtuali, consentendo di eseguire applicazioni in modo consistente su qualsiasi ambiente.
La differeneza tra docker e una macchina virtuale è che i container Docker condividono il kernel del sistema operativo host, riducendo l'overhead e migliorando le prestazioni, senza dover ricorrere ad un `Hypervisor' per la virtualizzazione.
\begin{figure}[H]
\centering
\includegraphics[width=350pt]{images/docker-engine.png}
\caption{Docker Engine.}
\end{figure}
In se Docker è composto da 4 componenti principali:
\begin{itemize}
\item \textbf{Docker Engine}: Il core del sistema, responsabile della creazione e gestione dei container nonché il pricesso demone eseguito sulla macchina host. Fornisce l'accesso a tutte le funzionalità e i
servizi messi a disposizione da Docker. Mette a disposizione un insieme di comandi per la gestione dei container, delle immagini e dei volumi.
\item \textbf{Docker Client}: Interfaccia da riga di comando e `API' per interagire con Docker Engine.
\item \textbf{Docker Image}: Un `template' di sola lettura che contiene e definisce i parametri di una applicazione da eseguire in un container a runtime. Le immagini vengono create e organizzate per livelli `stateless' e immutabil.
\item \textbf{Docker Container}: Un'istanza in esecuzione di un'immagine Docker. Un container è un ambiente isolato che esegue un'applicazione specifica e include tutto il necessario per eseguire l'applicazione, come il codice, le librerie, le variabili d'ambiente e le dipendenze. Il `filesystem' del container è l'ultimo livello che viene aggiunto al quale vi è possibile accedere sia in lettura che in scrittura. I contenitori, inoltre, possono essere associati a dei volumi per la persistenza dei dati, i quali fornisono un metodo semplice e immediato per condivuidere dati tra i container e l'host.\\La comunicazione tra container avviene tramite la creazione di `network' o reti separate che vengono connesse ai singoli container, abilitando così una sorta di LAN interna tra un insieme di container. Per far, invece, comunicare i container con il mondo esterno bisogna invece utilizzare i `port mapping' tra una porta della macchina host e una porta del container.
\end{itemize}
\begin{figure}[H]
\centering
\includegraphics[width=200pt]{images/0_ukWqRD74ltfb5Uaz.png}
\caption{Docker Overview.}
\end{figure}
Approfondendo il discordo del `networking', Docker mette a disposizione varti tipi di `network' per la comunicazione tra container, i 3 principali sono:
\begin{itemize}
\item \textbf{Bridge}: È il `network' di default che viene creato quando si installa Docker. I container connessi a questo `network' possono comunicare tra loro e con il host, ma non possono comunicare con i container in altri `network'.
\item \textbf{Host}: I container connessi a questo `network' condividono la rete dell'host, quindi non hanno bisogno di fare il `port mapping' per comunicare con il mondo esterno.
\item \textbf{None}: I container connessi a questo `network' non hanno accesso alla rete, quindi non possono comunicare con altri container o con l'esterno.
\end{itemize}
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{images/Docker-network-1.png}
\caption{Docker Networking.}
\end{figure}
\cite{AzureFunctions} \cite{geeksforgeeksContainerizationUsing} \cite{geeksforgeeksDockerNetworking}
\subsection{Architettura del sistema di test}
Il nostro sistema di test è composto da:
@@ -665,6 +706,7 @@ Per ciascuno scenario, abbiamo variato il numero di spettatori (10, 30, 50, 100)
\nocite{*}
\printbibliography
\sloppy
\addcontentsline{toc}{chapter}{Bibliografia}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
images/Docker-network-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

BIN
images/docker-engine.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB