EPJ Web of Conferences (Jan 2020)

DIRACOS: a cross platform solution for grid tools

  • Petrič Marko,
  • Haen Christophe,
  • Couturier Benjamin

DOI
https://doi.org/10.1051/epjconf/202024503020
Journal volume & issue
Vol. 245
p. 03020

Abstract

Read online

DIRACOS is a project aimed to provide a stable base layer of dependencies on top of which the DIRAC middleware is running. The goal was to produce a coherent environment for grid interaction and streamline the operational overhead. Historically the DIRAC dependencies were grouped in two bundles; Externals containing Python and standard binary libraries, and the LCGBundle which contained all grid-related libraries (gfal, arc, etc). Such a setup proved difficult to test and hindered agile development. DIRACOS solves the binary incompatibility that was caused by using a python version newer than the native system one (SLC6). It is spawned from a single list of required packages from where we pull all dependencies down to the level of glibc using SRPMs. With such an approach we can provide a uniform set of packages for our clients, servers, and several platforms. It is an extendible setup with a DevOps development cycle in mind. The core build functionality of DIRACOS is based on Fedora Mock. DIRACOS introduces its own grammar to handle specific cases, and it also allows patching (some SRPMs require tweaking, which the user can do by providing a diff) as well as routines for pre/post/instead actions of compilation. With this approach DIRAC was able to provide a single bundle for clients and servers that is reliable, flexible, easy to test and relatively small (250 MB). It allows for a smooth transition from SLC6 to CC7 and provides a clear roadmap for possible extensions of DIRAC to a wide variety of platforms.