DevOps adoption in scientific applications: DisVis and PowerFit cases

22 Mar 2018, 16:30
30m
Conference Room 2, BHSS (Academia Sinica)

Conference Room 2, BHSS

Academia Sinica

Oral Presentation High Throughput Accelerator Technologies, Supercomputing and their Integration Distributed & Parallel Computing Applications Session

Speaker

Dr Alexandre M.J.J. Bonvin (Utrecht University)

Description

The DevOps methods emphasize the commitment to software Quality Assurance (QA) procedures during the development phase to avoid disruptions when the new software releases are deployed into production. Automation drives the whole process of testing, distribution and, eventually, deployment to allow prompt and frequent software releases, resulting in more reliable software. INDIGO-DataCloud project progressively adopted DevOps practices that ruled the development (continuous integration) and distribution (continuous delivery) of the core services. The successful experience was exported to the scientific communities participating in the project, by prototyping a continuous deployment scenario for the Python-based DisVis and PowerFit applications. The implementation provides a test and validation suite that ensures the viability of any change in the application’s source code, by the automatic and sequential execution of the 1) code inspection, 2) software packaging, and 3) application validation tasks. The source code inspection tries to detect issues at early stages in the development phase, otherwise tougher to resolve once the software has been released. Any type of source code testing (style, unit, functional, integration) can fit at this stage.The QA checks executed for the prototype are devoted to guarantee the readability and sanity of the code by making it compliant with Python’s PEP8 standard. The application packaging phase deploys the application, packages it as a container image and publishes it to the INDIGO-DataCloud’s online repository. The uploaded image is tagged with the current code version, so it does not overwrite any previous one. The recently created version is then fetched and tested as the final step in the pipeline. The application validation phase executes the container with a set of defined inputs and the results obtained are programmatically compared with reference results. The adoption of DevOps methods has proven to be an effective and suitable solution for the development and distribution of scientific software. DisVis and PowerFit application developers can detect promptly design issues or bugs in their code, while the users of these applications are provided with more frequent software versions, validated through the automated pipeline, being able to safely explore the latest features of the software.

Primary authors

Dr Alexandre M.J.J. Bonvin (Utrecht University) Dr Mikael Trellet (Utrecht University) Mr Pablo Orviz (CSIC)

Presentation materials