Servidor para alta demanda

1. Servidor para alta demanda

Rodrigo Teixeira Andreotti
RodriAndreotti

(usa Debian)

Enviado em 15/03/2018 - 10:51h

Bom dia, caros colegas linuxeiros!

Pessoal, um projeto que estou trabalhando está prestes a entrar em uma nova etapa onde precisaremos contar com um servidor (ou vários) para suprir uma demanda alta de usuários simultâneos, nos meus cálculos (bem por baixo, estimando uma quantidade de 10% do total de usuários conectados) serão aproximadamente 96000 acessos simultâneos, tenho certeza que precisarei de servidores bem parrudos para isso, minhas dúvidas são:

- O projeto está em PHP com Mysql, provavelmente passarei ele para o enterprise edition (porém este pode ser mudado sem maiores problemas para SQL server, pois está em PDO), então, obrigatoriamente precisarei de um Servidor Web, nestes casos, qual seria mais indicado, o apache ou o nginx? Ou até mesmo um Zend Server, o que os colegas indicariam?

- Segunda dúvida, tenho quase que certeza que somente um servidor não dará conta desde volume de usuários pendurados, alguém já teve experiência com este volume de usuários? Quantos servidores seriam indicados para que o sistema funcione, bem, sem perda de performance e confiável?

- Terceira, a configuração deste ambiente em redundância é muito complicada? Quais passos seria interessante seguir? Recomendam algum material para leitura? Tenho alguma experiência com servidores, mas nada em uma escala tão grande.

Imagino que terei que configurar o Mysql em replicação master - master, o Bind em round robin, porém não faço ideia de como terei que configurar o bind e o apache para que as sessões não me deem dor de cabeça.

Já trabalhei com firewalls e atualmente administro um servidor web que uso como hospedagem para meus sites e de meus cliente , mas a quantidade de acessos dos sites que tenho lá não chega nem aos pés dos acessos que este projeto terá.

Edit.: Na opinião de vocês, o que seria mais indicado? A compra de equipamento ou Contratação de um cloud server?

Muito obrigado pela atenção!


  


2. Re: Servidor para alta demanda

Fabiano
fpires

(usa Debian)

Enviado em 15/03/2018 - 13:56h

RodriAndreotti escreveu:

Bom dia, caros colegas linuxeiros!

Pessoal, um projeto que estou trabalhando está prestes a entrar em uma nova etapa onde precisaremos contar com um servidor (ou vários) para suprir uma demanda alta de usuários simultâneos, nos meus cálculos (bem por baixo, estimando uma quantidade de 10% do total de usuários conectados) serão aproximadamente 96000 acessos simultâneos, tenho certeza que precisarei de servidores bem parrudos para isso, minhas dúvidas são:

- O projeto está em PHP com Mysql, provavelmente passarei ele para o enterprise edition (porém este pode ser mudado sem maiores problemas para SQL server, pois está em PDO), então, obrigatoriamente precisarei de um Servidor Web, nestes casos, qual seria mais indicado, o apache ou o nginx? Ou até mesmo um Zend Server, o que os colegas indicariam?

- Segunda dúvida, tenho quase que certeza que somente um servidor não dará conta desde volume de usuários pendurados, alguém já teve experiência com este volume de usuários? Quantos servidores seriam indicados para que o sistema funcione, bem, sem perda de performance e confiável?

- Terceira, a configuração deste ambiente em redundância é muito complicada? Quais passos seria interessante seguir? Recomendam algum material para leitura? Tenho alguma experiência com servidores, mas nada em uma escala tão grande.

Imagino que terei que configurar o Mysql em replicação master - master, o Bind em round robin, porém não faço ideia de como terei que configurar o bind e o apache para que as sessões não me deem dor de cabeça.

Já trabalhei com firewalls e atualmente administro um servidor web que uso como hospedagem para meus sites e de meus cliente , mas a quantidade de acessos dos sites que tenho lá não chega nem aos pés dos acessos que este projeto terá.

Edit.: Na opinião de vocês, o que seria mais indicado? A compra de equipamento ou Contratação de um cloud server?

Muito obrigado pela atenção!


Para seu load balancing, evite fazer por DNS, porque se o host ficar fora do ar o DNS continua direcionando requisições para ele. Ao invés disso, utilize um load balancer (como o haproxy, ou mesmo um apache/nginx atuando como proxy reverso). Sobre as sessões, normalmente é feito algum tipo de Session Persistence (ou Session Stickness). O balanceador "balanceia" apenas o primeiro pacote de cada conexão. Os próximos são enviados para o mesmo servidor de backend. Também é possível utilizar um sistema que replica as sessões entre todos os sistemas do seu cluster. Veja também otimizações para servir o conteúdo estático (imagens, css, javascript, etc), instruir o navegador dos clientes a cachear o que for possível, setar datas de expiração de conteúdo (mod_expires) ...



