Building a new type of nuclear reactor is no small task in the best of times. Doing so during the COVID-19 pandemic is another challenge altogether, though it's a challenge that has helped Rolls-Royce adopt a DevOps approach.
Rolls-Royce is an international industrial technology firm, with civil aerospace, defense and power systems businesses. One of the emerging areas of growth for the company is its nuclear power division, which is currently designing a new type of power generation system known as the Small Modular Reactor (SMR). The goal is to develop a modular nuclear power plant that is easier to build and maintain, while providing power at low cost.
In an Aug. 26 session at the GitLab Commit virtual conference, Scott Adams, performance methods lead at Rolls-Royce, outlined how his team, which works on the thermal hydraulics aspects of the nuclear reactor, is embracing a DevOps approach.
Nuclear Reactor Built with Waterfall Processes
When the project started, it was developed on a siloed, aging network that was running the older Python 2.4 programming language, Adams said. The software development approach that the team was using was the legacy waterfall method. With the waterfall method, development is grouped into a big project, without much incremental iteration or review.
As a result of using the waterfall approach, Adams said the first release of code took eight months.
"Because of this approach, we had limited customer engagement," he admitted. "We took all of our requirements right at the beginning, and then finally we spoke to them about six months afterward."
There were a number of significant drawbacks to the waterfall approach that Rolls-Royce was using. The most important was that customer requirements were not met and analysis methods were not deployed in time.
Other challenges that Adams and his team faced with their outdated development environment included ones with peer code reviews. He noted that his team was not using a configuration control technology to help organize development. Adding further insult to injury, the development was largely done with text editors, like Notepad++.
"One piece of advice I have is don't go waiting for your catalyst to implement a solution," Adams said. "We waited for ours, and we waited too long — our catalyst was COVID-19."
How COVID-19 Pushed the DevOps Needle
When COVID-19 hit, Adams and his team were forced to work remotely. The systems they were using to develop on didn't come home with them, and they had almost no remote capabilities, grinding development to a standstill.
Adams reimaged several Next Unit of Computing (NUC) mini-form-factor computers with Ubuntu Linux to create a small server farm. Each NUC was provisioned with a modern technology stack that includes Docker container, GitLab for version control, and code development and Puppet for configuration management. While the environment is not a full DevOps model yet, Adams sees it as a big shift in the right direction. The results thus far are positive, with developers collaborating on issues via GitLab and merging new code.
"With DevOps there is normally a big mindset shift, so if you can just unlock potential quick wins, that's a big help," he said. "There's kind of no one-size-fits-all solution to DevOps, so just give yourself a little bit of time to explore and try and unlock the potential for you. If it really is a benefit, that justification will be simple."