QCon London: Mastering long-running processes in modern architectures
Webcast migracion de tfs 2005-2008 a tfs 2010 v01
1. Sesión Audio Preguntas
• La presentación • Por favor ponga su • Por favor use el
comenzará en micrófono en Q&A manager
breve. Mudo. durante la sesión.
• La charla será • El audio estará • Hay una sesión de
grabada. disponible a través Preguntas y
de LiveMeeting. Respuestas al final
de la sesión.
13. Bases de datos de TFS 2008 Bases de datos de TFS 2010
TfsActivityLogging Tfs_Configuration
TfsBuild Tfs_DefaultCollection
TfsIntegration Tfs_Warehouse
TfsVersionControl
TfsWarehouse
TfsWorkItemTracking
TfsWorkItemTrackingAttachments
Base de SSAS en TFS 2008 Base de SSAS en TFS 2010
TfsAnalysis Tfs_Analysis
14.
15.
16.
17. Visual Studio 2010
Cliente Microsoft Test Manager
Command Line / PowerShell
Office, SharePoint Portal
TFS Web Services
Aplicación SharePoint Services
SQL Server Reporting Services
SQL Server Analysis Services
Datos
Operational Store
Data Warehouse
Cubo
18. Number of users Configuration CPU Memory Hard disk
Fewer than 250 Single-server (Team Foundation 1 single core 2 GB 1 disk at 7.2k rpm
users Server and the Database Engine processor at 2.13 GHz (125 GB)
on the same server).
250 to 500 users Single-server. 1 dual core processor 4 GB 1 disk at 10k rpm
at 2.13 GHz (300 GB)
500 to 2,200 users Dual-server (Team Foundation 1 dual core Intel Xeon 4 GB 1 disk at 7.2k rpm
Server and the Database Engine processor at 2.13 GHz (500 GB)
on different servers).
This row is for Team Foundation
Server.
This row is for the Database 1 quad core Intel 8 GB SAS disk array at
Engine with 500 to 2,200 users. Xeon processor at 10k rpm (2 TB)
2.33 GHz
2,200 to 3,600 Dual-server. 1 quad core Intel 8 GB 1 disk at 7.2k rpm
users This row is for Team Foundation Xeon processor at (500 GB)
Server. 2.13 GHz
This row is for the Database 2 quad core Intel 16 GB SAS disk array at
Engine with 2,200 to 3,600 Xeon processors at 10k rpm (3 TB)
users. 2.33 GHz
19. App Tier
Data Tier
Sharepoint
TFS
Application Data Store
Tier
20. App Tier Data Tier
TFS AT Data store
Clustered SQL
SharePoint Server
Farm
Clustered
Sharepoint
21.
22. Tarea Permisos necesarios
Para hacer el Back . Administrator en TFS2005/8 server
Up de TFS2005/8 . SQL Server System Administrator en
el server de SQL
Para Configurar . Administrator en TFS2010 server
TFS2010 . sysadmin en el SQL2008
. Administrator en el Report Server
. Farm Administrator en SharePoint
23.
24.
25.
26.
27. Versión de VS Descripción URL
http://blogs.msdn.com/b/jasonba/archiv
How to connect to a TFS 2010 server from a 2008 Team e/2009/08/10/how-to-connect-to-a-tfs-
2008
Explorer client 2010-server-from-a-2008-team-
explorer-client.aspx
http://www.microsoft.com/en-
2008 Visual Studio 2008 Service Pack Preparation Tool
us/download/details.aspx?id=16332
http://www.microsoft.com/en-
2008 Microsoft Visual Studio 2008 Service Pack 1 (Installer)
us/download/details.aspx?id=10986
http://www.microsoft.com/en-
2008 Visual Studio Team System 2008 Team Explorer
us/download/details.aspx?id=16338
Visual Studio Team System 2008 Service Pack 1 Forward
http://www.microsoft.com/en-
2008 Compatibility Update for Team Foundation Server 2010
us/download/details.aspx?id=10834
(Installer)
http://geekswithblogs.net/jehan/archive
2005 Connect to TFS2010 Server using VS 2005 Client /2010/07/15/connect-to-tfs2010-server-
using-vs-2005-client.aspx
http://www.microsoft.com/en-
2005 Microsoft® Visual Studio® 2005 Team Suite Service Pack 1
us/download/details.aspx?id=5553
http://www.microsoft.com/en-
2005 Visual Studio Team System 2005 Team Explorer
us/download/details.aspx?id=7203
Visual Studio Team System 2005 Service Pack 1 Forward
http://www.microsoft.com/en-
2005 Compatibility Update for Team Foundation Server 2010
us/download/details.aspx?id=3263
(Installer)
http://visualstudiogallery.msdn.microsof
2003 Team Foundation Server MSSCCI Provider 2010 32-bit t.com/bce06506-be38-47a1-9f29-
d3937d3d88d6
28. • Migrando
• KB2135068 - Labeled items and merge targets missing after upgrade to
TFS2010
• How to: Configure Settings for Dashboard Compatibility
• How to: Move Your Team Foundation Server from One Hardware
Configuration to Another
• Instalando TFS 2010
• Topologías de TFS 2010
• Requerimientos de Team Foundation Server
• Post Migración
• Team Foundation Server MSSCCI Provider 2010 32-bit
• Visual Studio 2008 SP1 Forward Compatibility Update for TFS 2010
29. Q&A
MUCHAS GRACIAS!
Diego Fidel Ferreyra
Innovation Manager
Huddle Group
Diego.ferreyra@huddle.com.ar
http://ferreyra.wordpress.com/
Editor's Notes
Hola a todos, mi nombre es DiegoFerreyra y trabajo en la empresa argentina HuddleGroup, coordinando equipos de desarrollo. Además de ejecutar proyectos de consultoría en TFS, internamente estamos usando TFS desde hace varios años y esto nos brinda experiencia de haber usado la herramienta en escenarios reales. Nuestro principal negocio son los proyectos de desarrollo a medida. Tenemos equipos de desarrollo distribuidos en Buenos Aires, Bahía Blanca, Mendoza y Santiago de Chile, por lo que nos encontramos con múltiples escenarios en los que utilizamos la herramienta.Durante esta presentación, hablaré sobre algunos de los escenarios más interesantes que hemos trabajado, de manera de poder compartir con ustedes la experiencia en cada uno de ellos.El primer escenario comentado será sobre las diversas alternativas para implementar TFS con alta disponibilidad y con equipos distribuidos.Luego comentaré sobre la posibilidad de que se trabaje con equipos en diversas plataformas, más allá de .NET y Visual Studio.En el tercer escenario, comentaré la experiencia de haber trabajado en la integración de TFS 2010 con Project Server.Y para cerrar, hablaré sobre cómo adaptar los templates de procesos para escenarios en que difieren de los artefactos por default provistos por TFS.
Desde un punto de vista de alto nivel, es importante remarcar que TFS es una plataforma que provee múltiples servicios para que puedan ser consumidos por diversos tipos de clientes.<CLICK>Lascaracterísitcas principales que provee, son las que se muestran aquí.Se brindan herramientas para poder trabajar en la planificación y seguimiento de los proyectos, logrando una gran trazabilidad hasta el código mismo. Esto permite que se pueda relacionar un requerimiento con las tareas, test cases, bugs, builds y hasta los checkins de código correspondientes. Esto es contenido dentro de los llamados TeamProjects. A su vez, existen colecciones de proyectos llamadas TeamCollections.Se puede también administrar el versionado del código fuente, junto con la posibilidad de poder aplicar políticas de checkin, generar alertas o poder relacionar un checkin con un requerimiento, bug o tarea.También se provee infraestructura para administrar los casos de prueba definidos por los testers del equipo, como así también automatizar su ejecución y generar reportes automáticos con los resultados.Adicionalmente, se cuenta con la infraestructura necesaria para definir servidores de builds. Estos servidores se conectan con diversos “BuildAgents” que son los servidores encargados de compilar las soluciones. También es posible obtener a partir de los builds generados, reportes automáticos con los resultados y generar alertas o enviar mails con los mismos.Sobre la información generada durante el proyecto, tanto requerimientos como métricas de código o resultados de los builds, es posible obtener reportes por medio de consultas o accediendo a un cubo contenido en SQL Server AnalysisServices.<CLICK>A su vez, es posible definir un template de proceso que englobe las definiciones en cuanto a artefactos que se utilizan (llamados Workitems), templates de sitios de proyecto, etc. Este template es utilizado luego para generar nuevos proyectos y será un punto importante cuando veamos cómo adaptar la metodología.<CLICK>Se provee también la infraestructura para poder administrar las VM para la ejecución de los tests automáticos. Esto tiene integración con System Center Virtual Machine Manager, de manera de poder generar las VMs ante la generación de un build para que luego sea instalado allí el nuevo build.<CLICK>Luego se cuenta con una serie de clientes para poder acceder a la plataforma. El más conocido y habitual es Visual Studio en sus diferentes veresiones, pero también se cuenta con el Team Explorer que se integra con Excel y Project para poder acceder desde estos productos. También se cuenta con una aplicación web llamada Team Web Access que permite utilizar las funcionalidades de TFS desde la web. Otro cliente muy importante es Sharepoint, que permite tener un teamsite de colaboración asociado al teamproject, y que de esta manera el equipo pueda utilizar todas las funcionalidades de Sharepoint desde el teamsite. Allí se pueden publicar reportes y dashboards, que proveen información al instante sobre aspectos tales como el avance del proyecto o la calidad de los entregables.
Si consideramos otro enfoque de los distintos componentes de TFS, podemos dividirlo en estas tres principales capas.En la capa de Cliente se cuenta con múltiples productos que pueden consumir la plataforma. Visual Studio, Excel y Sharepoint quizás son los más utilizados normalmente por los miembros del equipo. De esta manera, ya empezamos a ver que uno de los componentes con que se integra TFS es con Sharepoint, por lo tanto allí se puede encontrar un punto para escalar la solución.Debajo se encuentra una capa de Aplicación, en la que se proveen una serie de web services por parte de TFS, como así también los servicios provistos por SQL Server y Sharepoint. Aquí vemos también que SQL es otro importante componente para pensar en cómo escalar la solución.Adicionalmente, a nivel de datos, TFS cuenta con 3 principales repositorios: una base de datos SQL en la que persiste toda la información operacional; un data warehouse que periódicamente es actualizado con la información de las diversas bases operacionales que se encuentren definidas y un cubo generado a partir de este datawarehouse, de manera de poder contar con información analítica sumarizada.Con esto hemos visto los principales componentes que nos permitirán definir diversos esquemas para escalar nuestra implementación de TFS.
Como referencia respecto a las necesidades de hardware, comparto una tabla publicada en el sitio de Microsoft que comenta diversas configuraciones en base a la cantidad de usuarios que estarán interactuando con TeamFoundation Server.Esta tabla resulta útil para poder dimensionar el hardware necesario para poder instalar TeamFoundation Server
En cuanto a topologías de instalación de TFS 2010, la más sencilla es la llamada Single Server. En esta topología se instala en un único servidor todos los componentes de TFS. Esto es, Sharepoint (que puede ser Windows SharepointServices 3.0 o superior), SQL Server y TeamFoundation Server. Esta instalación pequeña incluso soporta ambientes de workgroups que quizás está siendo utilizado. También es importante mencionar que puede ser instalado en una máquina con sistema operativo cliente, tal como Windows Vista con Service Pack 2 o Windows 7.Pero aquí vemos que si consideramos que 100 usuarios por ejemplo estarán accediendo al mismo servidor de Sharepoint, quizás sea necesario pensar en algún modelo de escalamiento de alguna de las capas del servidor.
Un escalón mayor, es aquel en que se puede instalar TeamFoundation Server para interactuar con SQL Server y Sharepoint en servidores distintos. Esto es muy útil ya que por un lado permite mayor escalabilidad y por otro, permite reutilizar la infraestructura existene en la empresa. De esta manera, puede por ejemplo integrarse con un cluster de SQL Server o Sharepoint. En general es conveniente crear una nueva Web Application en Sharepoint específica para TFS, para poder ejecutar en ella los teamsites de proyectos. En el servidor de Sharepoint se deben instalar unas extensiones para Sharepoint de TeamFoundation Server, que proveen templates de teamsites para los templates de proyecto default, como así también una serie de componentes específicos tales como librerías, dashboards y web parts para la visualización de consultas.
El paso mayor de escalamiento de TFS, se da cuando se deben instalar múltiples servidores de TFS con un servidor de NLB. Esto permite alta disponibilidad para todos los servicios provistos por la plataforma.Por otro lado, en cuanto a distribución de las bases de datos, es factible contar con múltiples bases de datos que contengan colecciones de proyectos. De esta manera, puede distribuirse aún más la carga entre los servidores, por ejemplo para las diversas áreas dentro de la empresa.A su vez, con respecto a los servidores de Builds, es posible generar una granja con ellos, donde cada uno de ellos administra los llamados BuildAgents, que se encargan de compilar el código, ejecutar las pruebas y enviar los resultados a los servidores de Build. De esta manera, a la hora de configurar la integración continua, es posible que se distribuya mejor la carga entre varios servidores en lugar de sobrecargar uno.A su vez, es posible configurar como vimos antes, la integración con clusters de SQL o Sharepoint.Un componente interesante aquí es el TFS Proxy, que veremos en la siguiente diapositiva.