mardi 30 mars 2010

Migration TFS 2008 vers TFS 2010 Step by Step

Le Processus de mise à jour d'une plate forme de production TFS 2008 vers TFS 2010 est un processus hautement critique qui doit donc être planifié dans les règles de l'art.
L'objectif de cet article est de démontrer un des 2 scénarios possibles de bout en bout.
Tout d'abord quels sont les scénarios possibles :
Scénario 1 : In Place Ugrade
Dans ce scénario, on va tout simplement mettre à jour le serveur de production. L'avantage de ce scénario est la simplicité et la rapidité, les inconvénients : les risques et l'interruption d'activité des équipes travaillant sur la plate forme en cas d'échec. De plus, on est obligé de rester en 32 bits.
Le schéma ci dessous extrait du document TFS 2010 Upgrade Guidance (CodePlex) en illustre le principe sous jacent.
Scenario 2 : Migration
Ce scénario consiste à provisionner une machine(s) distincte et utiliser les backups de l'ancienne plate forme pour effectuer la migration.
Ce scénario est à mon sens le meilleur, pour de multiples raisons :
  • Peu de risques
  • Passage en 64 bits
  • Possibilité de scale up / scale out de la plate forme en toute simplicité.
  • Solution de Rollback en cas d'échec (l'ancienne plate forme étant toujours disponible)

Ci dessous le schéma illustrant le scénario :

Nous allons décrire étape par étape la procédure pour migrer une plate forme TFS 2008 vers TFS 2010 en utilisant un nouveau Host 64 bits mode Single Server donc le scénario 2.

Etape 1 : Les prérequis

Disposer d'un backup complet du système de bases de données TFS et Sharepoint dont la liste est la suivante :
  • TFSActivityLogging
  • TFSBuild
  • TFSIntegration
  • TFSVersionControl
  • TFSWarehouse
  • TFSWorkitemtracking
  • TFSWorkitemtrackingAttachments
  • WSS_Content
  1. Faire le choix d'un plate forme cible : Single Server ou Dual Server (Data Tier séparé de l'application Tier)
  2. Provisionner la plate forme (dans le cas de l'exemple : un serveur Windows 2003 / IIS / SQL Server 2008 avec Reporting Services et Analysis Services)
  3. Configurer la plate forme pour être conforme à l'installation de TFS 2010 (voir guide d'installation TFS 2010 sur MSDN)
  4. Dans le cas d'une installation WSS : Installer WSS 3.0 avec SP2 sur l'application Tier (nous verrons plus loin comment attacher la base de contenu)
  5. Attention : Bien configurer Reporting Services avant de lancer l'upgrade (en mode natif). Pour vérifier,il suffit simplement d'accèder au site http://localhost/reports sur le serveur TFS
  6. Procéder à la restauration des bases de données sur le nouveau serveur SQL
  7. Attacher la base de contenu WSS-Content TFS 2008 au nouveau site Sharepoint : Pour cela se connecter au Sharepoint Administration Central, A partir de l'espace Application Management, créer une nouvelle Application Web puis Cliquer sur le menu Manage Content Databases. Selectionner le site récemment crée et supprimer la base de contenu. finalement, il reste à attacher la base de contenu du backup TFS 2008, pour cela, nous allons utiliser la commande suivante :
    stsadm -o addcontentdb -url http://teamserver/ -databasename WSS_Content
    Cette commande doit être lancée à partir du dossier suivant :
  8. On vérifie ensuite dans Sharepoint Administration Central / Manage Content Database la complétion du précédent processus :

  9. Sharepoint et Reporting Services étant configurés
  10. Lancer l'installation de TFS 2010 qui s'effectue en moins de 10 mns
Un reboot est nécessaire durant l'installation
Une fois l'installtion terminée, à l'aide du menu démarrer, lancer All Programs / Team Foundation Server 2010 / Team Foundation Administration Console pour entamer le processus d'upgrade
Selectionner le noeud Application Tier puis dans le panneau droit cliquer sur Configure :
Puis sélectionner dans le menu Gauche l'option Upgrade puis cliquer sur le bouton Start Wizard

Cliquer sur Next

La page Databases s'affiche, entrer le nom de l'instance SQL ou les bases TFS 2008 ont été restaurées puis cliquer sur le lien : "List Available Databases" :

