Gestão Ágil de Projetos e Portfólio com o TFS 2013

Fui questionado algumas vezes sobre o limite de projetos do Team Foundation Server, suportados por um Team Project Collection, alguns inclusive sabem qual é o limite e reclamam que é muito baixo.

 

Tentando entender o motivo desta dúvida, pensei em formular uma pergunta melhor, e cheguei em “Qual a melhor maneira de organizar o TFS para trabalhar com vários projetos e equipes?”

Usei essa pergunta como ponto de partida para este conteúdo, apresentado no Visual Studio Summit 2014.

 

O que é o TFS?

O TFS é uma ferramenta de ALM, ou seja, para Gestão do Ciclo de Vida de Aplicações, o que é diferente de gerenciar projetos.


Qual é a duração de um projeto? E qual o tempo de vida de uma aplicação? Quanto tempo?

A duração costuma ser a primeira diferença entre um projeto e uma aplicação, já que o ciclo de vida de uma aplicação costuma durar vários anos, e uma aplicação bem sucedida acaba passando por vários projetos de melhoria, ou até migração e reconstrução.

Um outro ponto importante em relação a uma ferramenta de ALM é a necessidade de gerenciar várias aplicações ao mesmo tempo, pois muitas aplicações costumam se integrar a outras, e a evoluir na forma de módulos distintos, com componentes em comum e com camadas isoladas.

Do ponto de vista de gestão, seria interessante ter a possibilidade de tratar vários projetos de maneira independente, para criação e evolução dessas camadas, módulos e aplicações, mas também seria muito útil poder consolidar e recombinar tudo.

Acrescentando a necessidade de trabalhar com equipes diferentes, inclusive equipes externas, contratadas para um projeto, começamos a incluir preocupações em relação a controles de acesso às informações.

 

Um Team Project

O TFS permite que várias equipes atuem em um projeto, e a organização hierárquica da empresa pode ser representada pelo recurso de Áreas, que acrescenta o controle de acesso aos itens de trabalho.

 



Os itens de trabalho podem ser classificados e organizados em até sete níveis hierárquicos, definidos por uma hierarquia de tipos de itens de trabalho, seguindo uma organização de portfólio backlog, que pode representar objetivos estratégicos e portfólio de produtos. Esta classificação é um exemplo sugerido no MSDN:

 



Para ilustrar, vale pensar em um conjunto como este para representar o nível de granularidade de cada nível hierárquico, que poderia representar um conjunto de iniciativas regionais em uma empresa global:

 



Um Team Project possibilita a gestão de várias equipes e várias aplicações, considerando vários projetos acontecendo ao longo do ciclo de vida de cada uma. No limite, não seria estranho pensar que uma implantação do TFS fosse utilizada para gerenciar um único Team Project.

Áreas e Equipes

Nas versões iniciais do TFS, a árvore de Áreas não tinha uma função específica, tendo sido utilizada para definir módulos da aplicação, ou mesmo suas camadas.

O conceito de Equipes, Team em inglês, surgiu com o TFS2012 e com ele podemos utilizar as Áreas para realizar o controle de acesso aos itens de trabalho. Com isso, passa a ser natural utilizar as Áreas para representar a hierarquia da empresa.

Para fazer a gestão das Áreas e Equipes é necessário acessar a área de administração do Team Project, clicando na engrenagem no topo direito do site do Team Project:

 



A tela principal da área de administração é a área de administração das Equipes, e a criação de uma Equipe pode criar uma Área correspondente:

 



Cada Equipe pode ter uma áreas padrão, que indica qual será a área utilizada quando um novo item de trabalho for criado por alguém deste time.

 


 

E para cada Área é possível administrar os acessos, definindo as permissões de cada time:

 


Portfólio Backlog

O portfólio backlog possibilita a gestão de vários níveis de itens de trabalho. Apesar de ser possível criar uma árvore de itens de trabalho do mesmo tipo, a possibilidade de definir os tipos de itens de trabalho para cada nível possibilita uma melhor organização e visualização dos mesmos.

Aqui podemos ver um conjunto de itens de trabalho dos tipos Epic, Goal e Experience, em um Team Project customizado conforme a sugestão do MSDN:

 



Para utilizar esta organização é necessário customizar o Team Project, exigindo o uso da versão On-Premises do TFS, pois o Visual Studio Online ainda não suporta customização do Team Project.

Referências

Para preparação desta apresentação e artigo foram utilizados estes materiais:

