SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
ALM Summit Brasil 2014 
ALM Summit Brasil 2014 
Como ser um bom administrador 
de Team Foundation Server 
Vinicius Moura 
vinicius.moura@lambda3.com.br 
@vinijmoura 
ALM Rangers 
MCSD ALM
ALM Summit Brasil 2014 
Para aprender e/ou recordar 
API 
Camada de Dados 
(“Data Tier”) 
Camada de Aplicação 
(“Application Tier”) 
Camada de Cliente 
(“Client Tier”) 
Visual 
Studio 
Eclipse 
Windows 
Explorer 
Linha de 
comando 
Microsoft 
Excel 
Microsoft 
Project 
Aplicações
ALM Summit Brasil 2014 
Como administrar um ou mais 
servidor(es) de vários “pais”? 
Data Tier App Tier Proxy Server 
Build Server 
O que eu faço com esse 
monte de servidores?
ALM Summit Brasil 2014 
Backup das bases de dados 
• Cenário 2 – Backup 
Admin Console 
• Cenário 1 – Backup 
Trivial 
• Tfs_Configuration 
• Tfs_Collection – 1 à “N” 
• Tfs_Warehouse 
• ReportServer (2 bases) 
• SharePoint (3 bases) 
Vamos facilitar a sua vida? 
http://msdn.microsoft.com/en-us/library/hh561429.aspx
ALM Summit Brasil 2014 
Process Templates 
Dica importante: faça o versionamento do Process 
Template da sua empresa
ALM Summit Brasil 2014 
Process Templates 
Cenário do caos: Eu preciso atualizar 700 Team 
Projects para a inclusão de um novo campo no Work 
Item Type Bug 
• Resolução 1 – Utilizar o Process Template Editor e 
repetir o processo 700 vezes ;-)
ALM Summit Brasil 2014 
Process Templates 
• Resolução 2 – Utilizar a ferramenta TFS Administrators 
Toolkit 
http://visualstudiogallery.msdn.microsoft.com/33713c5d 
-31a3-44b3-ae94-3c413e6b21c7
ALM Summit Brasil 2014 
Process Templates 
• Resolução 3 – Linha de comando witadmin 
importwitd 
Select na tabela tbl_Project da tfs_Collection 
Salvar os nomes dos Team Projects em um arquivo txt 
Executar a linha de comando witadmin importwitd
ALM Summit Brasil 2014 
Process Templates 
witadmin importwitd /collection:collectionurl 
[/p:project] /f:filename /v 
FOR /F "tokens=1" %i in (C:tempprojetos.txt) 
DO witadmin importwitd 
/collection:http://vinimoura-pc: 
8080/tfs/DefaulCollection /p:%i 
/f:"D:DesktopMicrosoft Visual Studio Scrum 
2013.3WorkItem 
TrackingTypeDefinitionsBug.xml" /v > 
C:temp%i.txt
ALM Summit Brasil 2014 
Grupos e Usuários 
Permissionamento de usuários 
TFSSecurity /imx <identity> 
/collection:http://myservertfs:8080/tfs/Collec 
tion
ALM Summit Brasil 2014 
Grupos e Usuários 
Auditoria de usuários no TFS 2013
ALM Summit Brasil 2014 
A tabela tbl_command 
• Tabela de acessos ao TFS 
• Command 
• Start Time 
• Execution Time 
• IdentityName 
• IP 
• UserAgent 
A tabela tbl_command é limpa 
a cada 14 dias :(
ALM Summit Brasil 2014 
A tabela tbl_command 
Cenário 1: Como listar as versões de Visual Studio 
que se conectam ao meu TFS? 
SELECT DISTINCT UserAgent 
FROM tbl_Command 
ORDER BY UserAgent
ALM Summit Brasil 2014 
A tabela tbl_command 
Cenário 2: Performance dos comandos executados
ALM Summit Brasil 2014 
Scripts Power Shell 
Cenário 1: Criar branches 
param( [string] $ServerFolderLocation ) 
if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) 
-eq $null ) 
{ 
Add-PSSnapin Microsoft.TeamFoundation.PowerShell 
} 
$CollectionURI="http://myserver/tfs/myCollection" 
$tfs=Get-TfsServer -name $CollectionURI 
$TfExePath = "C:Program FilesMicrosoft Visual Studio 12.0Common7IDETF.exe" 
$match="TRUNK" 
foreach ($item in Get-TfsChildItem $ServerFolderLocation -f -r -server $tfs) 
{ 
if ($item -match $match) 
{ 
$branchpath = $item.ServerItem -replace "TRUNK", "BRANCHES" 
$branchpath = $branchpath 
& "$TfExePath" branch $item.ServerItem $branchpath /version:T /checkin 
/comment:"Created Branch" 
} 
}
ALM Summit Brasil 2014 
Scripts Power Shell 
Cenário 2: Converter pastas em branches 
param( [string] $ServerFolderLocation ) 
if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) 
-eq $null ) 
{ 
Add-PSSnapin Microsoft.TeamFoundation.PowerShell 
} 
$CollectionURI="http://myserver/tfs/myCollection" 
$tfs=Get-TfsServer -name $CollectionURI 
$TfptExePath = "C:Program FilesMicrosoft Team Foundation Server 2013 Power ToolsTFPT.exe" 
$match="TRUNK" 
foreach ($item in Get-TfsChildItem $ServerFolderLocation -f -r -server $tfs) 
{ 
if ($item -match $match) 
{ 
& "$TfptExePath" branches /convertToBranch /collection:$CollectionURI 
/description:"Convert to Branch" $item.ServerItem 
} 
}
ALM Summit Brasil 2014 
Scripts Power Shell 
Cenário 3: Criar work Itens 
param( [string] $ServerFolderLocation ) 
if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) 
-eq $null ) 
{ 
Add-PSSnapin Microsoft.TeamFoundation.PowerShell 
} 
$CollectionURI="http://myserver/tfs/myCollection" 
$tfs=Get-TfsServer -name $CollectionURI 
$TfptExePath = "C:Program FilesMicrosoft Team Foundation Server 2013 Power ToolsTFPT.exe" 
$match=“BRANCHES" 
foreach ($item in Get-TfsChildItem $ServerFolderLocation -f -r -server $tfs) 
{ 
if ($item -match $match) 
{ 
$title = $item.ServerItem 
$description = "Primeiro checkin - " + $title 
& "$TfptExePath" workitem /new myProjectUser Story 
/collection:$CollectionURI /Fields:"Title=$title;Description=$description" 
} 
}
ALM Summit Brasil 2014 
Scripts Power Shell 
Cenário 4: Permissionamento de Pastas 
param( [string] $ServerFolderLocation ) 
if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) 
-eq $null ) 
{ 
Add-PSSnapin Microsoft.TeamFoundation.PowerShell 
} 
$CollectionURI="http://myserver/tfs/myCollection" 
$tfs=Get-TfsServer -name $CollectionURI 
$TfExePath = "C:Program FilesMicrosoft Visual Studio 12.0Common7IDETF.exe" 
$match="BRANCHES" 
foreach ($item in Get-TfsChildItem $ServerFolderLocation -f -r -server $tfs) 
{ 
if ($item -match $match) 
{ 
& "$TfExePath" permission /allow:"checkin,pendchange,merge" 
/group:Contributors/collection:$CollectionURI $item.ServerItem 
} 
}
ALM Summit Brasil 2014 
Gerenciamento de Builds 
Cenário 1: Meu build controller morreu e preciso 
executar o reapontamento de 200 Build Definitions 
TFS Community Build Manager - 
http://visualstudiogallery.msdn.microsoft.com/73bf2d8e-aec6- 
406c-8e7f-1c678e46557f
ALM Summit Brasil 2014 
O “rei” dos Plug-ins – Neno Loje 
tfsRefresWarehouse 
tfsSyncIdentities 
http://blogs.msmvps.com/vstsblog/2014/05/05/upd 
ated-tools-for-tfs-2013/
ALM Summit Brasil 2014 
ALM Rangers 
• Solutions – http://aka.ms/vsarsolutions 
• Widgets – http://aka.ms/widgets
ALM Summit Brasil 2014 
ALM Summit Brasil 2014 
Obrigado! 
vinicius.moura@lambda3.com.br 
@vinijmoura 
http://blog.lambda3.com.br/L3/viniciusmoura/

