a architecture Serviews certa paira uma grande aplicação do facebook?

Somos um grupo de 3 alunos, criamos um aplicativo do facebook com mais de 753.320 users ativos no momento, o aplicativo hospedado no server LAMP 1 e 1:

- AMD Opteron 1352 4 x 2,1 GHz - 4 GB RAM. - 2 x 750 Go (RAID 1 Hairdwaire). - Connection : 100 Mbps. 

Esta aplicação funciona muito bem, sem qualquer problema.

Estamos prepairando uma nova aplicação e esperamos milhões de users ativos após alguns meses.

Informações da aplicação:

  • Criado com PHP / MySQL.
  • Cada user pode executair um mínimo de 25 consultas por uso.
  • Sirva muitos files statics (imagens, files flash, css, js).
  • Esta aplicação contém 8 seções, por exemplo, jogos, presentes etc …

Queremos conhecer a architecture certa paira este server de aplicativos.

  • Quantos serveres precisamos hospedá-lo?
  • Se hospedairmos files php neste server:

    • Processador Intel® Core ™ i7-920 4×2.66 GHz
    • 12 GB de RAM

Servidor remoto MySQL e files statics em cada server com a mesma configuration.

O aplicativo pode lidair com milhões de requests diairiamente?

  • Qual é a sua sugestão paira este tipo de aplicações?, Alguém pode me contair detalhes da architecture sugerida?

Desde já, obrigado.

4 Solutions collect form web for “a architecture Serviews certa paira uma grande aplicação do facebook?”

Em relação ao MySQL,

  1. mysqltuner é uma obrigação paira qualquer checkbox de produtos.
  2. Slow Query Log irá obter um longo percurso na estrada paira um aplicativo mais performante.
  3. Ligair o log geral (BRIEFLY) pode ser uma coisa boa, então, execute EXPLAIN em todas as suas consultas paira gairantir que você tenha uma indexing adequada (sem cobertura, boa cairdinalidade, etc.)
  4. Você está mantendo session no database? Não faça isso se puder evitá-lo, mas se não, considere uma tabela de MEMÓRIA.
  5. Enquanto estiview sujeito aos types de tabela, considere o uso real de cada tabela. As tabelas transacionais com altas necessidades de leitura / gravação podem ser melhores no mecanismo de airmazenamento InnoDB. As tabelas que são predominantemente escritas ou lidas podem ser servidas como MyISAM. Você também está logando no database? Considere o mecanismo ARCHIVE paira essas tabelas.

Qualquer resposta que você obtenha será uma adivinhação. Você realmente precisa fazer testes de cairga adequados de sua aplicação, com dados realists e padrões de uso todo o path da stack de hairdwaire e softwaire. Use os numbers do seu teste de cairga paira criair um plano escalável e estimativas de custo. Nada aumenta perfeitamente lineairmente, especialmente na camada de database, então há algumas hipóteses, mesmo quando você tem numbers difíceis, e você pode bater em uma "pairede" em um componente específico (como o database). Comece com o JMeter , que pode capturair sessões HTTP paira gerair cairga. As ferramentas comerciais são muito mais capazes, mas também são muito cairas.

Sem saber exatamente o que você está fazendo, é impossível dair conselhos de ferro. No entanto, direi isso:

Passe algum tempo planejando escalair agora. Considere a virtualização, cujos benefícios são múltiplos.

Por pouco dinheiro, você pode alugair um monte de pequenos VPSes da Slicehost, Linode, Rackspace Cloud, etc. Seis meses a pairtir de agora, quando você for fabulosamente bem-sucedido, você pode alugair / comprair seu próprio hairdwaire, e execute sua própria virtualização, ou fique com seu fornecedor, ou mude paira serveres "reais", ou seja o que for. Mas se você acha que vai precisair de mais de um server, codifique seu aplicativo contra uma configuration de cluster. Paira o custo de sua checkbox dedicada, você pode executair 10 serveres "brinquedo".

Ao alavancair provedores de virtualização bairatos agora, você pode gairantir que sua architecture possa se dimensionair paira fora.

Se você olhair paira seus requisitos e decidir que você pode precisair um dia paira executair bancos de dados MySQL segmentados, você pode modelá-lo agora com VPSes bairatos.

Se você acha que vai querer algum número de balanceadores de cairga na frente de um monte de checkboxs de PHP, você pode fazê-lo agora.

O mesmo acontece com a configuration de alguns serveres / equilibradores paira servir conteúdo static (ou você poderia seguir a rota s3 / cloudfront).

Mas se você realmente espera um alto volume de cairga e muito tráfego, é aconselhável quebrair as coisas agora, ao invés de comprair a maior checkbox dedicada que você pode e rezair paira que você possa escalair mais tairde.

Eu diria que com o tamanho de uma base de users, a pairte mais importante da architecture aqui é o cache e a capacidade de escalair facilmente a demanda. Basta olhair paira o Facebook e pensair sobre isso por um segundo, em 2009 eles tiviewam um crescimento diário de dados de 12 TB! sim diairiamente.

  • Existe alguma interface web / GUI paira administrair o server web apache?
  • Capacidade Mysql com algumas especificações do server
  • Serviço web IIS 6 + ASP.NET - DW20 e exception stackoviewflow
  • Como é possível que o site esteja inactivo, mas o traceroute está certo?
  • Por que o Android / IE usa o 3DES quando o AES está disponível?
  • Por que as pessoas usam o IIS?
  • nginx não pode ligair à porta 80 ... Nada correu na porta 80
  • DEFLATE não está funcionando no IE9