Add a backlog to Agile portfolio management

http://msdn.microsoft.com/en-us/library/dn217880.aspx

Agile Portfolio Management: Using TFS to support backlogs across multiple teams

http://msdn.microsoft.com/en-us/library/dn306083.aspx

Agile Planning and Portfolio Management with Team Foundation Server 2013

http://download.microsoft.com/download/B/C/8/BC8558E1-192E-4286-B3B0-320A8B7CE49D/Agile Planning and Portfolio Management with Team Foundation Server 2013.docx

Apresentação do Visual Studio Summit 2014

http://pt.slideshare.net/marceloazuma/gesto-gil-de-projetos-e-portflio-com-o-tfs-2013


Tags:

Prism for Windows 8.1

Achei um bom motivo para abrir o ano, a disponibilização do Prism for Windows 8.1.

O foco desta versão do Prism é ajudar no desenvolvimento de aplicações para a Windows Store, com uso de C#, XAML, Windows Runtime e patterns como MVVM e agregação de eventos.

Consegui contribuir muito pouco com esta publicação, mas é muito bom ver o time do Patterns & Practices gerando conteúdo de boa qualidade e respeitando um bom legado como este.

Team Web Access – Access Levels

A interface web do Visual Studio Team Foundation Server, conhecida como Team Web Access possui três diferentes Access Levels a partir da versão 2012.

Os três Access Levels são Limited, Standard e Full. E as funcionalidades oferecidas em cada um na versão 2013 estão listados abaixo:

Limited Standard Full
View My Work Items View My Work Items

Standard Features

Agiles boards

Backlog and Sprint planning tools

Chart Viewing

View My Work Items

Standard Features

Agiles boards

Backlog and Sprint planning tools

Request and Manage Feedback

Test case management

Team rooms

Agile Portfolio Management

Chart Viewing

Chart Authoring

O Access Level padrão do Team Foundation Server 2012 e 2013 é o Standard, e para altera-lo é necessário entrar em Administer Server pelo Team Web Access, como na figura abaixo:

Em seguida em Control panel:

A aba Access levels dá acesso aos três Access Levels, e é possível definir o padrão clicando-se em “Set as default access level”:

O acesso a recursos como Team Rooms e Agile Portfolio Management, diretamente pelo Team Web Access, ou por atalhos do Visual Studio, só é possível se o Access Level padrão for Full, ou se o usuário estiver associado ao mesmo, diretamente ou através de um grupo.

Em caso contrário, o usuário receberá a mensagem de erro “TF400409: You do not have licensing rights to access this feature:”.

Hyper-V Enhanced Session Mode

Windows 8.1 and Windows Server 2012 R2 has some new features for Virtual Machine Connection and Hyper-V, grouped by Enhanced Session Mode.

Enhanced Session Mode makes it easy to use a Virtual Machine with:

  • Different resolutions, including full screen mode
  • Audio
  • Local Printers
  • Clipboard
  • Smart Cards
  • Drives
  • USB devices

Client Hyper-V still does not supports Accelerated 3D graphics, Shared Folders, Autofit and Unity, as compared on my previous post Comparing VMware Workstation 9 with Client Hyper-V, but Enhanced Session Mode really improves usability.

Unfortunately, it only works with Windows 8.1 and Windows Server 2012 R2 guest Virtual Machines.

Configuration

To enable it in Windows Server 2012 R2, you must “Allow enhanced session mode” and “Use enhanced session mode” on Hyper-V settings. Windows 8.1 makes it enabled by default.

Connection

To use it, just open Virtual Machine Connection for a Windows 8.1 or Windows Server 2012 R2 virtual machine, and you will see:

And the options for using Local Resources:

Microsoft LightSwitch HTML Client for Visual Studio 2012 no Visual Studio Summit 2013

Uma das novidades do recém lançado Visual Studio 2012 Update 2 foi o Release do Microsoft LightSwitch HTML Client for Visual Studio 2012.

Com esta atualização, o LightSwitch passou a suportar, entre outras coisas, HTML5, jQuery e arquitetura MVVM, ampliando em muito o número de dispositivos que podem ser utilizados para acesso às aplicações criadas.

Estas características chamaram a minha atenção e me motivaram a avaliar a novidade, que possibilitam a criação rápida de aplicações focadas nos dispositivos móveis atuais, e que funcionam em sistemas operacionais como iOS e Android, além de Windows.