Weitere ähnliche Inhalte

Ähnlich wie Como ser um bom administrador de team foundation server vinicius moura

nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud
nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud
nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud Alithya
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoVerein FM Konferenz
 
Ten Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-onsTen Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-onsAtlassian
 
Performance and Scalability Testing with Python and Multi-Mechanize
Performance and Scalability Testing with Python and Multi-MechanizePerformance and Scalability Testing with Python and Multi-Mechanize
Performance and Scalability Testing with Python and Multi-Mechanizecoreygoldberg
 
Serverless ML Workshop with Hopsworks at PyData Seattle
Serverless ML Workshop with Hopsworks at PyData SeattleServerless ML Workshop with Hopsworks at PyData Seattle
Serverless ML Workshop with Hopsworks at PyData SeattleJim Dowling
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php PresentationAlan Pinstein
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesLindsay Holmwood
 
Setting Up a TIG Stack for Your Testing
Setting Up a TIG Stack for Your TestingSetting Up a TIG Stack for Your Testing
Setting Up a TIG Stack for Your TestingJet Liu
 
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability EnvironmentsSaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability EnvironmentsSaltStack
 
Meetup bangalore aug31st2019
Meetup bangalore aug31st2019Meetup bangalore aug31st2019
Meetup bangalore aug31st2019D.Rajesh Kumar
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextPrateek Maheshwari
 
