como escalar uma aplicação web - padrões comuns

1

considere iis e mssql por um lado e apache e mysql em outro. é a mesma tática ao dimensionar o iis e o apache?

eu tenho a coisa básica de dimensionamento - camadas web e db separadas e, em seguida, redundância do banco de dados etc ...

MAS como dimensionar um aplicativo em execução no iis?

por exemplo, costumava rodar em uma máquina, agora queremos em várias máquinas? mesma pergunta para algo hospedado no apache? permite ver o wordpress (exemplo comum) - como fazer com que os pedidos de um blog possam ser processados em mais de uma máquina (virtual) na nuvem?

espero que minha pergunta seja pelo menos um pouco clara, se não perguntar por favor.

Basicamente eu estou procurando um padrão ao dimensionar aplicativos da web. qualquer? quaisquer links para informações, talvez?

CLOUD BASEADO especialmente.

obrigado

    
por b0x0rz 03.06.2011 / 11:56

2 respostas

1

Geralmente você tem um web farm:

  • O navegador envia uma solicitação para um site
  • DNS do site resolve um balanceador de carga (LB)
  • LB encaminha a solicitação para um dos vários servidores da web

O LB também monitorará os servidores da Web para que um servidor com falha seja ignorado.

Existem alguns problemas sobre a sessão, etc., se não forem compartilhados em um banco de dados, mas geralmente isso funciona bem. Você separa seu site de uma única máquina e obtém a funcionalidade DR básica

    
por 03.06.2011 / 12:10
0

Bem, você provavelmente não estará implantando o Wordpress desta forma (embora o django e o web2py sejam possibilidades) ... mas aqui está um pensamento

O Google App Engine supostamente ajuda os desenvolvedores a implantar aplicativos escaláveis, e esperamos que parte da experiência do Google nessa área esteja consolidada na estrutura do GAE. Aqui estão as principais características que recolhi da minha breve experiência:

  • servlets Java independentes (ou python) que podem ser iniciados ou terminados em hosts individuais em uma coleção de hosts não especializados idênticos, sob demanda - em vez de aplicativos volumosos que exigem vários processos e ambientes preparados especiais
  • em um aplicativo ocupado que está ativo em vários servidores, o navegador da web pode não corresponder ao mesmo host a cada vez ... e o servlet precisa ser gravado para lidar com isso
  • para um aplicativo escalável, os desenvolvedores devem testar e garantir que a maioria das solicitações levará menos de um segundo para ser processada (o GAE permite 30 segundos, mas sinalizará solicitações com mais de um segundo e explicará que a meta de desempenho abaixo de segundos é tidos em conta ao decidir como seu aplicativo será tratado pelo GAE)
  • use RAM volátil (serviço memcache) para ajudar a evitar a procura de disco (serviço de armazenamento) sempre que possível para solicitações de dados populares [em uma abordagem tradicional evitaria a criação de bloqueios de leitura que vinculem gravadores ... contanto que alguns dados obsoletos sejam aceitável]

Devo observar também que só recentemente o GAE oferece suporte ao mySQL como parte da classe GAE Business ... o serviço DB original é um pouco diferente e mais como um grande array associativo.

    
por 03.06.2011 / 13:49