In order to gather and organize your lineage and the branches in your family tree, Ancestry has spent more than a generation (the company was born in 1983) wading through the 16B+ images and records buried in historical society data, government archives, and information caches of like organizations, groups, and communities the world over.
Data in hand, Ancestry transcribed it and converted it into a searchable format for your investigation so you can connect the dots from great, great aunt Tildy to great, great, great grandpa Jebediah. “These historical records date back to the 11th century and form more than 30K collections that include birth, marriage, and death records as well as military service, immigration, and even incarceration records,” says Norman Warren of the Ancestry Performance Team, Ancestry.
Ancestry’s platforms enable it to unite descendants and the curious with true tales from 70M family trees that subscribers build up by adding their own branches. Interestingly, Ancestry data now relies on a million plus DNA samples and counting.
“Our servers respond to more than 75M searches per day,” says Warren, who coaches Ancestry’s teams in refining load testing practices as they release new testing scripts before and after sprints and based on their individual development timing.
Load Testing Before & After
When the Ancestry team went looking for deeper, broader load testing capabilities, they were hoping to add routine testing across the site 365-days a year. The folks at Ancestry wanted a malleable solution that would invite them to apply JMeter to vertical load testing and permit them to cut costs for load testing by leveraging the advantages of open source testing tools.
Ancestry had been using a load testing approach that did not allow Warren’s teams to use home-brewed scripts. But in order to benefit from a testing solution that did embrace such scripts, Ancestry had to ensure a flow of updated quality scripts from every applicable internal group. Because Ancestry ultimately opted for JMeter and BlazeMeter, that presented challenges such as JMeter and BlazeMeter learning curves, the need for users to make JMeter requests in parallel, and Ancestry apps that are harder to script.
Growing pains accompanied BlazeMeter adoption including the pains of stretching to embrace different devops teams in order to retrieve testing scripts. By pointing out the advantages of the new testing paradigm, making the argument for time saved by site wide load testing, and providing training in JMeter, Ancestry made the leap to the BlazeMeter supported approach. “BlazeMeter provided excellent JMeter training while we evangelized for teams to own their scripts,” says Warren.
Ancestry solved its technical and learning curve challenges with steps including installing the JMeter Webdriver Set plugin and learning to debug and test scripts before they would run optimally in the BlazeMeter cloud service.
“We had to work to get adoption, but it was well worth the effort to build accountability over different sections of the site. We now ask teams to take ownership of their own scripts to review, modify, or emulate user traffic flows,” says Warren.
Results
“BlazeMeter enabled more frequent load testing at a competitive cost and good site-wide load testing with the ability to add loads to stacks or to stop loads on one of the stacks during the test,” says Warren.
BlazeMeter helped the Ancestry teams to foster a strong confidence that they could support heavy traffic loads at their most hectic times. “The BlazeMeter team helped us to translate the metrics we use for measuring traffic into a number of concurrent users for loading the site. In this way, BlazeMeter helped us to measure load test results against a baseline, such as traffic on our most recently busiest day,” says Warren.
Ancestry leveraged BlazeMeter’s swift feedback about site throughput and the response times of each page to speed site responsiveness for each user. Ancestry was able to predict and automate the flows that are most commonly used by customers in order to streamline processes and speed the user experience even more.
“We created a new baseline from new site wide load tests of additional traffic flows by loading flows incrementally using a special BlazeMeter feature that enables us to dynamically add more concurrent users in the midst of a load test,” explains Warren.