Exploitation of DevOps concepts for the ASDEX Upgrade DCS

Abstract The ASDEX Upgrade Discharge Control System (DCS) is designed to be distributed and highly modular. By nature it is a complex system that requires expert knowledge to develop, deploy and operate. This paper discusses the application of DevOps concepts to DCS and its impact on the operation of ASDEX Upgrade. The aim is to provide stable and undisturbed operation of ASDEX Upgrade, whilst having a low hurdle to include new capabilities into DCS to extend the operational scope. To ensure both goals are met DevOps concepts have been introduced to DCS. For the code development a review process was added using the code review tool Gerrit. Each change is only accepted into the code repository once the review and automated testing have been completed. The automated testing and packaging of DCS are conducted using the automation server Jenkins. DCS is not directly installed on the host computers, but is operated using the containerization framework Docker. The containers allow easy deployment of DCS onto new systems as well as the quick change of DCS versions on the systems. A new or updated component can easily be tested by deploying the appropriate container. In case of failure the previous state is restored by redeploying the container in the previous version. DCS components can be classified into two types, the real time and the non real time parts. Non real time parts are the services that are required to manage the configuration of the system and the setup of the real-time interaction between participants. The new deployment method with Docker is used for both non real time as well as real time services and is operational on ASDEX Upgrade since the 2019/2020 campaign. No impact of the determinism of the real time components have been observed when operated within a Docker container.