Checklist de Boas Práticas para implementação de Soluções 2007 

Tags: Administração, SharePoint

 
Boas SPUGPTianos,

à uns tempos estive a fazer uma auditoria a uma pequena implementação de Sharepoint 2007 (WCM), e nesse âmbito agreguei de diversas fontes um conjunto de boas práticas relativas às diversas áreas: desenvolvimento, Instalação (Deployment), Configurações, Topologia, Arquitectura Lógica, Segurança, Optimizações e Governance.
 
Naturalmente esta lista não contém todas as boas práticas, até porque estas dependem de implementação para implementação, mas pareceu-me um bom guia e achei que fazia todo sentido partilhar com todos, espero que seja útil.
 
 

Boas Práticas

1.      Desenvolvimento

1.1        As webpartes devem disponibilizar parametros de configuração.

1.2        As customizações devem ser acompanhadas por uma lista de todas as suas dependências (contas/passwords, Web services, bases de dados, solutions ou features, patches, ferramentas ou libraries, etc.)

1.3        As assemblies devem estar assinadas (strong name).

1.4        A configuração das customizações devem estar num ficheiro de configuração próprio e não no Web.config. No entanto uma opção pode ser usar uma configuration section própria.

1.5        Usar apenas uma versão da Framework .NET.

1.6        Evitar usar strings hardcoded, usar ficheiros de resources/languages.

1.7        Quando se usar objectos SPWeb/ SPSite, usar using ou usar o método Dispose. Usar SPDisposeCheck.

1.8        Em termos de logging usar como destino os logs do sharepoint (SharePoint Unified Logging Service logs) quer directamente via Portal Log class, quer via um custom trace listener.

1.9        Usar uma aproximação estruturada de gestão de erros e excepções. Uma opção é usar uma framework de logging  como o elmah.

1.10     Aquando de um erro, a aplicação falha graciosamente - uma mensagem genérica é retornada para o utilizador – a mensagem segue para o log, ou então ter esse controlo via configuração tipo custom erros RemoteOnly|On|Off .

1.11     Validar todos os inputs dos utilizadores quer para evitar a falha, quer para evitar tampering ou injection.

1.12     Reduzir as chamadas à BD – não mais de 2 a 3 chamadas por página.

1.13     Não se usar código inline em aspx/ascx

 

2.      Instalação

2.1        Utilização de Features e Solution Packages para a instalação de customizações

2.2        As customizações devem ser acompanhadas por instruções de instalação/desinstalação.

2.3        A WSP deve incluir a policy CAS se esta for necessária assim como a inclusão da assembly na Safe Control list.

2.4        O logging específico do processo de instalação/desinstalação deve ser redirecionado para o event log para fácil troubleshooting.

 

3.      Configurações

3.1        Recycling Application Pool Settings

3.1.1  Worker process recycle a uma hora específica  - Uma vez por noite.

3.1.2  Max Physical e Virtual memory - 1000MB a  1700 MB

3.2        Performance Application Pool Settings

3.2.1  Idle timeout – off

3.2.2  Request queue – unchecked

3.2.3  CPU limits - unchecked.

3.3        Health Application Pool Settings

3.3.1   Pinging – activo, 600 a 900 segundos

3.3.2   Startup/Shutdown - 300-900

3.4        Identity Application Pool Settings – Uma única conta por cada AppPool.

Configuração de anti-virus se não houver controlo de todos utilizadores que podem inserir documentos.

 

 

4.      Topologia

4.1   Se possível deverá haver Web Front-Ends (WFE) dedicados.

4.2   Servidores que são application server roles ou database server não devem ter acesso directos de utilizadores.

4.3   O site da Central Administration, se possível, não deverá estar nos WFE.

4.4   Os servidores da Farm devem estar no mesmo data center e na mesma vLAN.

4.5   Se for necessário um ambiente mais seguro a farm deverá estar separada em 3 camadas (WFEs, servidores aplicacionais e base de dados) através de routers ou firewalls cada um na sua vLAN.

