Comment sauvegardez-vous votre machine de développement?

Comment sauvegardez-vous votre machine de développement afin qu’en cas de dysfonctionnement matériel catastrophique, vous soyez opérationnel dans le moins de temps possible?

Il existe une distinction importante entre la sauvegarde de votre machine de développement et la sauvegarde de votre travail.

Pour une machine de développement, votre meilleur pari est une solution d’imagerie offrant un processus de «restauration en un clic» aussi proche que possible. TimeMachine (Mac) et Windows Home Server (Windows) sont tous deux excellents à cette fin. Vous pouvez non seulement restaurer l’intégralité de votre machine en 1 à 2 heures (en fonction de la taille du disque dur), mais les deux s’exécutent automatiquement et stockent des deltas afin que vous puissiez avoir des mois de sauvegarde dans un espace relativement restreint. Il existe également de nombreux packages “fantômes”, bien qu’ils ne proposent généralement pas de sauvegardes incrémentielles / delta. Prenez donc plus de temps / espace pour sauvegarder votre machine.

Les produits tels que Carbonite / Mozy / JungleDisk / RSync sont moins bons. Ces produits vous permettront de récupérer vos données, mais vous devrez toujours réinstaller le système d’exploitation et les programmes. Certains ont des histoires limitées / non.

En termes de sauvegarde de votre code et de vos données, je recommanderais un produit de contrôle de code source comme SVN. Bien qu’une solution de sauvegarde générale protège vos données, elle n’offre pas la fonctionnalité d’étiquetage / de twigment / d’historique des packages SCC. Ces fonctions sont inestimables pour tout type de projet avec une durée de conservation.

Vous pouvez facilement exécuter un serveur SVN sur votre ordinateur local. Si votre machine est sauvegardée, votre firebase database SVN le sera également. Cette OMI est la meilleure solution pour un développeur à domicile et c’est comme ça que je garde les choses.

  1. Tous les fichiers importants sont en contrôle de version (Subversion)
    • Ma disposition de subversion correspond généralement à la disposition des fichiers sur mon serveur Web, alors je peux simplement faire une vérification et tous mes fichiers de bibliothèque et tout sont placés au bon endroit.
  2. Sauvegardes deux fois par jour sur un disque dur externe
  3. Sauvegardes rsync nocturnes sur un serveur distant.
    • Cela signifie que je renvoie des éléments sur mon serveur domestique à mon hébergeur et à tous les fichiers et bases de données de mon hébergeur, donc je ne suis pas fâché si je perds ma maison ou mon hébergeur.

J’utilise Mozy et j’y pense rarement. C’est un poids sur mes épaules que je ne manquerai jamais.

Machines virtuelles et CVS.

Les ordinateurs de bureau sont déployés avec des fantômes et sont complètement vanillés. Sauf qu’ils ont VirtualBox.

Les développeurs récupèrent ensuite l’environnement de développement de base configuré à partir de CVS.

Ils se connectent eux-mêmes à l’image de la machine virtuelle de développement, actualisent la source et les bibliothèques à partir de CVS et sont en phase de travail.

Cela facilite également le développement et la maintenance en même temps.

(Je sais que certaines personnes n’aimeront pas CVS ou VirtualBox, alors n’hésitez pas à remplacer vos outils de choix)

Oh, et vous vérifiez que vous travaillez dans une twig privée de Trunk quotidiennement.

Voilà.

Temps total de récupération: 1 heure (tops)

Il est temps “d’adopter” un nouvel ordinateur portable pour une visite chez le client: 1 heure (tops)

Et une étape vers CMMI Configuration Management.

BTW votre machine de développement ne doit pas contenir quelque chose de valeur. Tout votre travail (et le travail de votre entreprise) devrait être dans des référentiels centraux (SVN).

J’utilise TimeMachine .

Pour ma maison et mes machines de développement, j’utilise Acronis True Image .

À mon avis, rien ne remplace une sauvegarde HD quotidienne incrémentielle complète avec les prix HD bon marché.

Un peu de préparation aide:

  • Tout mon code est organisé dans un seul répertoire (avec des sous-répertoires classés).
  • Tous les emails sont conservés dans différents PST.
  • Tout le code est également vérifié dans le contrôle de code source à la fin de chaque journée.
  • Tous les documents sont conservés au même endroit.