Aproveitei para compartilhar o pouco que aprendi no Visual Studio Summit 2013, na sessão “Microsoft LightSwitch HTML Client for Visual Studio 2012″, e a apresentação pode ser acessada em http://www.slideshare.net/marceloazuma/microsoft-lightswitch-html-client-for-visual-studio-2012.

 

Referências

Esta é a lista das referências utilizadas para a preparação da apresentação.

Exemplos de aplicações HTML Client

Building a LightSwitch HTML Client: eBay Daily Deals (Andy Kung)

http://blogs.msdn.com/b/lightswitch/archive/2012/11/21/html-client-daily-deals-andy-kung.aspx

Signed-In Part 1 – Introduction (Andy Kung)

http://blogs.msdn.com/b/lightswitch/archive/2013/03/18/signed-in-part-1-introduction-andy-kung.aspx

The LightSwitch HTML Client: An Architectural Overview (Stephen Provine)

http://blogs.msdn.com/b/lightswitch/archive/2012/06/21/the-lightswitch-html-client-an-architectural-overview.aspx

Arquitetura

Exploring LightSwitch Architecture

http://msdn.microsoft.com/en-us/vstudio/gg491708

The LightSwitch HTML Client: An Architectural Overview (Stephen Provine)

http://blogs.msdn.com/b/lightswitch/archive/2012/06/21/the-lightswitch-html-client-an-architectural-overview.aspx

Outras

Localizing a LightSwitch Application (Heinrich Wendel)

http://blogs.msdn.com/b/lightswitch/archive/2013/05/02/localizing-a-lightswitch-application.aspx

Queries

Many-To-How-Many – HTML Edition (Heinrich Wendel)

http://blogs.msdn.com/b/lightswitch/archive/2013/04/10/many-to-how-many-html-edition-heinrich-wendel.aspx

How to: Extend a Query by Using Code

http://msdn.microsoft.com/en-us/library/ff852040.aspx

Demo hospedada no Azure Websites

A demo que eu construí foi baseada no aplicativo Time ‘n’ Place, e pode ser acessada aqui:

https://marceloazuma.azurewebsites.net/HTMLClient/

Username: VSSummit2013

Password: Guest20!3

Uso de cartāo de memória para aumentar o espaço de armazenamento interno com o Windows 8

03/03/2013 1 comentário

Este artigo apresenta uma maneira eficiente de usar um cartão de memória para armazenamento de fotos e músicas, entre outros, com o Windows 8: http://www.teamradicus.com/post/Surface-and-SD-Card.aspx.

Ele se refere ao Surface, mas o problema é recorrente em qualquer equipamento com leitor de cartões de memória, caso o usuário deseje utiliza-lo para aumentar o espaço de armazenamento interno.

É uma volta muito grande para algo que deveria ser natural em um sistema operacional para tablets, mas o resultado final fica muito bom.

Tags:

Visual Studio 2012 Team Foundation Server no Windows Azure

14/01/2013 2 comentários

Resolvi montar um ambiente de laboratório no Windows Azure equivalente ao que costumo utilizar para fazer testes e demonstrações do Visual Studio ALM, aproveitando para conhecer os eventuais problemas inerentes a utilização de um ambiente de trabalho diferente.

Vale lembrar que o Visual Studio ALM possui uma oferta online já em produção atualmente, o Team Foundation Service, mas que ainda apresenta fortes restrições de uso, como o baixo número de usuários possíveis por projeto, e a ausência de alguns recursos, como a integração com o SharePoint, o que deixa a oferta semelhante à versão Express do Team Foundation Server. Em virtude disso, ainda há bastante espaço para utilização da versão tradicional do produto.

Neste laboratório, o Windows Azure foi utilizado como IaaS, ou Infrastructure as a Service, com uso dos serviços de Virtual Machines, Virtual Networks e Storage. É importante ressaltar que a Microsoft ainda classifica estes recursos como versões em Preview, mas que já estão disponíveis desta forma há um certo tempo.

Eu utilizei as últimas versões dos produtos e suas atualizações. Além dos produtos oferecidos pelo Azure, foram utilizados o SQL Server 2012 Service Pack 1, SharePoint e Project Server 2013, e o Visual Studio 2012 Team Foundation Server Update 1. O sistema operacional selecionado, oferecido como uma imagem pelo Windows Azure, foi o Windows Server 2012 Datacenter Edition, imagem de dezembro de 2012.

Para montar um laboratório complexo o suficiente para tornar a avaliação do Windows Azure interessante, eu optei por um cenário distribuído, com a utilização das quatro máquinas virtuais listadas aqui:

Máquina Virtual Softwares Tamanho da máquina virtual
AD Windows Server 2012Active Directory Domain Services Small2 discos
SQL Windows Server 2012SQL Server 2012 Service Pack 1 Medium2 discos
SPS Windows Server 2012SharePoint Server 2013

Project Server 2013

Large2 discos
TFS Windows Server 2012Visual Studio 2012 Team Foundation Server Update 1 Small1 disco

 

Trabalhar com o Windows Azure é uma experiência bastante interessante, visto que o seu Portal oferece os recursos administrativos necessários para a operação do ambiente, e ainda permite a utilização de scripts PowerShell ou outras linguagens de programação para automação de tarefas administrativas.

Um dos meus objetivos neste estudo era o de evitar ao máximo o uso de scripts, me restringindo aos recursos oferecidos pelo Portal de Gerenciamento, visto que acredito ser esta a maneira pela qual a grande maioria das pessoas começará a utilizar o produto. Achei interessante notar que a maior parte das informações que encontrei para a preparação do ambiente apresentavam logo de cara scripts PowerShell, indo no caminho oposto, mas posso adiantar que foi possível cumprir o meu objetivo.

A preparação do ambiente com as quatro máquinas virtuais exigiu a utilização do recurso de Virtual Network, que contempla a criação de uma subrede IPv4, um serviço de fornecimento de endereços IPs dinâmicos, como um DHCP, com reserva de endereços para cada máquina, e roteamento de rede. O principal objetivo deste recurso é permitir a comunicação entres as máquinas virtuais, como se elas estivessem em rede local, além de permitir o estabelecimento de VPNs site-to-site, para comunicação com a rede de uma empresa.

Outro item importante é a criação do Storage onde os arquivos VHD, que correspondem aos discos das máquinas virtuais, ficam armazenados.

 

Preparação do ambiente

Vou apresentar a seguinte a sequência de montagem do ambiente. A sequência considera o uso de uma conta do Windows Azure, disponível em www.windowsazure.com, inclusive com a oferta de avaliação gratuita.

Os passos de configuração do Windows Azure assumem o uso do Portal de Gerenciamento, acessível no endereço https://manage.windowsazure.com/.

 

Virtual Network

O Windows Azure não permite que o as máquinas virtuais trabalhem com endereços de IP fixos, mas para a criação de um servidor que forneça o serviço de domínio, é necessário que ele ofereça também o serviço de DNS, o que é bastante contraditório. E como fazer para os servidores consigam se comunicar?

O Virtual Network é o recurso que possibilita resolver estes e outros problemas, e onde a diferença de se trabalhar com o Windows Azure se torna mais evidente.

Sempre que se deseja estabelecer a comunicação entre máquinas virtuais no Windows Azure, é necessário configurar o recurso.

Com o Virtual Network, estabelece-se um espaço de endereçamento reservado, com uso das faixas de endereço tradicionalmente reservadas para redes internas, ou seja, as faixas 10.x.x.x, 172.16.x.x e 192.168.x.x. Estas faixas de endereçamento podem ser divididas em subredes.

Toda máquina virtual no Windows Azure pode ser associada a uma subrede, e a partir dessa associação um endereço IP é atribuído, sendo alterado apenas se as configurações mudarem. Sempre que uma máquina virtual associada a um Virtual Network é ligada, ela recebe o mesmo endereço IP, e este endereço pode ser consultado na página de configuração da máquina virtual.

Como a atribuição de endereços é automática, realizada pelo Virtual Network, o endereço do servidor DNS também precisa ser atribuído, ou a máquina virtual não conseguirá resolver endereços por nome.

Para isso o Virtual Network permite o cadastro de servidores DNS, que são atribuídos às máquinas virtuais junto com os endereços IP.

Como o Virtual Network fornece sempre o mesmo endereço IP e também entrega o endereço do servidor DNS, os problemas de endereçamento estão quase todos resolvidos, exceto por um problema para o cenário deste laboratório.

As configurações do Virtual Network não podem ser alteradas depois de uma máquina virtual estar associada, então, se o servidor DNS será uma das máquinas virtuais associadas à Virtual Network, como saber qual será o endereço dele?

Eu percebi que os endereços atribuídos às máquinas virtuais são sempre sequenciais, e sempre começam recebendo o quarto endereço útil da subrede.

