JeduEdu používá jako svůj datastore technologii MongoDB (skvělá dokumentová databáze). Aby dostupnost databáze byla opravdu 100%, data jsou ukládána v ReplicaSetu, který tvoří 3 nezávislé fyzické servery. To znamená, že každý zápis se provádí na primary server a operace zápisu se považuje za úspěšnou, až minimálně jeden další server ReplicaSetu provede zápis u sebe. Skvělé.
Data jsou fyzicky na 3 různých místech. Další výhodou je, že k tomu, aby aplikace koretně stále fungovala stačí, aby fyzicky běžel jen jeden ze serveů. Servery nepadají každý den, ale stát se to může, ale že vám spadnou hned 3 servery je docela nepravděpodobné.

Dalším krokem k zabezpečení dat je jejich pravidelné zálohování. Bez ohledu na kolika strojích ReplicaSt běží, každý den se automaticky provádějí zálohy celé databáze JeduEdu. Opět na všech 3 strojích.

A aby záloh opravdu nebylo málo, pak čas od času spustím zálohování ze svého Macu, takže mám kopletní zálohu úplně mimi produkční prostředí a jsem schopen celou aplikaci, včetně backendu během okamžiku rozjet úplně někde jinde na něčem jiném.

Odzálohovat Mongo je neskutečně jednoduché a dá se dělat za reálného provozu bez nutnosti odstavení jakéhoholiv ze serverů v ReplicaSetu:

Výhodou ReplicaSetu je, že zálohovat můžete tak, že zastavíte některý ze slave serverů a odkopírujete celý adresář s databází na disku. Po nahození takto „zazálohované“ databáze můžeze slave server zase nahodit a on si automaticky sám dotáhne vše o co přišel po dobu co byl down. Super.