Sauvegarde:

  • Sauvegardez votre code, email, documents aussi souvent que vous le souhaitez (quotidiennement).
  • Gardez une image de votre environnement de développement toujours prête.

Échec et récupération

  • Si tout échoue, formatez et installez l’image.
  • Copiez tout depuis la sauvegarde et vous êtes opérationnel.

Bien sûr, il y a des modifications ici et là (sauvegarde incrémentielle, archivage, etc.) que vous devez faire pour rendre ce processus réel.

Si vous parlez le moins possible de temps de restauration … J’ai souvent configuré des machines pour effectuer des sauvegardes Ghost (Symantec ou quelque chose de similaire) chaque nuit sur une image ou une copie directe sur un autre lecteur. De cette façon, tout ce que vous avez à faire est de créer une nouvelle image de la machine à partir de l’image ou simplement d’échanger les disques. Vous pouvez être sauvegardé en moins de 10 minutes … La configuration que je faisais auparavant était dans une situation où nous avions des serveurs de production redondants et il était acceptable de les déconnecter suffisamment longtemps pour cloner le lecteur … mais seulement à nuit. Au cours de la journée, ils devaient être à 100%… cela m’a sauvé les fesses à plusieurs resockets lorsqu’un disque principal a échoué… Je viens d’ouvrir le boîtier, j’ai échangé les câbles pour que le disque de sauvegarde soit le nouveau maître et soit de nouveau en ligne 5 minutes.

J’ai finalement obtenu ma “stratégie de sauvegarde de données entièrement automatisée” dans un art. Je n’ai jamais à intervenir manuellement, et je ne perdrai jamais un autre disque dur de données. Si mon ordinateur meurt, je disposerai toujours d’une sauvegarde de démarrage complète ne dépassant pas 24 heures et de sauvegardes incrémentielles d’au plus une heure. Voici les détails de la façon dont je le fais.

Mon seul ordinateur est un MacBook 160 Go sous OSX Leopard. Sur mon bureau au travail, j’ai 2 disques durs externes de 500 Go. L’un d’eux est une partition unique de 500 gig appelée “External”. L’autre a une partition de 160 gig appelée “Clone” et une partition de 340 gig appelée TimeMachine.

TimeMachine s’exécute chaque fois que je suis au travail, sauvegardant constamment mes fichiers “en cours” (qui sont également validés dans Version Control tout au long de la journée).

Chaque jour de la semaine à 12h05, SuperDuper! copie automatiquement tout mon disque dur portable sur le lecteur “Clone”. Si le disque dur de mon ordinateur portable meurt, je peux démarrer directement depuis le lecteur Clone et reprendre le travail sans manquer un battement – ce qui me laisse un peu de temps pour remplacer le lecteur (cela m’est arrivé deux fois depuis sa création!). (Note technique: En fait, il ne copie que ce qui a changé depuis le jour précédent à 12h05… et pas le lecteur entier à chaque fois. Fonctionne comme un charme.)

À la maison, j’ai un DNS-323 D-Link, un périphérique de stockage en réseau de 1 To (2×500 Go) exécutant un RAID en miroir, de sorte que tout sur le premier disque de 500 Go soit automatiquement copié sur le deuxième disque de 500 Go. De cette façon, vous avez toujours une sauvegarde et elle est entièrement automatisée. Ce petit chiot a un client DNS dynamic intégré et un serveur FTP.

Ainsi, sur mon routeur WRT54G, je transfère le port FTP (21) vers mon DNS-323 et laisse son serveur FTP en place.

Une fois le clone SuperDuper créé, rSync s’exécute et synchronise mon lecteur “externe” avec le DNS-323 à la maison, via FTP.

C’est tout. En utilisant 4 disques (2 externes, 2 sur le NAS), j’ai: 1) Une sauvegarde complète toujours amorçable de moins de 24 heures, du lundi au vendredi 2) Une sauvegarde de travail de tous mes fichiers en cours, ce qui n’est jamais plus plus de 30 minutes, du lundi au vendredi (lorsque je suis au travail et connecté aux lecteurs externes) 3) Accès à tous mes MP3 (170 Go) sur les documents au travail sur le “External” et à la maison sur le NAS 4) Two sauvegardes complètes de tous mes MP3 et documents sur le NAS (externe est la copie originale, les deux disques sur le NAS sont des miroirs via ChronoSync)

