POC High-available Application

More Info
expand_more

Abstract

ProRail uses multiple custom built software applications to control the train infrastructure in the Netherlands. At this moment these applications experience downtime when they are updated. This interrupts processes that are related to controlling the train services. ProRail asked us to redesign an existing application in such a way that updates can be applied with zero downtime.

To solve this problem we use redundancy with automatic load balancing. We compared multiple solutions and we chose to use Docker’s swarm functionality. We then redesigned the non-critical application Brugkijker, an application to monitor trains approaching a bridge. In the end we could successfully run multiple instances of Brugkijker in Docker and show how the application can be incrementally updated, inducing no downtime for the service as a whole and without losing data coming from upstream. This proposed approach can be used by ProRail to make other noncritical and critical applications highly available.

Files