4.6   Pelo menos uma zona em cada Web application deve usar autenticação  NTLM para poder ser usada pela conta de pesquisa para o crawl.

4.7   Os relógios de todos os servidores da farm devem estar sincronizados.

4.8   Utilização de alguma das topologias aconselhadas pela Microsoft.

4.9   Se possível proteger os servidores aplicacionais/base de dados com uma firewall entre estes e os WFE.

 

5.       Arquitectura Lógica

5.1        Nomes dos sites estarem replicados no nome do site IIS, AppPool e Content Database

5.2        Acesso seguro à Central Administration via SSL

5.3        Se se está a usar Content Deployment, ter a opção “Deploy user names” desactivada para proteger a identidade dos autores

5.4        Se não se está a usar Content Deployment, este deve estar desactivado (Reject incoming content deployment jobs)

5.5        Apenas ter o acesso anónimo activado nas zonas que têm site collections com esse requisito

5.6        Se se está a usar content Deployment, separar o ambiente de staging do ambiente de authoring.

 

 

6.      Segurança

6.1   Bloquear o acesso externo ao porto usado pelo site da Central Administration

6.2   Modo Lockdown activado.

6.3   Usar a autenticação Anonymous no IIS.

6.4   SMTP e Incoming Mail desactivado nos WFEs

6.5   Contas de serviço a usar – uma para o Crawl (não local admin), uma para a Central Admin service/SSP service/SSP Admin (app pool)/Timer e uma para cada web application pool

6.6    Se se tiver um WFE dedicado para indexing, configurar o IIS para restringir o acesso ao SiteData.asmx para apenas o Index server.

 

7.      Optimizações

7.1        Output caching

7.2        HTTP/IIS compression

7.3        Object caching

7.4        Configurações de Rede:

7.4.1     Usar equipamentos de Rede (placas de rede, switches, routers) que suportem 1 gigabit – forçar a placa de rede a 1 Gb

7.4.2     Latencia entre os  servidores Web e o servidor de BD deve ser inferior a 1ms

7.5        Garantir que o CPU usado médio do servidor de Base de Dados não passe os 60% - se sim, usar chaching, mover o indexing/crawler para outro servidor

7.6        As recomendações a partir do teste de performance com a ferramenta YSlow

7.7        Atrasar o download do core.js para permitir um carregamente mais rápido da página

7.8        Imagens optimizadas para a web, testado com Smush.it

7.9        As imagens têm especificada a dimensão (W3C Recommendation: 13.7.1 Width and height)

7.10     Compressão das custom CSS - CSSTidy , YUI Compressor

7.11     Garantir que as listas respeitam as limitações da plataforma

 

8.      Funcional

8.1   Cross Browser

8.2   Acessível nível A (WCAG)

 

9.      Governance

9.1   Definir onde são guardadas as versões antigas das configurações, codigo, assemblies, etc.

9.2   Ter um processo definido para gestão de alterações (como é que estas são registadas, catalogadas e aprovadas/rejeitadas)

9.3   Utilização de um repositório central para versionamento do código.

9.4   Criar planos de testes.

9.5   Diponibilizar aos site owners uma forma conveniente de darem feedback dos resultados dos testes.

9.6   Definir mecanismos de recuperação de ficheiros (versionamento ou recycle bin)

9.7   Definir mecanismo para recuperação de sites ou site collections.

9.8   Definir mecanismo para recuperação de servidores.

9.9   Definir quotas por defeito para as Web aplications.

9.10     Existência de material de formação para gestores de conteúdo.

9.11     Existência de material de formação para administradores.

 
 
 
Cumprimentos,
 
Raul Queiroga
Agilior, Grupo Prológica
 
Posted em 15-Jul-10
1 Comentários  |  Trackback Url  |  Link para este post | Bookmark este post com:        
 

Links para este post

Comentários


Rui Sequeira comentou em Thursday, 15-Jul-2010
Muito obrigado, Raul. Sendo novo nesta área,concerteza que este guia me vai ajudar

Nome:
URL:
Email:
Comentário: