Minor updates to operating system and software on our web servers happen during regular maintenance and can be applied in place (generally with zero downtime). But large version changes have to be handled differently. We have several major upgrades to explore.
Upgrades
CentOS
Until this year UW had an education license for Redhat Enterprise Linux. This year UW decided we were getting little benefit from the license and will not continue the contract. CentOS is the free software version of Redhat, we have to move our web servers to CentOS distribution by July 2016. At that point we will no longer be able to get updates for Redhat.
CentOS 6.X to 7.X
The Redhat to CentOS move is actually a fairly easy transition that could be made in place. But our Redhat servers are a major version back and our newest web server is running CentOS 7.X. We want all of our servers on the same OS version.
PHP 7
A major new version of PHP has just been released. There are some backward compatibility concerns, but this new version comes with major performance improvements. This means our web sites will be faster and also cheaper to operate (PHP 7 uses significantly less memory). These would be great benefits, however we can't make this migration if our web applications are not compatible with the new language version.
MySQL to MariaDB
You can google "MySQL vs MariaDB" if you are curious about open source software complexity. For simplicity sake I will leave it at Redhat 6.X supports MySQL packages, CentOS 7.X supports MariaDB. Theoretically this is a 100% compatible change from our web application perspective.
PubCookie to Shibboleth
When you sign in to our web applications you do that with your UW NetID through the official UW Login Servers. There are two pieces of software that can communicate with the UW Login Server and let us know who you are. PubCookie is the older system that is no longer actively in development. PubCookie no longer works on CentOS 7.X (Apache 2.4). Now is the time for us to start using the new Shibboleth single sign on system.
Sandbox
With multiple major changes like this we want a safe, isolated place to see how our web applications will run and iron out the migration and deployement process.
For this we create a sandbox server, a testing location for the new software stack. Once we work out problems and have a vetted deployment process using our sandbox environment we can deploy the new stack on the live web servers.