Implantação de muitos serviços da Web

2

Estou procurando conselhos / práticas recomendadas / + ve / -ve ou outras ideias sobre implantação e manutenção de muitos (50) Web Services e Web Service Applications no IIS em um cluster de 10 servidores de aplicativos para Service Orientated Software Cliente (WinApp).

Atualmente, temos uma solução que contém muitos projetos de serviços da Web. O software é desenvolvido separadamente e depois integrado quando pronto para lançamento. Isso envolve o gerente de integração (não familiarizado com o código), adicionando o projeto à solução principal e garantindo que tudo funcione, por exemplo, referências etc. não estão quebradas. Isso significa que acabamos com um site no IIS que serve muitos serviços da Web.

Uma ideia alternativa recente é ter vários sites - possivelmente agrupar serviços da Web relacionados em um site, mas manter outros serviços da Web em sites diferentes, embora isso aumente a manutenção (pois há mais sites) significa que partes do software podem ser atualizado separadamente e testado, pelo dev que escreveu o código.

Pode ser relevante: usamos o controle de código-fonte para o código, temos muitos usuários (cerca de 1 milhão de acessos por dia) e podemos tolerar 0 tempo de inatividade durante o horário de trabalho.

Atualmente, para atualizar um único serviço da Web, o servidor de aplicativos deve ser retirado do cluster, atualizado e incluído novamente no cluster.

Existe uma maneira mais eficiente / flexível, mas ainda assim sustentável de lidar com isso?

    
por Mr Shoubs 05.10.2010 / 13:38

1 resposta

2

Posso compartilhar algumas ideias do que estamos atualmente fazendo no novo datacenter do Stack Overflow que pode lhe dar algumas ideias. Existe um servidor de teste para criar primeiro como teste. O servidor de temporariedade é uma réplica de todos os servidores de produção. Quando um novo site é adicionado, após o teste eu vou sincronizar o applicationhost.config com um simples script powershell. Para atualizações adicionais em um site que já está implantado, usamos o controle de cruzeiro para .NET, que permite construções automatizadas nos servidores da web. Eu joguei com a configuração do IIS Shared, mas achei que era um pouco bugs.

Para automatizar a retirada de um servidor do cluster, você pode adicionar uma verificação de integridade ao seu balanceador de carga, que o removerá automaticamente.

Eu gosto da sua ideia de agrupar os sites do IIS pelas equipes de desenvolvedores ou desenvolvedores. Fazemos algo semelhante e permite que os desenvolvedores possuam seu próprio código. Como administrador, você ainda pode possuir os servidores, mas não atrapalhar os desenvolvedores.

Eu também acabei de ouvir uma palestra interessante sobre implantação contínua (empurrando para produção com frequência), que você pode ler um pouco sobre aqui . Você pode conseguir algumas idéias com isso.

Em última análise, você deve projetar o que funciona melhor para sua empresa e cultura.

    
por 05.10.2010 / 14:10