Por exemplo, eu configurei o meu Virtual Network com a faixa de endereços de 192.168.0.0 a 192.168.255.255, e uma subrede com endereços de 192.168.0.0 a 192.168.0.255.

Com estas configurações, a primeira máquina virtual associada ao Virtual Network sempre recebeu o endereço 192.168.0.4.

A partir desta percepção, eu configurei o meu Virtual Network com o endereço de DNS 192.168.0.4, e fiz com que a primeira máquina virtual fosse o meu servidor AD e DNS, resolvendo a questão.

Um outro aspecto importante do Virtual Network é o fato dele delimitar a região geográfica onde os servidores estarão. Todas as máquinas virtuais associadas ao Virtual Network precisam estar fisicamente na mesma região.

 

Configuração do Virtual Network

Os passos para criar o Virtual Network são:

1. No portal de gerenciamento, navegar por New -> Networks -> Virtual Network -> Custom Create

1.1. Virtual Network Details

1.1.1. Name: Fornecer o nome do Virtual Network

1.1.2. Affinity Group: Selecione um existente ou crie um novo

1.1.3. Region: Caso se esteja criando um novo Affinity Group, deve-se escolher a região. Percebi que algumas regiões não oferecem todas as imagens de máquinas virtuais, principalmente as mais recentes. As regiões East US e West US, por exemplo, fornecem todas, enquanto South Central US e North Central US não

1.1.4. Affinity Group Name: Forneça um nome para o Affinity Group e a Region, vale a pena montar um nome que indique a região, além do seu objetivo

 

1.2. Address Space and Subnets

1.2.1. Address Space: Escolha a faixa de endereços da sua rede virtual (10.x.x.x, 172.16.x.x ou 192.168.x.x)

1.2.2. Subnet: As subredes definem as faixas efetivamente utilizadas. É possível configurar mais de um Address Space e várias subnets para cada Virtual Network

 

2. Registrar DNS Server

2.1. Navegar por New -> Networks -> Virtual Network -> Register DNS Server

2.1.1. Name: Pode ser o nome da máquina virtual que hospedará o Active Directory, a ser criado na sequência

2.1.2. DNS Server IP Address: Escolha o quarto endereço útil da subrede, por exemplo 192.168.0.4, caso a subrede comece com o endereço 192.168.0.0

 

3. Associar o DNS Server registrado ao Virtual Network

3.1. No portal de gerenciamento, clique em Networks na lateral esquerda, e em seguida procure na lista o Virtual Network que acabou de ser criado. Clique na seta para a direita ao lado do nome

3.2. Você estará no Dashboard do Virtual Network, como pode ser visto no alto da página, logo abaixo do nome. Clique em Configure

3.2.1. Procure por DNS Servers e faça a atribuição do DNS Server cadastrado no passo anterior

 

A referência utilizada para esta configuração foi esta:

http://www.windowsazure.com/en-us/manage/services/networking/create-a-virtual-network/

 

Storage

O recurso de Storage do Windows Azure é equivalente a um Storage que pode estar conectado à sua rede local, mas que pode ser encarado como um conjunto infinito de discos, pois não há um limite pré-definido de espaço, e também pode ser replicado geograficamente, entre as regiões.

O Storage precisa receber um endereço, no formato de uma URL, para que possa ser acessado. Para ser utilizado junto com as máquinas virtuais, precisa estar no mesmo Affinity Group criado para o Virtual Network, o que garante que ele estará na mesma região.

 

Configuração do Storage

Os passos para criar o Storage são:

1. Navegar por New -> Data Services -> Storage -> Quick Create

1.1. URL: Defina o endereço público, com o formato *.core.windows.net, pelo qual o seu Storage poderá ser acessado

1.2. Region / Affinity Group: Selecione o Affinity Group criado com o Virtual Network

1.3. Enable Geo-Replication: O site informa que caso se selecione esta opção depois, poderá haver um impacto na precificação

 

Referência:

http://www.windowsazure.com/en-us/manage/services/networking/add-a-vm-to-a-virtual-network/

 

A primeira máquina virtual

A primeira máquina virtual para este ambiente foi o servidor de Active Directory Domain Services e DNS, fechando o ponto iniciado na configuração do servidor DNS para o Virtual Network.

Importante ressaltar que para este laboratório foi criado uma nova floresta e domínio, mas poderia ser estabelecida uma VPN com a rede da empresa, e incluir este servidor em um domínio ou floresta existentes.