La base TFSIntegration doit apparaitre dans la liste. Cliquer sur Next :
Entrer le compte de service TFS par exemple Domain\Tfsservice et son password puis cliquer sur Test pour valider
Sur l'écran Application Tier, conserver les options par défaut et cliquer sur Next
Sur l'écran Reporting conserver l'option cochée pour activer la configuration Reporting Services par Team Foundation Server
Dans cet écran de configuration, entrer le nom de l'instance Report Server puis cliquer sur le lien : Populate Urls : les 2 champs doivent être remplis automatiquement. Le cas échéant, revoir la configuration Reporting Services. Cliquer sur Next
Pour Analysis Services, entrer le nom de l'hote puis cliquer sur Test pour obtenir la validation
Ignorer cet écran et cliquer sur Next
Sur cet écran de configuration Sharepoint, laisser la case à cocher activée et cliquer sur Next
Sur l'écran Settings, les adresses doivent être préremplies, il suffit de les valider en cliquant sur les liens tests
Les deux adresses doivent apparaitre validées comme ci dessous :
Cet écran permet de provisionner une Project Collection. Conserver cette option par défaut et cliquer sur Next
L'écran récapitulatif s'affiche, Cliquer sur Next
Le processus de vérification s'enclenche et doit absolument être validé avant de lancer le processus d'upgrade.
Bien analyser les warnings et vérifier qu'aucun point bloquant ne soit remonté avant de continuer.
Cliquer sur Configure :
L'opération de configuration étant terminée, cliquer sur Next pour finaliser le processus d'upgrade
Le processus d'upgrade est plus ou moins long en fonction de la volumétrie des données migrées.
Une fois terminé, l'écran tant attendu apparait
Puis l'écran final
La deuxième grande étape va consister à valider les artefacts migrés : Documents, Work Items, Source Control, Branches, Rapports, Builds.
Pour cela lancer une instance de Team Explorer 2010, puis se connecter au Serveur TFS 2010 (migré)
Vérifier l'accès à la Default Collection et au Projets d'équipes migrés
Remonter les projets à vérifier et commencer une action de QA pour valider la migration
Sur le scénario joué dans cet article, l'ensemble des artefacts projets ont été récupérés avec succès, y compris toute la partie personnalisation de Work Items et les branches du source Control. A noter que ce scénario a été joué avec la version RC de TFS 2010 : Plutot prometteur pour la suite

mercredi 17 mars 2010

Rapports TFS non mis à jour

Les rapports sont une des composantes essentielles permettant le suivi d'activité pour un projet. Il peut arriver que les rapports se figent dans le temps et ne sont donc plus actualisés.
Le constat se fait simplement en regardant sur le rapport la date de dernière mise à jour :
On trouve dans la partie haute du rapport la mention : Last Warehouse Update : 22/2/2010 2:08:24 PM par exemple.
Si cette date est antérieure à la date du jour, il y a réellement un problème de raffraichissement des données.
La résolution de ce problème est simple et peut se décomposer de la manière suivante :

Action 1 : Vérifier sur le serveur d'application TFS que le service TFSServerScheduler est démarré en utilisant la console de services (Services.msc). Le cas échéant cliquer sur Start pour démarrer le service.

Action 2 : Relancer le processing de données
  1. Démarrer une session Internet Explorer à partir du serveur d'application TFS et entrer l'adresse suivante : http://localhost:8080/Warehouse/V1.0/warehousecontroller.asmx
  2. Cliquer sur GetWarehouseStatus puis sur invoke, le résultat doit être : ProcessingAdapters(schema modifications), puis ProcessingOlap(schemas modifications), ProcessingAdapters (pulling Data), ProcessingOlap (Pulling Data) puis Idle. Il suffit de recliquer plusieurs fois sur invoke pour suivre ce processus.
  3. Revenir à la liste des opérations puis cliquer sur Run puis Invoke pour lancer le reprocessing du Warehouse. Le service retourne true ou false pour indiquer le démarrage du processing. On peut répéter cette étape plusieurs fois pour monitorer cette étape.

Action 3 : Vérifier sur le site de Rapports

  1. Toujours connecté au serveur d'application TFS, ouvrir une session internet explorer et entrer l'adresse http://localhost/Reports
  2. Afficher un rapport d'un projet d'équipe, la date Last Warehouse Update doit à présent être à la date du jour et donc les données raffraichies

