DB4SCI is an easy-to-use, web-based, self-service database deployment application. Users can select a database type and version and DB4SCI creates a stand-alone database instance for the user. Each deployed database instance is a separate container with its own private data volumes. Multiple versions of PostgreSQL, MariaDB, Mongo and Neo4j can be selected. DB4SCI is a fully containerized Flask application.

DB4SCI was designed provide to nimble, friction-less service to facilitate Fred Hutchinson Cancer Research Center’s research and administration. We wanted to make it easy to create a database and to promote database usage for scientific computing.

Users do not have to worry about protecting their data. DB4SCI performs native database backups for containers. Backups are kept on-site and replicated to Amazon S3 storage.

DB4SCI offers popular database deployment options like MariaDB with encryption at rest and TLS with server/client certs. Configure PostgreSQL with multicore parallelization enabled. Neo4j is deployed in secure mode with https enabled. MongoDB is configured with authentication.

DB4SCI offers high performance if it is deployed on high-end hardware. Why build something that is slow? Our local deployment uses ultra-low latency Intel Optane NVMe storage. DB4SCI can be deployed on Docker Swarm to provide a highly reliable and scalable database service. DB4SCI can also be deployed in any cloud that provides virtual machines with fast storage.

DB4SCI supports multiple storage volumes. Databases can be configured on different storage platforms to support production or development. On the create screen administrators can enable users to choose different storage types. Access to storage types can be managed by database type and user ID. Multi volume support has allowed us to offer encryption at rest for PostgreSQL by providing an encrypted filesystem as a storage option.