Voorkomen is altijd nog beter dan genezen.
Backups: altijd saai totdat je ze echt nodig hebt, dan kan het opeens spannend worden. Het is een noodzakelijk kwaad, wat goed is om vooruit plannen en slapeloze nachten te voorkomen.
Enkele voorbeelden:
- Een harde schijf stopt ermee (5% crasht binnen een jaar)
- Software probleem: een bug veroorzaakt een fatale error
- Human error: iemand verwijderd per ongeluk een belangrijk bestand
- Brand: je server of eigen computer fikt af
- Hack: je server wordt gehackt en bestanden worden aangetast
Wees dus te alle tijde voorbereid op noodscenario’s en zorg voor een ‘disaster recovery plan’. Ook al is de kans groot dat je het nooit hoeft te gebruiken.
5 tips:
1. Heb een backup -en herstel plan
Ontwikkel een backup strategie vóórdat je start met installeren en configureren van backup software -en methodes. Houdt hierin rekening met de belangrijkheid van de data:
- Hoe backups te maken?
- Waar moeten de backups naar toe?
- Hoe vaak maak je een backup waarvan?
- Hoe lang bewaar je de backups?
- Hoe ga je testen?
Een voorbeeld voor een relatief eenvoudige brochure-website met een dagelijks blog:
- Hoe: maak backups met behulp van de Drupal Backup & Migrate module (zie onder)
- Waar: bewaar deze op de live server én op een off-site (externe) server
- Hoe vaak: maak dagelijks een backup.
- Hoe lang: bewaar 2 weken van elke dag een backup; daarna een wekelijkse backup voor 8 weken; daarna een maandelijkse backup voor 3 jaar.
- Hoe testen: maak met opzet iets stuk en bekijk of het hersteld kan worden.
2. Overweeg data én downtime
In bovenstaande plan is data behandeld, maar downtime is tevens een onderdeel om mee te nemen in je recovery-strategie. Betreft het een bedrijfskritische applicatie, dan wil je downtime tot een minimum beperken; dit vergt een grotere investering in opzetten van het plan en eventuele fallback (fail-over) server. Wanneer het een brochure-website betreft, dan zal het minder rampzalig zijn als die er uit ligt.
3. Test de backups
Even benadrukken: een backup is geen backup als je hem niet kunt herstellen. Zorg dat je dus backups steekproefsgewijs ook test. Maak bijvoorbeeld dingen met opzetstuk, zodat je kunt testen of je backups werken. Bij een groot systeem kan het handig te zijn de boel ‘in stukken’ te hakken, zodat afzonderlijke functies los van elkaar kunnen draaien. Netflix heeft dit bijvoorbeeld: als je daar je instellingen niet kan wijzigen vanwege een storing, dan kan je nog wel programma's en films bekijken.
4. Ken je hoster
Bijna alle hosters bieden een backup faciliteit. Dit is mooi meegenomen, maar ik zou er zelf nooit 100% op vertrouwen en heb het liever zelf in de hand voor als zich een rampscenario voordoet. Ga ook na of jouw hoster een ‘disaster recovery plan’ heeft, vraag bijvoorbeeld: wat gebeurd er als jullie huidige servers in vlammen op gaan?
5. Gebruik de Drupal module ‘Backup & Migrate’
Deze module wordt veel gebruik voor Drupal systemen, het is een robuuste oplossing om een gewenst backup plan automatisch uit te laten voeren. Ook kan het een herstel voor je uitvoeren, hoewel dat op een productie omgeving niet aan te raden is; doe dat eerst op een testomgeving.
Overzicht van de functies:
- Onbeperkt aantal backup-taken aanmaken en beheren
- Hele database of alleen bepaalde tabellen
- Kan restore doen
- Files en/of database
- Ondersteuning van Drush
- AES encryptie
- Notitie toevoegen aan backups
- E-mail rapportage
Ook zijn er extra module voor beschikbaar:
Van live naar lokaal
Je kunt hem ook gebruiken om bijvoorbeeld snel een database van een live systeem over te zetten naar een lokale ontwikkeling-omgeving (je eigen computer)
Off site
De module kan tevens direct de backups naar een off-site lokatie sturen, zoals:
- Een map op een andere server middels FTP
- Direct naar Amazon s3 kopiëren
- Per e-mail versturen
- Naar NodeSquirrel.com (makers van deze module)
Onze voorkeur: rsync
Voor Unix gebaseerde systemen kan je ook een periodieke ‘rsync’ aanmaken met behulp van een cronjob. Deze synchroniseert alle backups naar gewenste externe server. Dit heeft onze voorkeur: het is een robuuste lichtgewicht oplossing waarbij bijvoorbeeld ook alle permissies blijven in tact. Kennis van Unix moet uiteraard wel in huis zijn.
Code backup
Als laatste: wanneer je maatwerk module schrijft, denk dan ook na over backups daarvan. Kans is groot dat je werkt met GIT in een online/cloud code-repository. Als je een goede GIT workflow aanhoudt << https://www.atlassian.com/git/tutorials/comparing-workflows/>>, dan zou je denken dat je geramd zit. Maar een repository kan ook corrupt raken en als je dan niet de repo kan herstellen van voordat hij corrupt raakte.. Een heads up << http://nl.bab.la/woordenboek/engels-nederlands/heads-up>> hierin dus.
Afsluitende video
Ok, je hebt besloten om met backup en migrate te gaan werken. Hoe stel je alles in dan?
