Database architecture for Nextcloud
This article is built in three parts. The first part describes the general concepts that will drive the design of a database for Nextcloud. The second part insists on the importance of backups, while the third part details the possible scenarios Nextcloud GmbH recommends as a database architecture for enterprise deployments of Nextcoud Hub.
high availability, RPO/RTO, key concepts to design a database architecture
Definition
- High-availablility: High availability is a property of network resilience, the ability to "provide and maintain an acceptable level of service in the face of faults and challenges to normal operation." ( quote from wikipedia)
- RTO: Recovery Time Objective - this objective should answers the question: how long time can your organization afford to live with your system down and unavailable ? (5 minutes, 1h, 2h, 8h, 1 working day, 1 day, 1 week...)
- RPO: Recovery Point Objective - this objective should answer the question: what is for your organization the acceptable interval during which transactional data is lost from the service ? (seconds, minutes, 1 hour, 2h, 1 working day, 1 day, 1 week...)
High-availability
What will matter in your database architecture to meet your availability requirements, is the chosen failover mechanism.
Is it manual or automatic ?
Manual failover is very quick easy to setup, but takes more time to restore, hence a longer period with the system unavailable. Automatic failover can kick in nearly instantly, allowing a service to fail transparently to the application and the end-user. But automatic failover requires a more complex database architecture, hence a longer setup time.
Subscriber exclusive content
A Nextcloud Enterprise Subscription provides unlimited access to our knowledge base articles and direct access to Nextcloud engineers.