Creating Realistic Testing Environments
As a global solution to payment processing in the educational, healthcare, travel, and B2B industries, Flywire provides clients with a simplified means of monitoring and tracking transactions. The sensitive nature of its customer data has made it difficult for developers to perform localized testing effectively and efficiently in pre-production environments while striving for peak release velocity.
For every environment developed, Flywire’s developers were struggling to load synthetic data. Since HIPAA laws prohibited the local use of production data, Flywire attempted to create in-house scripts to create test data for pre-production environments. Engineers found their scripts to be too time-consuming to create, difficult to maintain, and too easy to malfunction. Pre-prod environments took between 40 hours to 20 days to instantiate, depending on whether full or partial data sets were required.
According to Engineering Fellow Felipe Talavera, one of the company’s challenges was finding a solution that supported their myriad of databases used, including MySQL, PostgreSQL, and MongoDB. Further, Tonic’s extensive API allowed for the ability to automate FlyWire’s AWS deployments, including deployment Tonic on-premises for even more data security. With this configuration, absolutely none of Flywire’s production data ever leaves their private cloud while using Tonic.
When deploying new features, engineers were also frequently introducing schema changes throughout production, thus breaking testing builds configured for older schemas.
Other options were available to Flywire, but they either lacked the database support needed, data type coverage, or fell short on integrations. Without a solution, Talavera states, “it would be more expensive, more people to maintain the solution. We will have needed to raise more to move forward. Even having somebody dedicated to that, maybe a DBA, something to help alleviate the pain.”
Integration and Speed
Flywire has several use-cases where it will be deploying Tonic’s synthetic data, but the company started by rolling out test environments in healthcare. Tonic allows engineers to turn over environments faster, speeding up local testing and improving lead times.
Tonic’s deep ability to be configured was critical to QA engineers, as was an API that allowed for integration into more complex environments.
Through Tonic, Flywire was able to easily implement synthetic data generation into an existing automated pipeline.
Tonic has given back Flywire’s engineers time. What was taking weeks to create can now be done within minutes. The flexibility has helped improve deployment frequency, thanks in part to an accelerated QA lead time because of Tonic.
“The faster lead time that we have with QA, the more things we can test in a day, the faster we can release and at higher quality than before” states Talavera.
Flywire QA teams can now run additional tests and deploy new environments on demand several times, every day. The improved speed and improved continuous delivery have reduced engineering bottlenecks and improved developer productivity, while Tonic’s easy troubleshooting has reduced CI/CD downtime.
FlyWire is seeing vast improvements in the quality and speed of its test environments without having to even consider bypassing HIPAA laws. For Flywire’s healthcare clients, these changes result in higher-quality software that best serves their customers and protects their data.
“We’re happy with how the tool fits into our toolset,” Talavera explains.