TimeOut Continuous Delivery Improvements |
The Timeout digital department has over 30 technical members of staff including backend developers, frontend developers, a QA team, a DevOps team and a Product team. Due to it being a global platform, there were constantly many different projects and sprints happening concurrently.
To increase productivity, the journey from the local development environment to the production environment needed to be optimised to be as smooth, scalable and automated as possible.
One of the bottlenecks identified was the shortage of QA environments. Even when all 15 QA environments were utilised, there was still the process of agreeing which features from which projects can be built to which QA box at what time. WIth so many new features constantly being developed in addition to bug fixes, the model of using long-live machines for QA boxes needed to be reviewed. To solve this problem, a system was introduced that allowed every pull request to automatically create its own QA environment in the AWS cloud. The process was as follows:
Using this approach, the demand for the existing long-live QA environments was dramatically reduced. In addition, more accurate, staging-environment-ready work was produced. This was due to all people involved receiving faster feedback by being able to test the features in a QA environment at a much earlier stage in the process.
Technologies Used
Amazon S3 | Amazon EC2 | Amazon Route 53 | |||
Selenium Grid | Ansible | Jenkins | |||
Symfony 2 | MySQL | Behat | |||
Karma | PHPUnit | Github | |||
Wiremock |