A New Intuit Open Source Release: Trapheus
Intuit engineers Rohit Kumar and Namita Devadas are excited to launch Trapheus. Trapheus automates restoration of Relational Database Services (RDS) database instances from snapshots into any dev, staging or production environments. It also supports snapshot-based restoration for individual RDS instances (such as Oracle, MySQL, MariaDB etc) as well as Amazon Aurora cluster instances with read replica support.
Trapheus is a tool for anyone who wants to automate restoration of RDS instances from snapshots, for recovery or other use cases. As part of Intuit’s QuickBooks Online Advanced team, project creators Rohit Kumar and Namita Devadas use this tool to enable daily restoration of the QuickBooks Online database from a golden snapshot inside their performance environment to maintain data consistency. Trapheus was picked up by other teams working on QuickBooks Online to do the same in their performance environments, which caused Rohit and Namita to start thinking about how this automation could apply to a variety of other use cases.
Trapheus is modeled as a state machine with the help of AWS step functions, which executes different steps to restore an existing database from a snapshot. It also supports snapshot-based restoration for individual RDS instances (such as Oracle, MySQL, MariaDB etc) as well as Amazon Aurora cluster instances with read replica support.
Trapheus uses the following tech stack: Python, Python unit test framework, Boto3, AWS step functions, Lambdas, RDS Lambda layers.
As a universal restoration solution, Trapheus can be applied to multiple use cases, including benchmarking and disaster recovery. Prior to Trapheus, no available concrete tooling ran with all RDS instances. When Rohit and Namita opened up Trapheus internally, it was quickly and easily adopted by other QuickBooks Online teams and microservices platforms. “We asked ourselves if this can be open sourced for the benefit of the community,” wrote Rohit and Namita.