Pourquoi est-ce que je fais tout cela? Parce que: 1) En 2000, j’ai déposé un disque dur de 40 Go de 1 pouce, et cela m’a coûté 2500 $ pour récupérer ces données. 2) Au cours de l’année écasting, j’ai dû réparer mon MacBook 4 fois. Un disque dur mort, deux cartes mères mortes et une webcam morte. La quasortingème fois, ils ont remplacé gratuitement mon MacBook par un autre plus récent, et je n’ai plus eu de problème depuis.

Grâce à mes sauvegardes quotidiennes, je n’ai perdu ni travail ni productivité. Si je ne les avais pas eu, cependant, tout mon travail aurait disparu, ainsi que mes MP3 et mon écriture, et toutes les photos de mes voyages au Pérou, en Croatie, en Angleterre, en France, en Grèce, aux Pays-Bas et en Italie. toutes mes photos de famille. Peux-tu imaginer? Je suis sûr que vous pouvez, parce que je parie que vous avez une stack de photos numériques sur votre ordinateur en ce moment … pas sauvegardé de quelque façon que ce soit.

Peut-être qu’un simple raid matériel sur disque dur serait un bon début. De cette façon, si un disque tombe en panne, vous avez toujours l’autre disque dans le raid. Si quelque chose d’autre que les disques tombe en panne, vous pouvez insérer ces disques dans un autre système et récupérer vos fichiers rapidement.

Je ne fais que régler cela au travail pour l’équipe. Une image avec tous les outils courants est sur le réseau. (Nous avons en fait une machine à hotswap prête). Tous les travaux en cours sont également en réseau.

Donc, la machine des développeurs est en plein essor. Utilisez la machine à chaud et continuez. Temps d’arrêt ~ 15 minutes + pause café.

Nous avons une solution d’entreprise appelée Altiris, qui fonctionne quand il le souhaite. Cela dépend s’il pleut ou non à l’extérieur. Je pense qu’Altiris pourrait être un dieu de la pluie et ne le sait pas. Je suis vraiment ravi quand ça ne marche pas, parce que cela signifie que je peux utiliser 99% de mon processeur, merci beaucoup.

En dehors de cela, nous n’avons aucun droit d’installer d’autres solutions logicielles pour sauvegarder des choses ou des lieux que nous sums autorisés à le faire. Nous ne sums pas autorisés à déplacer les données de nos machines.

Donc, je finis par me croiser les doigts en riant de la folie.

Je ne.

Nous effectuons une continuous integration, soumettons le code souvent au système de contrôle de source central (qui est sauvegardé comme un fou!).

Si ma machine meurt au maximum, j’ai perdu quelques jours de travail.

Et tout ce que j’ai à faire est d’obtenir un disque propre pour configurer l’environnement de développement à partir d’une image fantôme ou passer une journée à coller des CD, à redémarrer après une mise à jour Windows, etc.

Au travail NetBackup ou PureDisk selon la boîte, à la maison rsync.

Comme quelques autres, j’ai une copie propre de mon PC virtuel que je peux récupérer et démarrer à tout moment et tout le code est stocké dans subversion.

J’utilise SuperDuper! et sauvegarder ma machine virtuelle sur un autre lecteur externe (j’en ai deux). Tout le code est sur un serveur SVN. J’ai une VM propre au cas où la mienne échoue. Mais dans les deux cas, il me faut quelques heures pour installer WinXP + Vstudio. Je n’utilise rien d’autre dans cette boîte.

J’utilise xcopy pour copier tous mes fichiers personnels sur un disque dur externe au démarrage.

Voici mon startup.bat:

xcopy d: \ fichiers f: \ backup \ files / D / E / Y /EXCLUDE:BackupExclude.txt

Cela recurse les répertoires, ne copie que les fichiers modifiés et supprime le message pour remplacer un fichier existant, la liste des fichiers / dossiers de BackupExclude.txt ne sera pas copiée.

Windows Home Server. Ma boîte de développement a deux disques avec environ 750 Go de données entre eux (C: est un disque SAS 15K RPM de 300 Go avec les applications et le système, D: est un ensemble miroir de 1 To avec toutes mes inscriptions). J’utilise Windows Home Server pour sauvegarder cette machine et l’ai restaurée avec succès plusieurs fois après l’avoir utilisée.

