Entendendo os Ambientes Envolvidos em Projetos SharePoint

É muito comum existirem dúvidas sobre a estrutura de máquinas e ambientes necessárias para o desenvolvimento de projetos SharePoint. Principalmente como que os desenvolvedores devem trabalhar, se precisa instalar Visual Studio na máquina local ou não, se dá para utilizar WTS, entre outras dúvidas.

Neste post vou falar sobre o que eu acho que seria o ambiente ideal de desenvolvimento de projetos SharePoint, conforme o cenário, ele pode ser alterado sem problemas. O objetivo principal é mais uma orientação inicial do que um manual de como montar o ambiente.

Este post faz parte de uma série de posts sobre entendimento do SharePoint 2010, acesse o post principal para ver os outros assuntos: Entendendo o SharePoint 2010

No site da Microsof tem um link bem interessante Setting Up the Development Environment for SharePoint 2010 on Windows Vista, Windows 7, and Windows Server 2008 que trata sobre parte do conteúdo que vou falar aqui, recomendo dar uma olhada.

Para o desenvolvimento de projetos SharePoint visualizo 4 ambientes distintos: ambiente de desenvolvimento individual, ambiente de integração, ambiente de homologação e ambiente de produção. Conforme o tamanho do projeto ou outros requisitos, nem todos os ambiente são necessários. Projetos pequenos podem ser feito com menos servidores e projetos maiores podem necessitar de outros ambientes.

A arquitetura física dos servidores não é algo importante para este artigo, coloquei os servidores apenas para explicar os ambiente.

 

Ambiente de Desenvolvimento Individual

 

Este é o ambiente onde um desenvolvedor irá trabalhar, por isso ele vai precisar de pelo menos um SharePoint, Visual Studio, Office, SQL Server, etcs. A questão é onde colocar isso tudo.

Prefiro a utilização de máquinas virtuais, instalar o Windows Server 2008 R2 (ou esperar o Windows 8) para virtualizar todos os ambientes necessários. Digo isso porque se instalar o SharePoint no host do computador do desenvolvedor, conforme os projetos o ambiente poderá ser comprometido, ainda mais se forem projetos em versões direrentes do SharePoint como SharePoint 2007, WSS 3.0, SharePoint Foundation. Se a equipe trabalhar apenas com um projeto ou o cliente for interno e não consultoria onde existem vários projetos para vários clientes, considere instalar tudo no computador físico mesmo ao invés de virtualizar.

Independente da escolha de virtualizar ou não, é necessário ter o Visual Studio 2010 na mesma máquina do SharePoint, sem isso a experiência de desenvolvimento, leia aqui produditivade, será comprometida.

Cada máquina virtual poderá conter a farm completa do SharePoint com o SQL Server, SharePoint, Visual Studio. As ferramentas do Office e SharePoint Designer podem ficar na máquina do desenvolvedor sem problema, já que elas não são necessárias no ambiente e assim economizam espaço em disco e tempo de instalação.

O SQL Server pode ficar dentro da máquina virtual, ou se preferirem no computador do desenvolvedor ou até em um servidor de bando de dados de desenvolvimento. Eu prefiro que fique na máquina virtual do desenvolvedor, mesmo ocupando um pouco mais de recurso da máquina, assim ele pode ter versões diferentes, conforme o projeto. Não é requisito o banco estar na mesma versão do ambiente de produção, mas acredito que quanto mais próximo melhor.

Outra opção é utilizar o WTS (Windows Terminal Services), mas não gosto dela nem um pouco. Com 2 desenvolvedores na mesma máquina serão comuns os problemas de precisar reiniciar o IIS e afetar o debug ou outras atividades do outro desenvolvedor, imagina colocar 4, 6 ou 10 –pessoas desenvolvendo na mesma máquina. É IIS reset a toda hora.

O AD pode ser o AD da empresa, utilizando uma OU separada, ou se necessário, criar um AD específico para o projeto. Isso seria necessário onde integrações com o perfil de usuários mais customizadas e complexas fossem necessárias.

