Background

Nektar++ is a well-established piece of scientific software used within the field of computational fluid dynamics by over 40 groups in 18 countries. Over time it has developed a complex set of build and test requirements and supports a wide variety of different operating systems. Nektar++ development relies on an effective Continuous Integration and Delivery (CI/CD) pipeline integrated with the project's GitLab repository. Automated testing, provided by CI/CD, allows the project to maintain consistent quality assurance on code contributions across multiple institutions and ensures the software continues to work on all supported operating systems. This is seamlessly integrated with day-to-day development activities via version control hosting in GitLab.

Before working with the RSE team the CI/CD pipeline was provided by a Buildbot instance and a sizeable fleet of virtual machines. Whilst capable of meeting the needs of the Nektar++ project this arrangement required considerable investment of time and effort to maintain and did not embrace modern “infrastructure-as-code” principles.

Our contribution

The RSE team were engaged by the Nektar++ development team to review their existing CI/CD infrastructure with a view to proposing and implementing a replacement. Recent years have seen an explosion of mature and capable CI/CD offerings, however it is challenging to differentiate between them and assess the suitability of each in the context of a particular project. The RSE team reviewed four representative examples of different CI/CD infrastructure models before implementing a replacement system based on GitLab CI (in place of Buildbot) and Docker (in place of virtual machines).

Outcomes

Moving to GitLab and Docker has provided the Nektar++ development team a system that is faster and more easily maintained and extended. The solution developed was individually tailored to the Nektar++ project, making use of their existing infrastructure and providing advanced features such as persistent build caching to decrease run times. As a result the Nektar++ development team has been freed from spending time maintaining their software engineering infrastructure and can focus on code development supporting their core research activities.

Testimonials

Professor Spencer Sherwin, Head of Aerodynamics Section and Nektar++ team leader at Imperial College:

"The RSE team did a great job engaging with the requirements of Nektar++ and coming up with a solution that will meet our needs for the foreseeable future. We will be recommending the same approach to the other research groups in our consortium. Throughout the project the RSE team were professional and responsive in providing a service that worked around our other commitments."