Ma machine de développement est sauvegardée avec Retrospect et Acronis. Ce sont des sauvegardes nocturnes qui fonctionnent lorsque je suis endormi – une vers un lecteur externe et une vers un lecteur réseau.

Tout mon code source se trouve dans des référentiels SVN, je conserve tous mes référentiels sous un seul répertoire, j’ai donc une tâche planifiée exécutant un script qui trace un chemin pour tous les référentiels SVN et effectue un certain nombre de hotcopies (en utilisant le script hotcopy.py). ainsi qu’un svndump de chaque repository.

Mon ordinateur de travail est sauvegardé, mais il gère le même script pour faire des hotcopies et des svndumps sur quelques sites sauvegardés.

Je m’assure que des sauvegardes de travail, un emplacement n’est PAS sur le SAN, oui, il est sauvegardé et géré, mais quand il est en panne, il est en panne.

Je voudrais une recommandation pour un conteneur RAID externe, ou peut-être juste un conteneur de disque externe, de préférence une interface utilisant FireWire 800.

Je voudrais également une recommandation pour un fabricant pour que les disques de sauvegarde entrent dans le conteneur. J’ai lu tellement de critiques de lecteurs disant qu’ils ont échoué, je ne sais pas trop quoi penser.

Je n’aime pas les services de sauvegarde comme Mozy, car je ne veux pas leur faire confiance pour ne pas consulter mes données.

  • SuperDuper complète les sauvegardes amorçables toutes les quelques semaines
  • Sauvegardes Time Machine pour mes répertoires les plus importants quotidiennement
  • Le code est stocké dans les serveurs subversion / git du réseau
  • Sauvegardes Mysql avec cron sur les serveurs Web, utilisez ssh / rsync pour le télécharger sur nos serveurs locaux et utiliser cron nightly.

Si vous utilisez un Mac, c’est une évidence: twigz simplement un disque dur externe et le logiciel Time Machine intégré sauvegardera l’ensemble de votre système, puis conserverez une sauvegarde incrémentielle sur le planning que vous définissez. Cela m’a permis de sortir du trou bien des fois où j’ai gâché mon environnement; Il a également été très facile de restaurer mon système après avoir installé un disque dur plus gros.

Pour les sauvegardes hors site, j’aime JungleDisk – il fonctionne sous Mac, Windows et Linux et sauvegarde sur Amazon S3 (ou, très récemment, le service cloud Rackspace). C’est une bonne solution si vous avez plusieurs machines (ou même des machines virtuelles) et que vous souhaitez conserver certains répertoires sans avoir à y penser.

Avertissement de serveur domestique!

J’ai installé Home Server sur mon serveur de développement pour deux raisons: Version bon marché de Windows Server 2003 et pour des raisons de sauvegarde.

Le côté logiciel de sauvegarde des choses est sérieusement endommagé. Si vous “ajoutez” une machine à la liste des ordinateurs à sauvegarder au début de l’installation de Home Server, généralement tout est parfait.

MAIS il semble que cela devient beaucoup plus difficile d’append d’autres machines après un certain temps.

(Exemple: j’ai refait une reconstruction complète sur mon ordinateur portable, j’ai essayé de l’append – NOPE!)

Donc, je doute sérieusement de la fiabilité de cette plate-forme à des fins de sauvegarde. Semble défaire le but si vous ne pouvez pas lui faire confiance à 100%

J’ai les scénarios de sauvegarde suivants et utilise rsync comme outil de sauvegarde principal.

  1. ( hebdomadaire ) Sauvegarde Windows pour la récupération “bare metal”
    Contenu du lecteur système C: \ utilisation de la sauvegarde Windows pour une récupération rapide après une défaillance de disque physique, car je ne souhaite pas réinstaller Windows et les applications à partir de zéro. Ceci est configuré pour s’exécuter automatiquement à l’aide du programme de sauvegarde Windows.

  2. ( quotidien et conditionnel ) Sauvegarde de contenu active à l’aide de rsync
    Rsync prend en charge tous les fichiers modifiés depuis un ordinateur portable, un téléphone ou d’autres appareils. Je sauvegarde ordinateur portable tous les soirs et après des changements significatifs dans le contenu, comme l’importation des photos RAW récentes de la carte SD à un ordinateur portable.

J’ai créé un script bash que je lance depuis Cygwin sous Windows pour lancer rsync: https://github.com/paravz/windows-rsync-backup