É neste ambiente que o desenvolvedor vai desenvolver e testar a sua unidade, seja teste manual ou teste automatizado. Mas é muito importante ele garantir que a unidade dele funcione antes de liberar.

A imagem 01 detalha o ambiente de desenvolvimento, onde existe o computador de cada desenvolvedor e esse virtualiza tudo que necessário.

Imagem 01: Ambiente de desenvolvimento individual

 

 

Ambiente de Integração

 

Como cada desenvolvedor trabalha na sua máquina, é importante ter um ambiente para que o trabalho de todos seja testado em conjunto. Cada unidade foi festada individualmente, agora é hora de colocar tudo junto e testar para ver se continuam funcionando. Não é difícil aparecerem diversos erros devido a alterações de configurações do ambiente, campos, tipos de conteúdo, ou outras alterações feitas em uma unidade e que uma outra unidade esperava esses valores de forma diferente. Por isso este ambiente é tão importante.

A presença do Visual Studio nesse ambiente pode ser necessária para depurar os erros ou garantiar algum comportamento.

A implantação das unidades dos desenvolvedores poder ser feita utilizando integração contínua, ou seja, cada vez que um desenvolvedor faz um check in de fonte (liberou a sua unidade) o TFS (Team Foundation Server – ferramenta da Microsoft para gerenciamento de fontes e ciclo de vida de aplicativos) baixa e compila todos os fontes no servidor de integração e executa os testes automaticamente. Qualquer erro que acontecer os desenvolvedores serã avisados e corrigem o erro o mais rápido possível, geralmente quem fez o check in que gerou o erro. Esta automatização é opcional, a outra forma é fazer o deploy manual toda vez que a unidade estiver pronta, mas o tempo para executar o mesmo procedimento será muito maior.

A imagem 02 mostra uma ideia do ambiente de integração, lembrando que o número de sevidores e a arquitetura deles pode varia conforme as necessidades do projeto.

Imagem 02: Ambiente de integração

 

 

Ambiente de Homologação

 

O ambiente de homologação é o mais comum existir em projetos de software, geralmente é onde o cliente faz o aceite de tudo o que foi criado. Neste ambiente não existe nenhuma ferramante de desenvolvimento e ele precisa ser o mais similar possível ao ambiente de produção, para evitar problemas na hora de implatar. Se o ambiente de homologação for muito diferente do de produção, erros arquiteturais de servidores e serviços não serão pegos, além de outros erros que podem acontecer. Por isso reforço, quanto mais similar ao ambiente de produção melhor.

Imagem 03: Ambiente de homologação

 

 

Ambiente de Produção

 

Este é, sem questão alguma, o ambiente mais importante de todos. Aqui os serviços não podem parar e o site tem que estar disponível para o usuário sempre. Ferramentas de desenvolvimento não são bem vindas aqui, apenas em exceções muito urgente e que não podem ser resolvidas sem a instalação das ferramentas.

Sempre que for instalar alguma unidade no ambiente, lembre de avisar os usuários de possíveis paradas no serviço e dê preferência em fazer fora do horário.

Imagem 04: Ambiente de produção

Anúncios

8 Respostas to “Entendendo os Ambientes Envolvidos em Projetos SharePoint”

  1. Entendendo o SharePoint 2010 « Fabian André Gehrke Says:

    […] Entendendo os Ambientes Envolvidos em Projetos SharePoint […]

  2. Leandro Says:

    Fabian este seu blog é MUITO BOM.
    Vou ler muito ele.

    Este tópico é muito bom.
    Abraços

  3. Hugo Feltrin da Silva Says:

    Parabéns pelo blog, muito rico em Sharepoint, gostei mesmo!

  4. Entendendo o SharePoint 2010 - Fabian André Gehrke - Site Home - MSDN Blogs Says:

    […] Entendendo os Ambientes Envolvidos em Projetos SharePoint […]

  5. Bruno Contarini Says:

    Seria bacana fazer este mesmo post para o SharePoint 2013.


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: