Planejamento do servidor da Web

1

Estou pensando em um possível servidor da Web configurado para nosso projeto da Web em um datacenter. Teremos no topo 1 milhão de visitantes únicos por dia.

Nós faremos trabalhos leves como páginas de renderização, nossa tarefa "mais difícil" seria gerar um relatório em PDF de página única para os usuários quando eles solicitarem e cobrarem dinheiro de seus cartões de crédito quando fizerem compras.

Qual seria uma maneira mais inteligente e estável de fazer isso:

  • Um único servidor que possui um servidor web (apache, php etc) e banco de dados (mssql)

  • Dois servidores, um possui servidor web (apache, php etc) e outro servidor para banco de dados (mssql).

Além disso, você pode recomendar sua própria ideia de configuração ideal:)

Uma pergunta bônus: Seria mais inteligente comprar nossos próprios servidores e comprar co-location ou comprar diretamente servidores dedicados de datacenters.

Obrigado

    
por Hellnar 30.01.2010 / 11:04

2 respostas

2

Eu não sei como CPU é intensivo sua lógica de negócios, quais são suas esperanças / planos para o crescimento. mas eu começaria com a escalabilidade em mente, mesmo que agora seja um pouco exagerado.

você pode executar todas as máquinas em um ou dois servidores robustos como máquinas virtuais e depois adicionar mais hardware - isso obviamente será menos eficiente, mas facilitará o crescimento no futuro.

minha opinião seria:

  • par de proxy reverso com mecanismo de failover para que um deles seja ativo é passivo. você pode começar com apache2 ou nginx , depois mova para a solução de hardware. o failover entre servidores pode ser feito com pulsação .
  • mecanismo de balanceamento de carga em um proxy que distribui seu tráfego entre os servidores de aplicativos reais e manipula falhas de qualquer
  • dois servidores de aplicativos no início
  • ou sessões fixas [para que o cliente conecte-se com o appserv #n obtenha todas as consultas do servidor] ou o servidor de sessão separado [como tudo o que é altamente disponibilizado]
  • é possível bancos de dados mysql particionados [novamente - muito dependente de suas necessidades e conjunto de dados, se você não conseguir imaginar ter mais do que 5 a 10 GB de dados - talvez não haja necessidade disso]. cada instância protegida com replicação drbd ou replicação mestre-escravo ou mestre-mestre.

Se você optar pela abordagem de virtualização, você pode começar com a máquina alugada e descobrir mais tarde o que fazer ... vms são animais bastante portáteis.

tudo isso pode ser um exagero, mas acho que pelo menos o proxy reverso na frente + a virtualização vale a pena ser implementada, enquanto o particionamento é bom de se pensar.

    
por 30.01.2010 / 11:17
1

Eu votaria em dois servidores separados. Eu recomendo ler as respostas para este post, que fala sobre se é melhor ter duas máquinas ou uma: Perguntas sobre um único ponto de falha para pequenas operações

Existem muitos bons argumentos para explicar por que é melhor separar nossos aplicativos em vários servidores.

    
por 30.01.2010 / 11:08

Tags