lore20 Visto il livello di interessi/curiosità/conoscenze di questo forum sarebbe super-interessante se una volta messo a regime faceste un post/pagina wiki su come funziona l'infrastruttura dietro FibraClick, con magari qualche consiglio di "best practice" da cui prensere ispirazione. Chiaro, sensa mettere a nudo ogni vulnerabilità, ma una piccola overview su come funzionano i backup per me sarebbe molto interessante (replicazione a livello di db? snapshot a livello di file o di blocchi? quali tecnologie di deduplicazione? quali policy di controllo consistenza/qualità dei backup...)
In questo periodo la nostra infrastruttura è tutto un work in progress perché stiamo rivedendo un po' tutto (spostiamo cose tra server, rivediamo il sistema di backup, pianifichiamo cose per sostituire Cloudflare, valutiamo Docker per PHP, ecc.), però a un certo punto potremmo scrivere un po' di com'è l'infrastruttura 🙂 consapevoli però che sicuramente ci sono cose che non vanno quindi potremmo prenderci insulti per qualche cosa 😅
Se potessi metterei pubblica anche tutta la configurazione del sistema anti-DDoS L7 che stiamo preparando, ma non è il caso... 😅
Sui backup quoto:
mpanella OT: Block-level snapshot e database non vanno tanto d'accordo 😃
Si usano tool specifici che fanno una copia consistente a livello di database. Altrimenti poi ti trovi un backup corrotto, oppure l'SQL generato viola vincoli di integrità referenziale e devi pastrocchiare a mano per farlo funzionare.
Purtroppo per il forum siamo vincolati a MySQL che è un po' tricky da backupare, ora andiamo di mysql_dump eseguito periodicamente (+restic per renderlo incrementale) perché comunque impiega pochi secondi, però locka l'intero database finché non ha finito per garantire un backup consistente (se non ricordo male, se ne occupa Francesco dei backup). Ci sono soluzioni migliori che raccolgono i "log" di quello che è stato scritto nel frattempo, e poi aggiornano il dump considerando questi log. E su questo stiamo lavorando, in modo da avere backup incrementali mooolto frequenti + un dump full ogni X ore e un backup "fallback" con il sistema vecchio ogni tanto, giusto perché non si sa mai... Il tutto caricato off-site verso più destinazioni a prova di incendi multipli contemporanei. Non abbiamo ancora un piano per la verifica della correttezza dei backup, faccio solo un restore manuale ogni tanto in locale.
Per i file che non sono database, usiamo restic, incrementale ogni 3 ore se non sbaglio, con retention sempre meno frequente più si va indietro (uguale rispetto al db).
Per il database PostgreSQL di TrackBot usiamo il db managed di DigitalOcean che ha il suo point-in-time recovery, e facciamo anche un dump con pg_dump ogni X ore (non mi ricordo la X).
...quando ho iniziato il messaggio l'idea non era spiegare tutto, ma poi ho spiegato tutto 😅