Speaker
Description
The SIRIUS accelerators have used containers for IOCs for years, but build definitions and launch scripts were often duplicated, and image sizes could be over 3GB. On the other hand, the SIRIUS beamlines, until recently, used IOCs installed in a shared NFS, which complicated application management, especially across different OS versions.
To address these issues, we have developed a framework for building slim IOC container images (e.g. ADAravis takes 300MB) using a curated set of dependencies (and their versions) and simple and short build definitions. We avoid duplicating shared information by using git submodules, which aids in versioning the base images used. The resulting container images include a standard set of installed packages and scripts, making them ready for deployment in a wide range of container orchestration setups. The shared interface provided by the EPICS build system allows us to also create images with EPICS tools, including CA and PVA gateways and epics-base utilities.
For beamlines, it was necessary to adapt the IOC orchestration to also support containerized applications, keeping the same user interface for managing IOCs for beamline and support staff.
This presentation aims to highlight some aspects of the epics-in-docker architecture, the user experience, and how SIRIUS manages containers. It also aims to present an overview of the tradeoffs made in epics-in-docker and other frameworks, such as our choice to not support different versions of dependencies.