The platform used to host the government’s GOV.UK web portal has been brought into the 21st century through the upgrade to containerised software. Part of the continued digital transformation of government services, the migration is described as Whitehall’s largest software infrastructure project to date.
The switch has meant that the website is more secure, able to scale and cheaper to run, according to the team that engineered the change, and contributes to the Government Digital Service’s (GDS) mission to digitalise government departments. Nila Patel, senior delivery manager, and Chris Banks, senior reliability engineer at GOV.UK, wrote that they were prompted by the system’s software end-of-life deadline to evaluate the platform required to make the government website seamless for its users.
GOV.UK is visited by more than 14 million users each week, handling over one billion transactions every year.
How GOV.UK embraced containers
From 2014 to 2023, GOV.UK used the Linux-based operating system Ubuntu, managing its configuration with Puppet, a tool used for automating the configuration of servers. However, with the operating system approaching the end of life, the team at GDS started considering moving to containers due to concerns about the amount of effort required to fix compatibility issues with an unsupported system.
Switching to containers – a bundle of software that includes application code as well as the files and libraries needed to run it on any infrastructure – also offered GDS other benefits, such as scalability and lower maintenance: “We were using complex automation to deploy many different applications onto the same set of virtual machines, which made it difficult to add more machines in response to increased website traffic,” Banks and Patel said. They also admit to spending “a lot of engineering time” updating software on the virtual machines.
“Upgrading the existing infrastructure would have solved our short-term problem, but would have represented a much smaller return on investment and taken at least as much effort as containerisation,” the GDS blog explains.
With the website hosted on a container-based infrastructure, GDS says that “a lot of exciting improvements” can be made to further increase productivity for developers and reduce running costs. They list examples such as running replica GOV.UK on local workstations so developers can find and fix bugs quicker, improving automated testing and enhancing the website’s resistance by hosting in other geographic regions or cloud providers.
An agile approach to create a better GOV.UK
Taking an agile approach, engineers were given responsibility and the ability to prioritise their own work streams, while others protected them from distractions or “outsiders” pulling them into other work. GDS said that this not only helped them get their work done but was also useful in building the confidence to work autonomously.
The team trialled different elements of the new set-up as they went along, rather than waiting until the whole system was fully working. This enabled them to focus on a subset of problems and plan near-term goals, get the confidence and buy-in from management, and deal with minor issues with the website well before the launch.
Teams also conducted mob programming, tackling issues together. GDS says this increased the ability for individuals to experiment with different solutions to solve problems with the website.
This approach resulted in a smooth go-live, during a quiet period of government announcements, GDS says.
“Once the team was fully confident everything was in place, we selected a week to switch over when there weren’t any big planned government announcements,” Banks and Patel said. “The launch went smoothly and the public-facing website continued working without any visible change, as we were hoping,” the blog says.
The upgrade has resulted in a positive impact on users
GDS reports that the launch has been positive for the organisation and users.
The website is said to be able to scale more quickly in response to traffic surges and is also cheaper to run. The team believes that security patches will be quicker to roll out and that it will be easier for them to make changes to applications.
“We’ve eliminated a lot of repetitive maintenance work for GOV.UK’s developers, so that they have more time to spend on valuable features and enhancements,” Banks and Patel wrote, adding that the containerised approach allows them to recruit from a larger talent pool.
While the launch has been deemed a success, GDS says there is still work to be done behind the scenes as some aspects of GOV.UK is running on the old Ubuntu and Puppet infrastructure. The blog doesn’t say when this work will be completed.
These include things such as process automation for maintenance tasks and processes that automatically test whether backups can be restored.
“Once we’ve done that, we’ll realise the rest of the value and savings by switching off the old infrastructure and no longer having to maintain it,” GDS said.