Autres Actions pour forcer le raffraichissement de rapports TFS :

Reprocessing Manuel du Cube OLAP TFS : Pour avoir les dernières données réactualisées du Cube Olap TFS, démarrer une session SSMS et se connecter au serveur Analysis Services du serveur data tier de TFS, localiser dans le dossier bases, le TFS Warehouse et à l'aide du clic droit, lancer la commande Process pour reprocesser manuellement le cube et donc avoir la dernière version des données calculées à partir du Datawarehouse.

Annulation de la mise en cache des rapports : Se connecter au site des rapports : http://localhost/reports puis sélectionner le rapport pour lequel on veut afficher des données en "temps réel", Cliquer sur l'onglet Properties puis activer l'onglet Execution et cocher l'option : Do not cache temporary copies of this report

vendredi 12 mars 2010

Installation et Mise en Oeuvre de Lab Management Partie 2

Dans cet article nous allons procéder à la configuration de SCVMM et TFS afin de permettre la mise en oeuvre de Lab Management dans un processus de provisioning d'environnements de test.
Les pré-requis sont : L'implémentation des prérequis de la partie 1 de cette série d'articles.

Première étape : Configuration de SCVMM

A l'aide du menu démarrer lancer la console administrateur de SCVMM

Valider la connexion au port proposé :

La console apparait vide. la première étape va consister à ajouter le ou les hotes Hyper V qui vont héberger la ou les librairies de machines virtuelles qui serviront d'environnements de test

Cliquer sur le menu Hosts (menu de gauche) puis dans le menu Actions sur la droite, sélectionner la commande "Add Host"

Le Wizard Add Host démarre : Conserver l'option proposé dans le cadre de notre scénario et entrer les Credentials pour se connecter au Host

Sélectionner le host hyper V cible (A noter que la commande Search va permettre de localiser tous les hosts Hyper V disponibles sur l'AD) puis cliquer sur Add pour l'ajouter puis cliquer sur Next

Conserver les options par défaut pour les 2 écrans suivants puis à partir de l'écran Summary cliquer sur Add Host pour finaliser le processus

Un fenêtre permet de suivre le job de création en temps réel.

Une fois l'opération terminé, Activer le bouton Hosts pour terminer la configuration du Host avant de passer à la configuration coté TFS

Naviguer dans l'arborescence pour sélectionner le host à configurer, et activer la commande Properties à l'aide du menu contextuel

Activer l'onglet Hardware, puis sélectionner la carte réseau utilisée dans la rubrique Network Adapters


Point Important : TFS nécessite une Network Location pour la configuration. Pour ce faire, simplement activer la case à cocher Override network location puis entrer le nom de votre choix pour cette Network Location.

La configuration SCVMM est maintenant terminée, nous pouvons maintenant passer à la configuration du serveur TFS.
Etape 2 : Configuration de TFS 2010 pour Lab Management
L'administration de TFS 2010 ne pouvant toujours pas être effectuée à distance, il faut se connecter au serveur TFS pour la suite de la configuration.
A partir du menu Démarrer du serveur TFS, démarrer la console d'administration de Team Foundation Server

Cliquer sur le noeud Lab Management et cliquer sur le bouton Configure

Entre le nom FQDN du host à utiliser pour Lab Management, Cliquer sur test pour valider le nom, puis à l'aide de la zone de liste network Location, sélectionner la location spécifée lors de la configuration de du Hosts dans SCVMM :

Activer l'onglet Network Isolation. Cette fonctionnalité permet de déployer avec Lab Management des machines plusieurs fois avec la même IP sans avoir de conflit sur le réseau (Le système utilise un mécanisme de Virtual NAT). Ceci vient encore simplifer les déploiements puisque l'on pourra par exemple déployer les mêmes machines pour un environnement d'intégration, de test, et de pré-production sans avoir à jongler avec des Sysprep.
Entrer la plage d'IP à utiliser ainsi que le suffixe DNS (Domaine FQDN) :

Valider, l'écran suivant est affiché confirmant la configuration de Lab Management pour TFS

La plate forme est donc entièrement configurée pour la mise en oeuvre de Team Lab Management. Dans le prochain article, nous aborderons la mise en oeuvre et le déploiement d'un environnement de Test.