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

@@ -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}