"The past can be used to renew the present, not just to bury it."
Our client used an outdated system for their backbone service. The system became too expensive to maintain and add new features to, but it was in heavy duty how could we replace the service while keeping it running 24/7?
Business success in today's competitive market depends on the ability to keep up with constant changes. It's especially true if you rely on technology. Our client is a tour operator, their business depends on a booking service that's easy to use and loads fast. This system is the main source of information about package tours, accommodation and service options, and it's used internally by everyone from customer service to top level managers.
The legacy system used by our client was still functioning okay, and it was able to support more than 40,000 bookings each year. To keep up with the new trends, mobile devices, personalised marketing campaigns however, it required expensive maintenance. Today there are excellent frameworks for many of those tasks, but how would the whole system communicate with the external services? How could we make sure that what we build today will be extendible and easy to maintain in the foreseeable future?
This particular system was developed over 15 years ago, written in a programming language called Perl. Perl is a great language built in the 80s, it's general-purpose and used for everything from mathematical computations to building websites.
However, the number of people who use the language is decreasing, and the custom framework the client built is difficult to learn for newbies. With the constant evolution of technology, the invention of new algorithms and methods to get things done, many IT experts are leaving Perl behind. Large financial institutions and banks employ those who can write code in Perl on high day rates. As a result, maintenance of the client's legacy system has become too expensive to handle.
We accepted this challenge and structured a plan to:
The plan worked with a total of 25 minutes planned downtime. We were able to test and monitor the complete process via introduced continuous delivery and integration tools. These tools are providing a good service today, to alert the client about potential system errors, to catch all those before users see them.
In a relatively short timeframe in a bit over a year , we replaced old systems, marketing websites, and booking engines with new micro-services that are fast and easy to maintain on a lower budget. As an example: the client's marketing website is running WordPress now and utilizes custom plug-ins to interact with the old system. Thanks to our out-of-the-box tools and approach, the client is able to use frameworks that are easy to navigate, cheap to run, and are way more future-proof than the outdated system was.