I would like to share our experience at FMG with how we use scripts and Jenkins to allow developers and testers to restore production database copies for testing easily. As well as the technical details I will discuss our motivation and the results for the business.
The insurance software we use is very tightly linked to its databases. We regularly need to have up-to-date data to resolve client problems which means we need to restore production data to test environments frequently. Traditionally this task was done manually by our DBA. However, I am that one and only DBA, and this did not scale well.
The demands from developers and testers on database resources are only increasing over time. In the past we were constrained by those resources, however with modern software and hardware this is less of an issue. Our constraints now are more the human resources needed to maintain the systems. Automating these tasks allows every developer and tester to clone their own copy of the production database, on demand.
Aside from the scaling factor automating the process allows us to schedule restores during off peak time so the impact to the teams is minimised. A database restore job can take up to two hours and slows the database server down for everyone for the duration.
Automating the database restores streamlines our testing process; provides up-to-date data for everyday support; and empowers developers and testers to take control of their environments.
In this talk, I will cover the following topics:
An overview of our architecture and environment at FMG.
Technical details on how the scripts work.
The Jenkins-based interface.
The benefits it brings.
I believe this talk could appeal to many IT professionals as more and more companies are adopting the CI/CD practices necessary for scale, and where automation is the key to success. In our case greatly improving the speed and efficiency of our testing cycle.