Ermintrude not to say goodbye

It doesn’t seem like saying goodbye to a service is something that you get to do very often. Iterating and improving can lead to an increase in complexity and, often, more services rather than less. Last week however we were able to do just this.

Ermintrude¹ was built to provide secure pre-publish access to ONS output areas so they could check and approve their statistical releases prior to publication. At any time it has about 400 active accounts for users across ONS and has quietly gone about this job for the past 3 years.

However, despite being its own service it shares a lot of core functionality with our CMS (Florence), and this has created a dependency between the two. Keeping them aligned and ensuring improvement to Florence are duplicated in Ermintrude has become an additional overhead to any changes we make in this area. For bug fixes this is an annoyance but we have also been working to refactor Florence to move away from a custom jQuery based framework (don’t ask) and move towards using React.

Although we have been taking this refactor in discrete chunks the overhead of making these changes in two places increased and we fell into a habit of only making these changes to Florence. To counter this we made the decision to rebuild the additional output area preview functionality into Florence instead. This simplifies our lives going forward and also ensures that preview users benefit from the refactored code already in Florence.

The changes to allow preview in Florence have been live for a couple of months but last week we made the final changes to move all users over to it and will shortly be removing Ermintrude from our environments. Hopefully the first step on simplifying our world and allowing us to move faster.

So, goodbye Ermintrude, you were awesome²…

 


1. Like all of the services that formed the basis of the original build for the website, preview was named after one of the Magic Roundabout characters – Ermintrude the cow (and apparently opera singer?!).

2. Opinions in the dev team may vary…