Lecture: Migration to Python 3 in Finance
This talk describes how the Raiffeisen Rechenzentrum migrated its existing Python 2 code to base to Python 3 by explaining basic migration strategies, essential considerations and decisions as well as the various steps taken to ensure a successful relaunch of migrated applications.
The Raiffeisen Rechenzentrum is an Austrian IT service provider with roots in banking and uses Python to convert and prepare data as well as to automate various recurring tasks of the daily business. While maintaining the code during various Python 2.x versions was simple, the lack of backward compatibility of Python 3 posed a major challenge.
After examining various migration strategies we decided on a soft migration where a single code base runs both with Python 2 and 3. Initial experience in migrating code to Python 3 was collected with open source packages we had released over the years. Effective use of interns helped to perform more mundane tasks in a cost effective way.
Because there was no customer demand for a pure technical component like Python 3 it was possible to wait for tools and middle ware packages to mature and essential libraries to be migrated. Furthermore the actual migration could be carried out over the course of three years in parallel with an independent major migration of the core banking system.
The talk examines the various options and design decisions that led to the actual migration actions, the impact on the source code and the effort required to transform, test and deploy the source code. It also describes road blocks we encountered and how they were dealt with. The conclusion is a set of recommendation and areas to look into for similar migrations.