How Many Ohs? (An Integration Guide to Apex & Triple-o)
How Many Ohs? (An Integration Guide to Apex & Triple-o)How Many Ohs? (An Integration Guide to Apex & Triple-o)
How Many Ohs? (An Integration Guide to Apex & Triple-o)OPNFV
 
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)camunda services GmbH
 
Julien Simon "Scaling ML from 0 to millions of users"
Julien Simon "Scaling ML from 0 to millions of users"Julien Simon "Scaling ML from 0 to millions of users"
Julien Simon "Scaling ML from 0 to millions of users"Fwdays
 
Software Project Management
Software Project ManagementSoftware Project Management
Software Project ManagementWidoyo PH
 
ASPNET for PHP Developers
ASPNET for PHP DevelopersASPNET for PHP Developers
ASPNET for PHP DevelopersWes Yanaga
 
Dive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr TsapDive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr TsapProvectus
 

Ähnlich wie Como ser um bom administrador de team foundation server vinicius moura (20)

nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud
nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud
nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud
 
Pyramid deployment
Pyramid deploymentPyramid deployment
Pyramid deployment
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
 
Ten Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-onsTen Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-ons
 
Asp.net tips
Asp.net tipsAsp.net tips
Asp.net tips
 
Performance and Scalability Testing with Python and Multi-Mechanize
Performance and Scalability Testing with Python and Multi-MechanizePerformance and Scalability Testing with Python and Multi-Mechanize
Performance and Scalability Testing with Python and Multi-Mechanize
 
Serverless ML Workshop with Hopsworks at PyData Seattle
Serverless ML Workshop with Hopsworks at PyData SeattleServerless ML Workshop with Hopsworks at PyData Seattle
Serverless ML Workshop with Hopsworks at PyData Seattle
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
Setting Up a TIG Stack for Your Testing
Setting Up a TIG Stack for Your TestingSetting Up a TIG Stack for Your Testing
Setting Up a TIG Stack for Your Testing
 
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability EnvironmentsSaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
 
Meetup bangalore aug31st2019
Meetup bangalore aug31st2019Meetup bangalore aug31st2019
Meetup bangalore aug31st2019
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's Next
 
How Many Ohs? (An Integration Guide to Apex & Triple-o)
How Many Ohs? (An Integration Guide to Apex & Triple-o)How Many Ohs? (An Integration Guide to Apex & Triple-o)
How Many Ohs? (An Integration Guide to Apex & Triple-o)
 
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
 
Julien Simon "Scaling ML from 0 to millions of users"
Julien Simon "Scaling ML from 0 to millions of users"Julien Simon "Scaling ML from 0 to millions of users"
Julien Simon "Scaling ML from 0 to millions of users"
 
Clontab webpage
Clontab webpageClontab webpage
Clontab webpage
 
Software Project Management
Software Project ManagementSoftware Project Management
Software Project Management
 
ASPNET for PHP Developers
ASPNET for PHP DevelopersASPNET for PHP Developers
ASPNET for PHP Developers
 
Dive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr TsapDive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr Tsap
 

Mehr von Vinicius Moura

Interop git hubactions v2
Interop git hubactions v2Interop git hubactions v2
Interop git hubactions v2Vinicius Moura
 
Desafios e dicas para uma migração bem sucedida do tfs para o vsts
Desafios e dicas para uma migração bem sucedida do tfs para o vstsDesafios e dicas para uma migração bem sucedida do tfs para o vsts
Desafios e dicas para uma migração bem sucedida do tfs para o vstsVinicius Moura
 
Vssummit dev ops calculando o débito técnico
Vssummit   dev ops calculando o débito técnicoVssummit   dev ops calculando o débito técnico
Vssummit dev ops calculando o débito técnicoVinicius Moura
 

Mehr von Vinicius Moura (8)

Interop git hubactions v2
Interop git hubactions v2Interop git hubactions v2
Interop git hubactions v2
 
GitHub Actions
GitHub ActionsGitHub Actions
GitHub Actions
 
Azure labs Vinicius
Azure labs ViniciusAzure labs Vinicius
Azure labs Vinicius
 
Desafios e dicas para uma migração bem sucedida do tfs para o vsts
Desafios e dicas para uma migração bem sucedida do tfs para o vstsDesafios e dicas para uma migração bem sucedida do tfs para o vsts
Desafios e dicas para uma migração bem sucedida do tfs para o vsts
 
Vssummit dev ops calculando o débito técnico
Vssummit   dev ops calculando o débito técnicoVssummit   dev ops calculando o débito técnico
Vssummit dev ops calculando o débito técnico
 
Alm e share point
Alm e share pointAlm e share point
Alm e share point
 
Alm summit 2012
Alm summit 2012Alm summit 2012
Alm summit 2012
 
Alm summit 2012
Alm summit 2012Alm summit 2012
Alm summit 2012
 

Kürzlich hochgeladen

Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 

Kürzlich hochgeladen (20)

Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 

Como ser um bom administrador de team foundation server vinicius moura

  • 1. ALM Summit Brasil 2014 ALM Summit Brasil 2014 Como ser um bom administrador de Team Foundation Server Vinicius Moura vinicius.moura@lambda3.com.br @vinijmoura ALM Rangers MCSD ALM
  • 2. ALM Summit Brasil 2014 Para aprender e/ou recordar API Camada de Dados (“Data Tier”) Camada de Aplicação (“Application Tier”) Camada de Cliente (“Client Tier”) Visual Studio Eclipse Windows Explorer Linha de comando Microsoft Excel Microsoft Project Aplicações
  • 3. ALM Summit Brasil 2014 Como administrar um ou mais servidor(es) de vários “pais”? Data Tier App Tier Proxy Server Build Server O que eu faço com esse monte de servidores?
  • 4. ALM Summit Brasil 2014 Backup das bases de dados • Cenário 2 – Backup Admin Console • Cenário 1 – Backup Trivial • Tfs_Configuration • Tfs_Collection – 1 à “N” • Tfs_Warehouse • ReportServer (2 bases) • SharePoint (3 bases) Vamos facilitar a sua vida? http://msdn.microsoft.com/en-us/library/hh561429.aspx
  • 5. ALM Summit Brasil 2014 Process Templates Dica importante: faça o versionamento do Process Template da sua empresa
  • 6. ALM Summit Brasil 2014 Process Templates Cenário do caos: Eu preciso atualizar 700 Team Projects para a inclusão de um novo campo no Work Item Type Bug • Resolução 1 – Utilizar o Process Template Editor e repetir o processo 700 vezes ;-)
  • 7. ALM Summit Brasil 2014 Process Templates • Resolução 2 – Utilizar a ferramenta TFS Administrators Toolkit http://visualstudiogallery.msdn.microsoft.com/33713c5d -31a3-44b3-ae94-3c413e6b21c7
  • 8. ALM Summit Brasil 2014 Process Templates • Resolução 3 – Linha de comando witadmin importwitd Select na tabela tbl_Project da tfs_Collection Salvar os nomes dos Team Projects em um arquivo txt Executar a linha de comando witadmin importwitd
  • 9. ALM Summit Brasil 2014 Process Templates witadmin importwitd /collection:collectionurl [/p:project] /f:filename /v FOR /F "tokens=1" %i in (C:tempprojetos.txt) DO witadmin importwitd /collection:http://vinimoura-pc: 8080/tfs/DefaulCollection /p:%i /f:"D:DesktopMicrosoft Visual Studio Scrum 2013.3WorkItem TrackingTypeDefinitionsBug.xml" /v > C:temp%i.txt
  • 10. ALM Summit Brasil 2014 Grupos e Usuários Permissionamento de usuários TFSSecurity /imx <identity> /collection:http://myservertfs:8080/tfs/Collec tion
  • 11. ALM Summit Brasil 2014 Grupos e Usuários Auditoria de usuários no TFS 2013
  • 12. ALM Summit Brasil 2014 A tabela tbl_command • Tabela de acessos ao TFS • Command • Start Time • Execution Time • IdentityName • IP • UserAgent A tabela tbl_command é limpa a cada 14 dias :(
  • 13. ALM Summit Brasil 2014 A tabela tbl_command Cenário 1: Como listar as versões de Visual Studio que se conectam ao meu TFS? SELECT DISTINCT UserAgent FROM tbl_Command ORDER BY UserAgent
  • 14. ALM Summit Brasil 2014 A tabela tbl_command Cenário 2: Performance dos comandos executados
  • 15. ALM Summit Brasil 2014 Scripts Power Shell Cenário 1: Criar branches param( [string] $ServerFolderLocation ) if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null ) { Add-PSSnapin Microsoft.TeamFoundation.PowerShell } $CollectionURI="http://myserver/tfs/myCollection" $tfs=Get-TfsServer -name $CollectionURI $TfExePath = "C:Program FilesMicrosoft Visual Studio 12.0Common7IDETF.exe" $match="TRUNK" foreach ($item in Get-TfsChildItem $ServerFolderLocation -f -r -server $tfs) { if ($item -match $match) { $branchpath = $item.ServerItem -replace "TRUNK", "BRANCHES" $branchpath = $branchpath & "$TfExePath" branch $item.ServerItem $branchpath /version:T /checkin /comment:"Created Branch" } }
  • 16. ALM Summit Brasil 2014 Scripts Power Shell Cenário 2: Converter pastas em branches param( [string] $ServerFolderLocation ) if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null ) { Add-PSSnapin Microsoft.TeamFoundation.PowerShell } $CollectionURI="http://myserver/tfs/myCollection" $tfs=Get-TfsServer -name $CollectionURI $TfptExePath = "C:Program FilesMicrosoft Team Foundation Server 2013 Power ToolsTFPT.exe" $match="TRUNK" foreach ($item in Get-TfsChildItem $ServerFolderLocation -f -r -server $tfs) { if ($item -match $match) { & "$TfptExePath" branches /convertToBranch /collection:$CollectionURI /description:"Convert to Branch" $item.ServerItem } }
  • 17. ALM Summit Brasil 2014 Scripts Power Shell Cenário 3: Criar work Itens param( [string] $ServerFolderLocation ) if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null ) { Add-PSSnapin Microsoft.TeamFoundation.PowerShell } $CollectionURI="http://myserver/tfs/myCollection" $tfs=Get-TfsServer -name $CollectionURI $TfptExePath = "C:Program FilesMicrosoft Team Foundation Server 2013 Power ToolsTFPT.exe" $match=“BRANCHES" foreach ($item in Get-TfsChildItem $ServerFolderLocation -f -r -server $tfs) { if ($item -match $match) { $title = $item.ServerItem $description = "Primeiro checkin - " + $title & "$TfptExePath" workitem /new myProjectUser Story /collection:$CollectionURI /Fields:"Title=$title;Description=$description" } }
  • 18. ALM Summit Brasil 2014 Scripts Power Shell Cenário 4: Permissionamento de Pastas param( [string] $ServerFolderLocation ) if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null ) { Add-PSSnapin Microsoft.TeamFoundation.PowerShell } $CollectionURI="http://myserver/tfs/myCollection" $tfs=Get-TfsServer -name $CollectionURI $TfExePath = "C:Program FilesMicrosoft Visual Studio 12.0Common7IDETF.exe" $match="BRANCHES" foreach ($item in Get-TfsChildItem $ServerFolderLocation -f -r -server $tfs) { if ($item -match $match) { & "$TfExePath" permission /allow:"checkin,pendchange,merge" /group:Contributors/collection:$CollectionURI $item.ServerItem } }
  • 19. ALM Summit Brasil 2014 Gerenciamento de Builds Cenário 1: Meu build controller morreu e preciso executar o reapontamento de 200 Build Definitions TFS Community Build Manager - http://visualstudiogallery.msdn.microsoft.com/73bf2d8e-aec6- 406c-8e7f-1c678e46557f
  • 20. ALM Summit Brasil 2014 O “rei” dos Plug-ins – Neno Loje tfsRefresWarehouse tfsSyncIdentities http://blogs.msmvps.com/vstsblog/2014/05/05/upd ated-tools-for-tfs-2013/
  • 21. ALM Summit Brasil 2014 ALM Rangers • Solutions – http://aka.ms/vsarsolutions • Widgets – http://aka.ms/widgets
  • 22. ALM Summit Brasil 2014 ALM Summit Brasil 2014 Obrigado! vinicius.moura@lambda3.com.br @vinijmoura http://blog.lambda3.com.br/L3/viniciusmoura/