EPJ Web of Conferences (Jan 2019)

Testing of complex, large-scale distributed storage systems: a CERN disk storage case study

  • Makai Jozsef,
  • Peters Andreas Joachim,
  • Bitzes Georgios,
  • Sindrilaru Elvin Alin,
  • Simon Michal Kamil,
  • Manzi Andrea

DOI
https://doi.org/10.1051/epjconf/201921405008
Journal volume & issue
Vol. 214
p. 05008

Abstract

Read online

Complex, large-scale distributed systems are frequently used to solve extraordinary computing, storage and other problems. However, the development of these systems usually requires working with several software components, maintaining and improving a large codebase and also providing a collaborative environment for many developers working together. The central role that such complex systems play in mission critical tasks and also in the daily activity of the users means that any software bug affecting the availability of the service has far reaching effects. Providing an easily extensible testing framework is a pre-requisite for building both confidence in the system but also among developers who contribute to the code. The testing framework can address concrete bugs found in the odebase thus avoiding any future regressions and also provides a high degree of confidence for the people contributing new code. Easily incorporating other people's work into the project greatly helps scaling out manpower so that having more developers contributing to the project can actually result in more work being done rather then more bugs added. In this paper we go through the case study of EOS, the CERN disk storage system and introduce the methods and mechanisms of how to achieve all-automatic regression and robustness testing along with continuous integration for such a large-scale, complex and critical system using a container-based environment.