At my place of work, we use a Java-based trouble-ticketing system from Atlassian called Jira.
It is hosted on a LAMP server virtual machine in our production VMware environment. The system has been in daily use (well, week day use) since near the end of 2008 – requiring minimal maintenance in that time (the occasional reboot after security updates have been installed).
Up until yesterday, we had been using Ubuntu 8.04 LTS Server. I decided it was time to move to the latest LTS release – 10.04 – which was released earlier this year and had just received it’s first .1 refresh.
Some googling around revealed the potential for various issues with the process so I took a snapshot before beginning – just to be safe.
I then found this link which detailed how to upgrade the server to the next LTS release.
I was shocked at how simple the process appeared to be – surely not?! This is that crazy technical, awful command line operating system with a really high cost of ownership isn’t it?
So, SSH’ing into the server, I took a copy of /etc (just being extra safe again), fired up a screen session and ran the command as instructed on the page above.
sudo do-release-upgrade
Various lists were obtained from the internet and upgrades calculated, I then had to press Y to show my acceptance of the results.
Everything slowed down at this point due to our internet connection speed (changing soon, yay!). I disconnected and went to sleep.
This morning, I connected back to the server and screen session to find a reboot necessary. So, Y again and a reboot later the 10.04.1 based system was up and running.
I fired up a browser and pointed to the Jira system – fail. Oh noes, I thought, now it gets difficult.
Well, no, not really. Over the course of various Ubuntu releases since 8.04, the sun-java6-* packages were moved into the partner repository.
So, I uncommented the partner repository in /etc/apt/sources.list, ran an apt-get update and reinstalled the sun-java6-jre package.
A reboot (only to test that everything would start by itself as it should) and Jira is running again, no data lost and inbound email requests to the system are working. Awesome.
Just so you get the significance of that, imagine doing an inplace upgrade (eg not a fresh install) of a Windows 2000 Server running IIS5 and SQL 2000 and have it coming out running Windows Server 2008, IIS7 and SQL 2008.
Two reboots, no data loss, no restores necessary and all done remotely. And Jira was actually still running and available for most of the time except when the box was rebooting and having java re-installed.
Yep, *really* difficult. Watch out.
fun 🙂
*grin* Yeah, it was actually.
Shortly after writing that post, I did the same process on another Ubuntu 8.04 LTS server we have which is serving ~60TB of disk via iSCSI.
It was even quicker and less painful. 😉
For something critical like jira, I would have gone into the jira administration console and done a full backup of the data base. I'm hoping you're using an external database for jira like mysql or postgres. The internal “demo” database system is slow and can hang.
You are comparing upgrading Ubuntu from the 2008 to 2010, with upgrading windows from 2000 to 2008.
Are you sure this makes any sense?
@bill – thank you for your concern. Yes, we are using Jira with a MySQL backend.
To be honest, I figured a snapshot of the powered off VM would be enough for us to roll back to, but you are right – I could have been even *more* careful and done a DB dump too.
@CMoi – Thank you for your comment too.
I did labour over that point for a while actually.
Given that there were three other versions of Ubuntu which came out in between '2008' and '2010' as you put it, that would be more like NT4/SQL6.5 to 2k8. But, then I thought that that's not really fair as Ubuntu release every 6 months and MS doesn't – they do an LTS every two years and MS don't do major releases even that frequently.
I eventually decided to make be easier on the MS guys and make it 2k to 2k8.
However, even if I changed it to say “Windows Server 2003 and SQL 2005 -> Server 2008 and SQL 2008”, the fact still remains that you simply *cannot* do an in place upgrade on that platform in that manner.
I would definitely compare it to an upgrade from 2003-2008. The whole point of the major.minor.revision release number is to say you're making a major and hence a potentially breaking change. Most Windows migrations I've seen involve a whole new VM (or physical server in the pre-cloud days) and then install everything until you could repoint the services. I'm totally impressed by Ubuntu on this.