137 lines
5.8 KiB
TeX
Executable File
137 lines
5.8 KiB
TeX
Executable File
% Chapter Template
|
|
|
|
\chapter{Introduction} % Main chapter title
|
|
|
|
\label{Introduction} % Change X to a consecutive number; for
|
|
% referencing this chapter elsewhere, use \ref{ChapterX}
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includesvg[width=\textwidth]{Figures/clan_thesis_argumentation_tree.drawio.svg}
|
|
\caption{Argumentation Tree for the Clan Thesis}
|
|
\label{fig:clan_thesis_argumentation_tree}
|
|
\end{figure}
|
|
|
|
%----------------------------------------------------------------------------------------
|
|
% SECTION 1
|
|
%----------------------------------------------------------------------------------------
|
|
|
|
\section{Methodology}
|
|
|
|
In this chapter, we will discuss the methodology used in this
|
|
research. We will discuss the research design, and the research limitations.
|
|
|
|
\section{Related Work}
|
|
|
|
The Clan framework operates within the realm of software deployment
|
|
and peer-to-peer networking,
|
|
necessitating a deep understanding of existing methodologies in these
|
|
areas to tackle contemporary challenges.
|
|
This section will discuss related works encompassing system
|
|
deployment, peer data management,
|
|
and low maintenance structured peer-to-peer overlays, which inform
|
|
the development and positioning of the Clan framework.
|
|
|
|
\subsection{Nix: A Safe and Policy-Free System for Software Deployment}
|
|
|
|
Nix addresses significant issues in software deployment by utilizing
|
|
a technique that employs cryptographic
|
|
hashes to ensure unique paths for component instances[1].
|
|
The system is distinguished by its features, such as concurrent
|
|
installation of multiple versions and variants,
|
|
atomic upgrades, and safe garbage collection.
|
|
These capabilities lead to a flexible deployment system that
|
|
harmonizes source and binary deployments.
|
|
Nix conceptualizes deployment without imposing rigid policies,
|
|
thereby offering adaptable strategies for component management[2].
|
|
This contrasts with many prevailing systems that are constrained by
|
|
policy-specific designs,
|
|
making Nix an agile choice for modern deployment needs[3]. The
|
|
insights gained from Nix's approach
|
|
to non-interference and de-risking upgrades through atomic
|
|
transactions highlight the potential
|
|
for deploying software components seamlessly in decentralized networks[4].
|
|
|
|
\subsection{NixOS: A Purely Functional Linux Distribution}
|
|
|
|
NixOS is an extension of the principles established by Nix,
|
|
presenting a Linux distribution that manages system configurations
|
|
using purely functional methods . This model ensures that system
|
|
configurations are reproducible and isolated
|
|
from stateful interactions typical in imperative models of package management.
|
|
Because NixOS configurations are built by pure functions, they can overcome the
|
|
challenges of easily rolling back changes, deploying multiple package versions
|
|
side-by-side, and achieving deterministic configuration reproduction .
|
|
The solution is particularly compelling in environments necessitating rigorous
|
|
reproducibility and minimal configuration drift—a valuable feature
|
|
for distributed networks .
|
|
|
|
\subsection{Disnix: A Toolset for Distributed Deployment}
|
|
|
|
The Disnix toolset extends the deployment capabilities of Nix into
|
|
distributed systems,
|
|
focusing on automating the deployment process across different network nodes .
|
|
By leveraging the modular approach of Nix, Disnix enables the
|
|
consistent deployment of
|
|
software environments, reducing the incidence of configuration errors
|
|
across heterogeneous systems.
|
|
This approach aligns with the needs of distributed systems like those
|
|
utilized in peer-to-peer networks,
|
|
where maintaining consistency across nodes is crucial for operational
|
|
integrity .
|
|
|
|
\subsection{The Piazza Peer Data Management Project}
|
|
|
|
The peer data management landscape is further enriched by the Piazza
|
|
project, which offers a
|
|
flexible integration framework for heterogeneous data sources[5].
|
|
Piazza's approach to routing and
|
|
indexing extends beyond traditional network boundaries, showcasing a
|
|
scalable method for handling
|
|
vast data spaces in peer-to-peer systems. By addressing challenges
|
|
related to schema mediation and
|
|
decentralized data queries, Piazza provides a foundational structure
|
|
from which Clan can envisage
|
|
robust peer data management underpinned by strong consistency and reach.
|
|
|
|
\subsection{Software-Defined Networking and Low Maintenance Overlays}
|
|
|
|
The transition towards software-defined networking (SDN) is
|
|
represented by systems that decouple
|
|
the control plane from the data plane, enabling flexible network
|
|
configurations[6]. In particular,
|
|
SDN introduces novel paradigms in managing network resources
|
|
dynamically, facilitating more adaptive
|
|
and responsive network overlays. The Clan framework can draw on SDN
|
|
principles to facilitate
|
|
low-maintenance structured overlays, ensuring robust connectivity and
|
|
efficient resource allocation
|
|
in peer-to-peer environments. These systems reduce the overhead
|
|
associated with managing network state,
|
|
thus aligning with the inherent value propositions of decentralized networks.
|
|
|
|
\subsection{Charon: Declarative Provisioning and Deployment}
|
|
|
|
Charon adds another dimension to deployment via its declarative
|
|
provisioning capabilities[7].
|
|
By emphasizing a policy-driven approach, Charon aligns closely with
|
|
the principles of
|
|
infrastructure-as-code, where deployment processes are consistently
|
|
repeatable and auditable.
|
|
Such characteristics are beneficial for frameworks like Clan,
|
|
ensuring transparency and accuracy
|
|
in deployment processes across peer-to-peer nodes[8].
|
|
|
|
In summation, the evolution of deployment systems and peer data
|
|
management frameworks underscores
|
|
the steps necessary for developing robust decentralized systems like
|
|
the Clan framework.
|
|
By integrating features from Nix, NixOS, Disnix, and leveraging
|
|
insights from SDN and Charon,
|
|
the Clan framework can offer a high degree of reliability,
|
|
flexibility, and efficiency across
|
|
distributed networks. This related work provides a foundational
|
|
understanding that supports the
|
|
enhancement of the Clan framework towards achieving these objectives.
|
|
|