Conférence
Notice
Lieu de réalisation
Maison des Sciences de l'Homme - Dijon
Langue :
Français
Conditions d'utilisation
Droit commun de la propriété intellectuelle
Citer cette ressource :
JCAD. (2022, 10 octobre). Painless Transposition of Reproducible Distributed Environments with NixOS Compose , in JCAD 2022. [Vidéo]. Canal-U. https://www.canal-u.tv/134793. (Consultée le 8 décembre 2024)

Painless Transposition of Reproducible Distributed Environments with NixOS Compose

Réalisation : 10 octobre 2022 - Mise en ligne : 16 novembre 2022
  • document 1 document 2 document 3
  • niveau 1 niveau 2 niveau 3
Descriptif

## 1-Motivations:

The scientific community as a whole has been traversing a reproducibility crisis for the last decade.
Computer science does not make an exception.
While scientists can accomplish reproducibility in different manners, it requires additional work and discipline.
In 2015, Collberg et al.[1] studied the reproducibility of 402 articles published in journals and conferences on computer systems.
Each of those articles linked the source code used to produce the results. Out of these 402 papers, Collberg et al. could not reproduce 46 %. The causes were:
(i) the source code was unavailable,
(ii) the source code did not compile or run, and
(iii) the experiments required specific hardware.
In this work, we tackle problem (ii) in the context of distributed systems.

The development of environments for distributed systems is a tedious and time-consuming iterative process.
The Reproducibility of such environments is a crucial factor for rigorous scientific contributions.
We think that being able to smoothly test environments both locally and on a target distributed platform makes development cycles faster and reduces the friction to adopt better experimental practices by the users.

## 2-Travail scientifique, technique, scientifique et technique:

To address this issue, we introduce the notion of environment transposition: the capacity to deploy a uniquely defined environment on several platforms of different natures.
For example, one may want to deploy an environment on local virtual machines to test and develop, and then want to deploy onto real machines on a distributed platform with the exact same description.
We implemented this notion in NixOS Compose, a tool that generates reproducible distributed environments.
It enables users to deploy their environments on virtualized (docker, QEMU) or physical (Grid'5000) platforms with the same unique description of the environment.

## 3-Originalité:

NixOS Compose also aims at providing faster, and smoother development cycles compare to state-of-the-arts solutions for distributed environments.
Contrary to State-of-the-art solutions (Enoslib or Kameleon), NixOS Compose takes a descriptive approach for the definition of distributed environments.
In fact, we exploit the declarative approach for system configuration provided by the NixOS Linux distribution [2] [3].
NixOS makes use of a configuration that describes the environment of the entire system, from user-space to the kernel.
The distribution is itself based on the purely functional Nix [4] package manager.
The definition of packages (or system configuration in the case of NixOS) are functions without side effects,
which enables Nix and NixOS to reproduce the exact same software when the same inputs are given.

NixOS Compose aims at reducing the friction to perform reproducible distributed experiments by providing fast development cycles by allowing the users to test their environments locally before deploying them.
NixOS Compose exposes the exact same user interface to define and deploy environments regardless of the targeted platform.
We think that this functionality paired with fast rebuild time of environments improves user experience,
and we hope that it will help the adoption of experimental practices that foster reproducibility.

## 4-Résultats:

We show that NixOS Compose enables to build reproducible environments without overhead by comparing it to state-of-the-art solutions for the generation of distributed environments (EnOSlib [5] and Kameleon [6]).
NixOS Compose actually enables substantial performance improvements on image building time over Kameleon (up to 11x faster for initial builds and up to 19x faster when building a variation of an existing environment).

## 5-Impact:

As this work is too young, we think it is too early to talk about the impact of NixOS Compose.
It is however used in the context of projects such as the European Regale project [7], or by researchers of local teams.
We think NixOS Compose has the potential to reach a high level impact and improve the state-of-the-art of reproducibility tools for distributed systems.

## 6-Choix des ressources de calcul et de stockage utilisées pour ces travaux:

- Grid'5000 (https://www.grid5000.fr/w/Grid5000:Home)

## 7-Bibliographie des articles liés à ces travaux.

- Quentin Guilloteau, Jonathan Bleuzen, Millian Poquet, Olivier Richard. *Transposition d'environnements distribués reproductibles avec NixOS Compose*. In COMPAS 2022-Conférence d'informatique en Parallélisme, Architecture et Système. https://hal.archives-ouvertes.fr/hal-03696485
- Quentin Guilloteau, Jonathan Bleuzen, Millian Poquet, Olivier Richard. *Painless Transposition of Reproducible Distributed Environments with NixOS Compose*. Submitted in CLUSTER2022-IEEE International Conference on Cluster Computing.

## References


[1] Collberg, C., & Proebsting, T. A. (2016). Repeatability in computer systems research. Communications of the ACM, 59(3), 62-69.

[2] Dolstra, E., & Löh, A. (2008, September). NixOS: A purely functional Linux distribution. In Proceedings of the 13th ACM SIGPLAN international conference on Functional programming (pp. 367-378).

[3] https://nixos.org/

[4] Dolstra, E., De Jonge, M., & Visser, E. (2004, November). Nix: A Safe and Policy-Free System for Software Deployment. In LISA (Vol. 4, pp. 79-92).

[5] Cherrueau, R. A., Delavergne, M., Van Kempen, A., Lebre, A., Pertin, D., Balderrama, J. R., ... & Simonin, M. (2021). EnosLib: A Library for Experiment-Driven Research in Distributed Computing. IEEE Transactions on Parallel and Distributed Systems, 33(6), 1464-1477.

[6] Ruiz, C., Harrache, S., Mercier, M., & Richard, O. (2015). Reconstructable software appliances with kameleon. ACM SIGOPS Operating Systems Review, 49(1), 80-89.

[7] https://regale-project.eu/

Dans la même collection