Oct 19 – 23, 2020
Fritz-Haber-Institut
Europe/Berlin timezone

Docker-like interface for IOCs based on procServ and systemd

Oct 21, 2020, 6:10 PM
5m
https://primetime.bluejeans.com/a2m/live-event/hdvqeypx (Fritz-Haber-Institut)

https://primetime.bluejeans.com/a2m/live-event/hdvqeypx

Fritz-Haber-Institut

BlueJeans Event https://primetime.bluejeans.com/a2m/live-event/hdvqeypx
LightningTalk EPICS base EPICS base

Speaker

Marcin Lukaszewski (E9 Controls Ltd)

Description

Software used in the laboratory very often belongs to the mission-critical group and cannot be updated at any time. Time constraints make software updates stressful, and the lack of tools supporting developers extends the whole process. This has been recognised in the modern environments, but often update of the whole environment is not possible.

Pros and cons of the environment transition to docker is beyond the scope of this paper. However, we would like to look at one of the measurable benefits of the docker - a tool for managing containers installed on the server.

Standardised APIs and well-designed tools allow to increase the frequency of deployment, shorten lead time and mean time to restore. Also, they help to reduce change fail percentage. This is crucial when deployment time is limited by tight experiment calendar.

This paper describes a library tool built to manage IOCs running on a production server. It is based on existing elements - procServ and systemd - and allows for a user experience similar to that of a docker. It has been built in Go language it and provides a docker-like API. It allows to start/stop/restart IOCs, attach to running one and filter already installed.

Currently, there is a command-line client available for engineers logged directly into production servers, however, it is planned to build a server, thanks to which managing IOCs will be possible through the network from the main supervisor.

This approach will enable de-coupling of IOCs management from the actual environment- treating procServ and systemd as runtime dependencies.

This will ensure that the transfer to the docker (if there is a justified need) will not require a change in the deployment environment and monitoring, but only the addition of docker daemon support to this tool.

Primary authors

Marcin Lukaszewski (E9 Controls Ltd) Kacper Klys (E9Controls Ltd)

Presentation materials