dimanche 27 octobre 2013

10 astuces pour garder son TFS en bonne santé

Dans un article et dans le livre Professional TFS 2012, Grant Holliday explique comment bien maintenir une instance de TFS. Même s'il indique des priorités, la liste des actions est très longue. Je souhaite proposer ici une liste restreinte et ordonnée d'astuces qui permettent de conserver une instance TFS 2010/2012/2013 fonctionnelle pour une équipe jusqu'à 20 personnes.
Pour ce type d'instance, la personne dédiée à l'administration de TFS a souvent très peu de temps à y consacrer, il s'agit rarement de son travail principal. Il lui faut aller à l'essentiel. J'ai donc mis de côté tout ce qui concerne des installations complexes ou l'optimisation des performances.
  1. Sauvegarder l'instance TFS
    • cela vous permettra de restaurer votre instance en cas de crash
    • les bases sont paramétrées par défaut pour une restauration complète, cela signifie qu'un fichier journal de transactions est généré, si vous ne sauvegardez pas régulièrement ceux-ci, ils vont prendre une taille énorme.
    • la sauvegarde est très facile avec l'outil de sauvegarde et restauration. (inclus dans TFS2012/2013, pour 2010 installer les TFS Power Tools Dec. 2011, pour le réaliser à la main suivez bien les instructions ici)
  2. Exécuter l'outil Best Practice Analyser (chaque mois)
    • il permet de détecter des problèmes dans votre architecture
    • l'outil est inclus dans les TFS Power Tools, et s'exécute en quelques minutes seulement. 
  3. Mettre à jour les machines SQL Server et TFS
    • la mise à jour des machines permet d'éviter des failles de sécurité et une mise à jour très longue au moment d'une montée de version.
    • pour TFS l'idéal est d'être toujours sur la dernière mise à jour un mois après sa sortie. Il arrive qu'une ou 2 régressions soient corrigées rapidement. Profitez-en pour mettre aussi à jour Visual Studio sur les postes de développement.
    • installer la version la plus récente possible de SQL Server (TFS 2010 = SQL2008R2SP3, TFS 2012.4 = SQL2012 SP1, TFS 2013 = SQL2012 SP1)
  4. Installer un environnement de taille suffisante
    • sans rechercher la performance, il faut un minimum de puissance, de mémoire, et d'espace disque ! Suivez les indications du TFS Planning Guide 
    • la santé des disques hébergeant les fichiers des bases de données est souvent un facteur clé du bon fonctionnement. Vous pouvez les surveiller en effectuant un échantillonnage à l'aide de l'analyseur de performance sur l'objet "Disque logique" ou "Disque physique" et le compteur en pour 1000 "Moyenne disque s/transfert" (échantillonner toutes les 30 secondes). Les résultats ne doivent pas dépasser 0.050.
  5. Vérifier la bonne santé de l’instance de bases de données SQL Server
    • la majorité de la logique de TFS est implémentée dans des procédures SQL. La santé de TFS est donc largement dépendante de celle de l’instance des bases de données SQL Server.
    • exécuter régulièrement DBCC CHECKDB pour vérifier leur intégrité
    • vous pouvez aussi utiliser les DMV (Dynamic Management Views) à partir du script de Jimmy May disponible ici pour vérifier qu'il n'y pas de problème majeur.
  6. Vérifier et modifier les paramètres du pool d'application IIS
  7. Vérifier régulièrement le journal d'activité et les travaux depuis http://monserveur:8080/tfs/_oi/
    • cela permet de vérifier si des travaux posent problèmes
    • cela permet aussi de verifier la santé de l'entrepôt de données et et du cube OLAP
  8. Vérifier et sauvegarder les Builds
    •  sauvegarder régulièrement le répertoire de dépôt des Builds TFS (sauvegarder aussi votre répertoire de symboles, si vous en avez un)
    • vérifier aussi que l'espace disponible sur les machines de Build est suffisant.
  9. Vérifier ou désactiver les journaux IIS
    • cela permet d'éviter de remplir le disque ...
    • pour les désactiver, exécuter  la commande suivante sur l'application-Tier en tant qu'administrateur local :
      %windir%\system32\inetsrv\appcmd set config -section:system.webServer/httpLogging /dontLog:"True"  /commit:apphost
  10. Nettoyer les éléments non utilisés de TFS
    • avec Team Foundation Sidekicks, supprimer les espaces de travail et mises sur étagères non utilisés.
    • avec witadmin, lister puis supprimer les champs inutilisés :
      witadmin listfields /unused /collection:http://monserveur:8080/tfs/DefaultCollection
      witadmin deletefield /n:referencechamp /collection:http://monserveur:8080/tfs/DefaultCollection
    • avec le Test Attachement Cleaner, supprimer les fichiers attachés inutiles. Il est inclus dans les TFS Power Tools. Le détail des opérations est bien expliqué ici.
Il existe d'autres astuces que je trouve aussi intéressantes dans ce cadre, mais il faut tenir la limite.
Qu'en pensez-vous ? A votre avis, quelle autre astuce devrait se trouver dans cette liste ?

have a nice day.