Pergunta sobre prática recomendada: pools de aplicativos no IIS 7.5

2

Eu tenho vários aplicativos da Web asp.net alguns estão executando asp.net 1.1 alguns correm em 2.0 e alguns em 3.5 no passado isso tudo rodou no windows 2003 com iis6 e eu fiz para cada site um pool de aplicativos. Depois de um tempo eu li em algum lugar on-line que era melhor usar um pool de aplicativos por versão da estrutura .net para que todos os aplicativos 2.0 executassem em um pool de aplicativos e todos os 3.5 fossem executados por conta própria e assim por diante.

Agora estou migrando para o windows 2008 r2 com iis7.5 e não há 1.1 ou 3.5, portanto, os pools de aplicativos têm apenas a opção 2.0. seria o melhor para ainda separar as aplicações web por versão de framework? ou não é que cada pool de aplicativos tem sua própria instância da estrutura?

    
por JP Hellemons 23.07.2010 / 09:29

1 resposta

1

Na realidade, o .net 2.0 e o .net 3.5, na verdade, executavam e usavam a mesma versão do ASP.NET (e o CLR), portanto, sempre que você quiser executar o .net 3.0 ou 3.5, selecione o 2.0 versão.

Agora, em termos de isolamento de apppool, a primeira coisa é que você precisará ter apppools separados para cada versão do CLR / asp.net, isso significa que 4.0 e 2.0 devem ser separados, mas 2.0, 3.0 e 3.5 podem viva tudo feliz dentro do mesmo AppPool.

Em termos de melhores práticas, isso realmente depende da carga e dos tipos de aplicativos que você hospeda e de muitos outros critérios, mas eu realmente usaria o AppPool Isolation, especialmente para:

  1. Tente manter o isolamento entre os aplicativos de maneira que você possa
     a) meça e monitore eles de forma independente, de modo que você possa ver facilmente a CPU, a Memória e outros recursos que cada um deles está consumindo.
    b) ser capaz de descarregar (reciclar) um aplicativo / site que esteja se comportando mal.
    c) isolar os aplicativos que têm diferentes níveis de expectativa de serviço , por exemplo, você pode saber que determinado aplicativo é crítico versus não muito. Lembre-se de que um único aplicativo que possui um bug pode derrubar o processo de trabalho se estiver executando em Confiança total, afetando todos os outros que estiverem sendo executados no mesmo pool de aplicativos. d) isolar os aplicativos que têm requisitos diferentes de segurança , por exemplo, você pode precisar executar alguns deles com certos privilégios (como acessar o SQL Server usando Kerberos ou gravar arquivos em disco ou outras coisas que você não desejará que outros aplicativos acessem. Dessa forma, você pode executar cada AppPool com credenciais diferentes, fornecendo um nível de isolamento e proteção para o sistema operacional.

Um motivo pelo qual você pode decidir hospedar vários aplicativos no mesmo pool de aplicativos é se todos eles compartilharem partes significativas de código, por exemplo, se você estivesse hospedando um aplicativo CMS grande e teria 20 instâncias diferentes em execução, usando o mesmo processar o sistema operacional pode fazer um trabalho muito melhor em compartilhar memória e outros recursos que os tornarão um pouco mais eficientes.

No entanto, acho que, a menos que você hospede uma grande quantidade de sites (quero dizer > = 500), recomendo isolar cada site em seu próprio pool de aplicativos, especialmente se eles não estiverem sendo executados no Medium Trust ou em outros frameworks como PHP, ASP, ISAPI, etc, já que eles fornecem muita energia para potencialmente fazer coisas que não deveriam ser permitidas (como ler a configuração de outros sites ou a memória).

    
por 24.07.2010 / 06:18