Vale uma atenção em relação aos discos das máquinas virtuais. Os discos são classificados em OS disk e Data disk, sendo que o OS disk é configurado inicialmente, recebendo a imagem do sistema operacional selecionado. O OS disk vem configurado com um cache do tipo Read Write, o que não é recomendado para os discos de dados, pelas referências que encontrei, pela remota possibilidade de perda de dados.

 

Configuração da primeira máquina virtual

Para configurar a máquina virtual:

1. Navegar por New -> Compute -> Virtual Machine -> From Gallery

1.1. Escolha o sistema operacional. Eu usei a última versão disponível, no caso a Windows Server 2012, December 2012, que não estava disponível em algumas regiões

1.2. Virtual machine configuration

1.2.1. Virtual machine name: Escolha o nome que da máquina virtual

1.2.2. Password: Senha da conta administratora

1.2.3. Size: Eu usei o tamanho Small, para possibilitar o uso de um segundo disco, tive alguns problemas para fazer isso com a instância Extra Small mas não tenho certeza se foi circunstancial, apesar da documentação informar que ela suportaria

 

1.3. Virtual machine mode

1.3.1. A opção usada foi a Standalone virtual machine, a outra opção permite trabalhar com máquinas criadas para balanceamento de carga

1.3.2. DNS name: nome para acesso externo à máquina. Este nome será importante para a publicação dos serviços pela Internet

1.3.3. Storage account: criado no tópico Storage

1.3.4. Region / Affinity Group / Virtual Network: Selecione o Virtual Network criado anteriormente, por ser a opção mais específica

1.3.5. Virtual network subnet: selecione a subrede criada com o Virtual Network

 

1.4. Virtual machine options

1.4.1. Availability set: None -> Esta opção permite a criação de camadas de servidores espelhados, como em cenários de load balancing. Mais informações sobre isto podem ser obtidas aqui:

https://www.windowsazure.com/en-us/manage/windows/common-tasks/manage-vm-availability/

 

1.5. Neste ponto a máquina virtual já deverá estar em processo de criação, o que deve levar cerca de 10 minutos

 

2. Adicionar disco de dados

2.1. Navegue até a página de configuração da máquina virtual criada clicando em Virtual Machines do lado esquerdo do portal de gerenciamento

2.2. Selecione a sua máquina virtual recém criada

2.3. Na barra de ferramentas inferior selecione Attach -> Attach empty disk (esta opção não estará habilitada enquanto a máquina virtual não estiver pronta)

2.3.1. Confirme se a máquina virtual escolhida está correta

2.3.2. Os parâmetros Storage Location e File Name já vêm preenchidos, só o File Name pode ser alterado

2.3.3. Defina um tamanho para o disco. Não escolha um tamanho muito pequeno, pois não há opção de modificação

2.3.4. Host Cache Preference: None, Read Only e Read Write -> A opção Read Write pode ocasionar perda de dados em caso de problemas

 

2.4. Este processo deve levar mais alguns minutos

 

3. Aproveite que você está na página de configuração da máquina virtual para confirmar se o endereço IP atribuído a ela corresponde ao endereço registrado como DNS Server, durante a configuração do Virtual Network. Esta informação deve aparecer como o campo INTERNAL IP ADDRESS, nas informações agrupadas como “quick glance”, do lado direito desta página

4. Quando a máquina virtual estiver pronta, será possível conectar-se a ela usando a opção Connect, também disponível na barra de ferramentas inferior. Esta conexão utilizará o Remote Desktop Connection, e abrirá um terminal para a sua nova máquina virtual

5. Lembre-se de configurar o disco de dados adicionado no passo 2, a primeira letra disponível para configurar a unidade costuma ser a F. Recomendo utilizar esta unidade para armazenar os dados do Active Directory, mas não é necessário utiliza-la para os executáveis

6. Os passos de configuração do Active Directory Domain Services e do DNS são bastante comuns, e podem ser facilmente encontrados em outras referências, e por este motivo não serão detalhados aqui

7. Estes dois artigos apresentam o processo de configuração de máquinas virtuais no Windows Azure com o Active Directory, de maneira semelhante ao apresentado aqui, mas com o uso de scritps PowerShell:
http://www.windowsazure.com/en-us/manage/services/networking/active-directory-forest/

http://www.windowsazure.com/en-us/develop/training-kit/hol-deployingactivedirectoryps/

Vale observar que as referências recomendam a configuração de um segundo disco de dados, para realização de backup. Não me importei em fazer este procedimento para a construção deste ambiente de laboratório.

 

Acrescentando as outras máquinas virtuais

Depois de configurada a primeira máquina virtual e configurado o Active Directory Domain Services e o DNS, basta criar as máquinas virtuais adicionais, seguindo os mesmos passos utilizados para criar a primeira.

Note que, como o Virtual Network já foi configurado com o endereçamento da subrede e do servidor DNS, basta associar as novas máquinas virtuais, e todos os detalhes de configuração de rede já estarão prontos.

Da mesma forma que para a primeira máquina virtual, não entrarei nos detalhes de configuração dos produtos aqui, visto que são os mesmos procedimentos necessários para a instalação em outros ambientes, mas vou mencionar os detalhes específicos do ambiente no Windows Azure, bem como citar alguns detalhes referentes a ambientes distribuídos como este.

 

Configuração da segunda máquina virtual, SQL

Para configurar a máquina virtual:

1. Repita o primeiro passo para criação da máquina virtual, mas para o servidor SQL utilize pelo menos a configuração Medium

2. Adicionar pelo menos um disco de dados, para armazenar os bancos de dados

3. Conecte-se à máquina virtual, configure o disco adicional

4. Cadastre a máquina no domínio

5. Utilize uma conta do domínio, pode ser a Administrator mesmo, para realizar a instalação do SQL Server. Utilize a documentação de instalação do Visual Studio 2012 Team Foundation Server para consultar os detalhes de instalação

6. Habilite o protocolo TCP/IP no SQL Server

7. Configure o Windows Firewall para liberar o acesso às portas TCP 80, 1433 e 2383, para liberar o acesso ao Reporting Services, Database Services e Analysis Services, considerando as portas padrões. As portas referentes ao Database Services e Analysis Services não serão publicadas na Internet, então não há necessidade de alterá-las

 

Configuração da terceira máquina virtual, SharePoint

Para configurar a máquina virtual:

1. Repita o primeiro passo para criação da máquina virtual, para o servidor SharePoint é possível começar com a configuração Medium, mas eu só conseguir ativar todos os serviços, incluindo o Project Server, após a mudança para a configuração Large

2. Adicione pelo menos um disco de dados, para armazenar os arquivos temporários e logs do SharePoint

3. Conecte-se à máquina virtual, configure o disco adicional

4. Cadastre a máquina no domínio

5. Utilize uma conta do domínio, pode ser a Administrator mesmo, para realizar a instalação e configuração do SharePoint Server. Utilize a documentação de instalação do Visual Studio 2012 Team Foundation Server para consultar os detalhes de instalação

6. A Farm SharePoint precisará ser configurada, assim como os serviços, e um portal deverá ser criado

7. Instale o Visual Studio 2012 Team Foundation Server e configure o portal SharePoint para que os sites do TFS e os Dashboards possam ser criados

8. Não mencionei o Project Server, mas ele pode ser instalado nesta máquina virtual, assim como o recurso de integração dele com o TFS

 

Configuração da quarta máquina virtual, TFS

Para configurar a máquina virtual:

1. Repita o primeiro passo para criação da máquina virtual, para o servidor TFS é viável trabalhar com a configuração Small. O setup do produto apresentará um aviso, mas não encontrei nenhum tipo de problema

2. Não há necessidade de acrescentar um disco dados para esta máquina

3. Conecte-se à máquina virtual e cadastre-a no domínio

4. Instale os componentes de acesso a dados do SQL Server, que pode ser feito usando-se o disco de instalação do SQL Server e restringindo a instalação ao item “Client Tools Connectivity” em “Features Selection -> Shared Features” durante o setup

5. Utilize uma conta do domínio, pode ser a Administrator mesmo, para realizar a instalação e configuração do Visual Studio 2012 Team Foundation Server. Utilize a documentação do produto para consultar os detalhes de instalação

 

Validação do ambiente

Depois de realizada a configuração inicial, confirme se o SharePoint e o TFS estão funcionando como esperado, acessando os recursos pelo Internet Explorer das próprias máquinas virtuais.

 

Publicação do serviços

Para que o ambiente seja acessível externamente é necessário realizar a publicação dos serviços, o que pode ser feito pelo Portal de Gerenciamento do Windows Azure.

 

Publicação do TFS

Por padrão a porta a ser publicada para o TFS é a 8080:

1. Navegue até a página de configuração da máquina virtual TFS, clicando em Virtual Machines do lado esquerdo do Portal de Gerenciamento;

2. Clique na seta para a direita ao lado do nome da máquina virtual;

3. Na tela do Dashboard, clique em Endpoints na parte superior da página. Observe que o RemoteDesktop deverá aparecer na lista de publicação;

4. Clique em Add Endpoint, na barra de ferramentas inferior. Selecione um nome de identificação para a porta, informe o número da porta pública e privada (8080), que pode receber um valor diferente externamente, e use o protocolo TCP.

 

Publicação do SharePoint

Para o SharePoint basta realizar a publicação da porta 80:

1. Se você fizer esta configuração na sequência do item anterior, bastará clicar no nome na máquina virtual do SharePoint, que deve estar visível do lado esquerdo do Portal de Gerenciamento, e a página de Endpoints deste servidor será exibida;

2. Adicione o Endpoint para a porta 80 com protocolo TCP.

 

Publicação do SQL

Para a máquina virtual do SQL, basta realizar a publicação da porta 80 para disponibilizar o serviço de Reporting Services:

1. Se você fizer esta configuração na sequência do item anterior, bastará clicar no nome na máquina virtual do SQL, que deve estar visível do lado esquerdo do Portal de Gerenciamento, e a página de Endpoints deste servidor será exibida;

2. Adicione o Endpoint para a porta 80 com protocolo TCP.

 

Ajustes no SharePoint

O acesso externo ao servidor SharePoint será feito pelo endereço cadastrado como DNS name, informado durante o processo de criação da máquina virtual.

Para que o SharePoint aceite o acesso por este endereço, será necessário cadastrá-lo na lista Alternate Access Mappings, a partir do SharePoint Central Administration.

 

Ajustes no TFS

Para que o acesso funcione corretamente, é necessário ajustar os endereços do SharePoint e do Reporting Services para os endereços externos, no formato *.cloudapp.net, cadastrados como DNS name.

Estes ajustes podem ser feitos pelo Team Foundation Server Administration Console, nos seguintes pontos:

1. Application Tier

1.1. Change URLs

1.1.1. Altere o parâmetro Notification URL para o endereço externo do servidor TFS

Ao realizar esta configuração, encontrei um erro de validação do endereço, que foi resolvido criando-se a chave de registry BackConnectionHostNames, conforme a solução 1 apresentada neste artigo:

http://support.microsoft.com/kb/926642

 

2. Application Tier -> SharePoint Web Applications

2.1. Change

2.1.1. Altere o parâmetro Web Application URL para o endereço externo do servidor SharePoint

 

3. Application Tier -> Reporting

3.1. Edit -> Na aba Reports da janela Reporting

3.1.1. Altere os parâmetros Web Service e Report Manager para o endereço externo do servidor SQL

 

Utilização do serviços

Depois de todas estas configurações, você deverá ser capaz de acessar os serviços instalados a partir de uma estação qualquer, para isto tente acessar estes recursos:

  1. http://<servidorTFS>.cloudapp.net:8080/tfs
  2. http://<servidorSharePoint>.cloudapp.net/
  3. http://<servidorSQL>.cloudapp.net/Reports/

Você deverá ser capaz também de cadastrar o servidor TFS no Visual Studio.

 

Conclusões

O ambiente montado aqui foi o do Visual Studio ALM, mas boa parte das informações apresentadas permitem a criação de qualquer outra configuração usando o Windwos Azure como IaaS. E como pode-se observar, as diferenças não são tantas assim.

Vale ressaltar que nesta modalidade de serviços, o Windows Azure irá fornecer os recursos físicos, como servidores, infraestrutura de rede e eletricidade, além de vários mecanismos de redundância e tolerância a falhas. Porém, nenhum serviço será oferecido para manutenção do ambiente, como realização de backups dos bancos de dados, monitoração dos serviços, ou aplicação de patches.

Todas estas tarefas de operação e manutenção são de responsabilidade do cliente, contratante do serviço.

Faltam poucos detalhes para transformar esta configuração em um ambiente de produção. Mas acredito que as máquinas virtuais utilizadas devam comportar de 50 a 100 usuários simultâneos, pela experiência acumulada.

Para maiores necessidades, seria possível incluir outros servidores para balanceamento de carga para o TFS e para o SharePoint, além de aumentar a capacidade do servidor SQL ou dividir os seus serviços e bancos de dados em mais de uma máquina virtual.

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 784 outros seguidores