Utilising DevOps practices to successfully update to Amazon Linux 2 for the flagship STV Player app, focusing on testing and quality assurance
When Amazon Web Services (AWS) announced that its Linux AMI would go end-of-life in June 2020, it created a problem for Scottish broadcaster STV. Their flagship STV Player app – offering users exclusive, live and on demand content– was hosted on Amazon’s Elastic Container Service (ECS) with docker instances running on hosts using the Amazon Linux 1 platform. As a result, the hosts needed to be upgraded to Amazon Linux 2 to allow STV to ensure the latest functionality and updates were included on their platform.
However, when migrating to a significant version update of an operating system it is imperative to understand the differences and test the application rigorously to ensure a safe transition – the STV Player is a flagship application where any outage could have financial and reputational repercussions. The stability of the process – both during and after the redeployment on Amazon Linux 2 – was paramount.
STV turned to CirrusHQ, one of the UK’s leading AWS partners, to manage the upgrade. “We’d done these migrations previously,” said John Walker, Solutions Architect Team Lead at CirrusHQ. “We’ve discovered potential compatibility issues between the two Linux platforms for applications, but individual migrations always throw up new problems. However, we felt confident that our experience of the two platforms and the rigour of our approach to testing and Quality Assurance (QA) would ensure a smooth process and a positive outcome.”
CirrusHQ had found that the differences between Amazon Linux 1 and 2 – and the incompatibilities these created – had previously required changes to the deployment process or the applications using the platform. The DevOps approach that CirrusHQ proposed for STV allowed for successful test outcomes which would assure the developers and STV’s business managers that the move to Amazon Linux 2 would not impact their deployed application and that the migration would be successful.
To ensure that each application was not affected by the changes in Amazon Linux 2, a testing approach was devised to work with each application, which had been created as separate workloads within the STV environment as Infrastructure as Code using CloudFormation. Each of these CloudFormation templates was modified, then deployed into the Quality Assurance account, with each business area being updated as appropriate for that workload. The application was then fully tested and any errors that were found in the logs from the testing analysed and rectified.
Once each individual application had been tested and completed, the next application was modified; and once all of the applications had been fully tested and the deployments in the Quality Assurance accounts signed off, the same process was followed in the Production accounts until all the applications had been migrated.
The migration was completed smoothly: all applications were successfully deployed via Amazon’s Elastic Container Service with docker instances running on hosts now using the Amazon Linux 2 AMI with no errors reported in any logging functionality. Any issues were minimised and services using the new deployments were unaffected by the change with no interruption of service to the STV Player.