Outfit has backup processes at different levels: a. the database level b. the templates files level c. the servers level
Database backups happen in two different parts. One is offered by Amazon Relational Database Service (RDS) which takes place every day, and is kept for 35 days. In case of a disaster, the Supplier can quickly reload the data as a new instance. The second part is a full snapshot taken every night. The output file is stored on Amazon Simple Storage Service (S3) in a different region. This file can be used to restore the database in the same or in a different location as long as the RDBMS is PostgreSQL.
Template files are version controlled using Git distributed version control system. This allows us to revert template files to any point in time, should we need to. The private repository files are also backed-up every 5 minutes. They are synchronized from the file system to S3, in a different region from where the servers are maintained. An automated script allows us to pull all those repository files back to the Git server if we need to. This secure Git server can also be used by users to pull their Template files to their local computer as another backup measure.
The servers used to run Outfit are stateless. They are built using Ansible and Docker, which together allow us to have a fully automated and fast process to rebuild the servers in the unlikely event of a server crash.