3. Re: Servidor para alta demanda

Rodrigo Teixeira Andreotti
RodriAndreotti

(usa Debian)

Enviado em 15/03/2018 - 14:05h

Cara... muito obrigado pela resposta,

Já me deu uma direção para começar a seguir, vou começar a fazer alguns testes em máquinas virtuais, para depois partir para as máquinas reais.

Eu pensei em criar também um balancer redundante para caso o primário cair, entrar o segundo e aumentar a disponibilidade também, outra dúvida que surgiu é se separo o banco de dados ou deixo no mesmo servidor do httpd, eu tendo a achar melhor separar e deixar os processamentos independentes.

Mas muito obrigado mesmo pela luz.


4. Re: Servidor para alta demanda

Fabiano
fpires

(usa Debian)

Enviado em 15/03/2018 - 14:36h

RodriAndreotti escreveu:

Cara... muito obrigado pela resposta,

Já me deu uma direção para começar a seguir, vou começar a fazer alguns testes em máquinas virtuais, para depois partir para as máquinas reais.

Eu pensei em criar também um balancer redundante para caso o primário cair, entrar o segundo e aumentar a disponibilidade também, outra dúvida que surgiu é se separo o banco de dados ou deixo no mesmo servidor do httpd, eu tendo a achar melhor separar e deixar os processamentos independentes.

Mas muito obrigado mesmo pela luz.


Então,
Esse paper do haproxy fala sobre a arquitetura dele, e explica porque é melhor utilizar vários servidores web pequenos ao invés de um grande. Também dá um overview sobre a questão de uso de cookies para fazer o Session Sticking (você pode utilizar um cookie da sua aplicação ou deixar o haproxy criar um). É meio antigo, mas dá pra pegar os conceitos e checar a documentação para se atualizar.
https://www.haproxy.org/download/1.2/doc/architecture.txt

Pelo que vi, o haproxy também suporta o VRRP, que é um protocolo de redundância do jeito que você falou.
https://www.haproxy.com/documentation/hapee/1-5r2/configuration/vrrp/




5. Re: Servidor para alta demanda

Rodrigo Teixeira Andreotti
RodriAndreotti

(usa Debian)

Enviado em 15/03/2018 - 14:47h

Puts... que legal cara... muito obrigado mesmo...

Adoro pegar esses projetos novos, sempre é bom para aprendermos coisas.

Vou ver o que desembolo por aqui com esse material, fazer uns testes e ver como vai rolar.


6. Re: Servidor para alta demanda

Fabiano
fpires

(usa Debian)

Enviado em 16/03/2018 - 10:12h

RodriAndreotti escreveu:

Puts... que legal cara... muito obrigado mesmo...

Adoro pegar esses projetos novos, sempre é bom para aprendermos coisas.

Vou ver o que desembolo por aqui com esse material, fazer uns testes e ver como vai rolar.


Depois você pode escrever um artigo com o overview da solução. E não esqueça de mandar o site pra gente ver o resultado ;-)


7. Re: Servidor para alta demanda

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 16/03/2018 - 11:55h

Só acrescentando ideias...
Containers dependendo de como é sua aplicação web pode ser uma boa pedida também :)



8. Re: Servidor para alta demanda

Rodrigo Teixeira Andreotti
RodriAndreotti

(usa Debian)

Enviado em 16/03/2018 - 12:21h

fpires escreveu:

RodriAndreotti escreveu:

Puts... que legal cara... muito obrigado mesmo...

Adoro pegar esses projetos novos, sempre é bom para aprendermos coisas.

Vou ver o que desembolo por aqui com esse material, fazer uns testes e ver como vai rolar.


Depois você pode escrever um artigo com o overview da solução. E não esqueça de mandar o site pra gente ver o resultado ;-)


Pretendo fazer isso realmente, sempre bom poder contribuir para a comunidade, assim retribuo o conhecimento que adquiro aqui também... rs


9. Re: Servidor para alta demanda

Rodrigo Teixeira Andreotti
RodriAndreotti

(usa Debian)

Enviado em 16/03/2018 - 12:23h

patrickpcs escreveu:

Só acrescentando ideias...
Containers dependendo de como é sua aplicação web pode ser uma boa pedida também :)


Então, o projeto usa Zend Framework 2, MySql e alguma coisa de javascript, basicamente são cruds... rs porém é um crud que será usado por uma quantidade grande de pessoas.. rs
Os containers você diz docker e similares?

Valeu a sugestão!


10. Re: Servidor para alta demanda

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 16/03/2018 - 14:22h

RodriAndreotti escreveu:
Os containers você diz docker e similares?


Exatamente :)










Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts