Support costs have always been a major issue for IT executives, due to constantly rising demands of the business and the ever-present Incredible Shrinking Budget.
I’ve seen technology managers get downright hostile with vendor representatives when it comes time to renew support contracts for older systems, mostly because the value of those systems didn’t line up with the money being demanded. One of the ways leaders are looking to reduce those costs is by moving proprietary Unix systems to Linux running on commodity x86 servers.
Even though companies have been migrating from RISC to x86 servers for years now (beginning somewhere around the advent of Linux), there seems to be a lack of truly useful information on the subject. It isn’t exactly brain surgery, but given the importance of these systems to the operations of the business, it can feel that way. Much of the success of a migration depends on understanding the software running on those servers. When planning a move, you can classify them into roughly four categories:
- Commercial off the Shelf (COTS) software: This is the low-hanging fruit, as most of these applications will have a version that runs on x86 (either Linux or Windows). Some allow moving between platforms for free, some charge a fee to transfer.
- Custom software written in Java: The very nature of Java is that it is platform-independent, running as it does on the Java Virtual Machine (JVM). There is a JVM for Windows and every major version of Linux. Transferring these applications will be trivial compared to some others.
- Custom web apps: Again, the nature of these is that the underlying technologies (HTML, Python, PHP, etc.) are meant to be platform-agnostic. Unlike Java, web apps will have a lot of moving parts written in different languages and probably running on separate servers. It is advisable to move the front-end first and save the database component for last, although it may not be possible depending on the project.
- Software written in compiled languages: Anything written in a compiled language (like the various permutations of C) will need to be recompiled for the new platform. The amount of time involved will vary due to a number of different factors, but in general the greatest amount of labor will be spent here.
I won’t even try to account for every case in a blog post, but hopefully this gives readers enough to begin their migration plan based on the kinds of software to be moved. If you have ever replaced RISC with x86, how did it go for you? What are the lessons you learned?