Discussão de ideia - servidores web e capacidade

Iniciado por rafatres, 24 de Setembro de 2014, 23:26

tópico anterior - próximo tópico

rafatres

Boa noite,
Eu tenho um servidor web aqui rodando Apache, PHP e MySQL basicamente e serviços necessários para o funcionamento da hospedagem do site. Mas, o básico é isso. Ele faz a função de servidor SMTP, Firewall, web, MySQL, FTP (se tem mais aplicações, de momento não me recordo). Estamos iniciando um projeto com grande potencial de crescimento e vai ser inicialmente hospedado nesse servidor. Então, prevendo o possível crescimento, gostaria de me planejar para atender essa demanda.
Pensei em duas opções:
1 - aumentar a capacidade do servidor; ou
2 - dividir o servidor (explico mais abaixo).
Sobre a opção 1, penso que é a mais fácil, mas acho que também pode ser problemática de acordo com o crescimento e segurança. Aí fico meio receoso e começo a achar a segunda ideia que eu tive bem melhor.
A opção 2 consiste numa divisão de servidores a seguir:
Servidor 1 -> Servidor principal, vai receber as requisições do site. Nele, vai ter firewall, pensei no DNS (atualmente eu uso a opção que a empresa que me fornece o VPS tem) e pensei no Nginx e em proxy reverso, como uma forma de aumentar a segurança.
Servidor 2 -> Armazenará os demais serviços (Apache, FTP, SMTP...) necessário para o funcionamento dos sites hospedados.
Servidor 3 -> Armazenará apenas o banco de dados.
Porque eu pensei nesse range?
1. Se eu precisar aumentar apenas o banco de dados (que é o que tem mais vias de crescer num primeiro momento), eu apenas crio outro servidor com o BD ou expando o existente (meu problema: configuração);
2. Se por acaso for necessário armazenar mais sites e um servidor ficar muito fraco, posso criar outros servidores para os sites ou distribuir os sites em vários servidores se começarem a requerir muito sem necessidade de reconfigurar os DNS do site no fornecedor do domínio, reconfigurando só o proxy reverso (será uma boa ideia?).
Cheguei a pensar também em fazer outra coisa, mas acho que vira pura gambiarra daí... Armazenar os arquivos em um quarto servidor, armazenando os serviços em um servidor apenas.
E quanto à comunicação? A empresa me oferece uma VPN. Se for seguir essa empreitada, solicito à ela a ativação dessa opção e a comunicação entre servidores fica exclusivamente por VPN (mais rápido, imagino).
No futuro talvez seja necessário um servidor apenas para e-mails (por enquanto não é nosso foco e estamos usando alias apenas), mas estamos estudando esse caso ainda.
Outra coisa que pensei é limitar todo o tráfego de fora da VPN dos servidores, bloqueando-o, exceto no principal. Imagino que isso aumente a segurança, mas não tenho certeza.

Como hospedo alguns amigos também, optei por usar um painel de controle open source, o Zpanel (que está cheio de problemas devido a uma compra dele e blablá e a equipe criou outro, o Sentora, o qual está em desenvolvimento e estou aguardando o lançamento da versão final para migrar). Pretendo mantê-lo. Não sei como vai ser a integração de diversos servidores com esse painel...

Também pensei em pegar um VPS para backup, mas a empresa me oferece a opção de backup com um custo X adicional. Será que há necessidade de criar rotinas pessoais de backup, ou optar pelo da empresa apenas já ajuda? De repente mais para a frente, faço meus backups e garanto o da empresa (garantia nunca é demais né?).

Ainda tenho muito a aprender sobre servidores, mas acho que aos poucos vai engatinhando.
Se alguém tiver outras sugestões, estou aberto a elas.

Obrigado desde já!

Rockwave

Realmente separar os serviços em vários servidores é uma opção melhor, até para melhorar a escalabilidade do seu sistema.
Você realmente precisa ter um servidor DNS proprio??

Eu pensei na seguinte divisão para os servidores:

Servidor 01 - Proxy/Cache com Varnish, apesar do Nginx fazer essa função o Varnish permite regras mais complexas para realizar cache dos objetos.
Servidor 02 - Demais serviços, eu usaria o Nginx no lugar do apache por ter uma performance melhor (ainda mais por que você esta pensando em hospedar varios sites)
Servidor 03 - Banco de dados. Qual banco você esta usando?

Se o seu BD crescer muito você vai precisar pensar de duas maneiras:
1 - Aumentar a capacidade de armazenamento,ou seja, adicionar mais discos
2 - Clusterizar o banco

Note que apenas clusterizar o bd não vai te garantir um maior espaço.
Para a comunicação entre os seus servidores a VPN pode funcionar, porém você pode ter uma perda de performance. O ideal era que a empresa te oferecesse a possibilidade de ter uma rede privada para os seus servidores.

Sobre o backup você tem que ver como é a politica de backup da empresa, se não atender as suas necesidades você vai ter que implementar uma outra solução. Lembre-se, que se vc tem 1 backup, você não tem nenhum backup.

Abraços