Vários sites em vários servidores - mysql separado ou não

4

Atualmente tenho 2 servidores Debian (VPS com 4 GB de memória) e estou hospedando uma variedade de sites de importância diferente: alguns são sites de produção, enquanto outros são sites de demonstração / teste / teste. Aproximadamente 15 a 20 sites, um dos quais terá uma boa quantidade de tráfego em breve.

No momento, tenho meus sites de produção implantados em um servidor e sites de demonstração / teste / teste em outro. Ambos os servidores executam o Apache e o MySQL.

Eu li sobre e compreendi a maioria dos benefícios de separar o banco de dados (MySQL) do servidor web (Apache, mas provavelmente vai mudar para o nginx). Eu não tenho problemas de desempenho no momento, mas preciso mudar as coisas de um servidor para outro e queria saber se era um bom momento para reorganizar os dados em ambos os servidores. Por enquanto não tenho dinheiro para adicionar servidores extras no mix.

Minha pergunta: é melhor colocar todos os meus sites em um dos dois servidores e seus bancos de dados correspondentes no outro, já que eles são divididos entre aplicativos de produção e demo / teste / testes, ou seria melhor mantê-los a separação entre aplicações de produção e não produção (considerando fatores de segurança / desempenho)?

Idealmente, gostaria de mover todos os aplicativos que não são de produção para um terceiro servidor, mas, no momento, é impossível ir.

    
por Purplefish32 05.11.2014 / 11:03

2 respostas

0

Pessoalmente, eu estaria inclinado a deixar a instalação como está. (1 servidor de produção e 1 servidor de teste / demonstração / teste). Eu não vejo vantagens mudando isso. E eu não vejo nenhuma desvantagem em deixá-lo intocado. Você planeja um terceiro servidor que irá forçá-lo a alterar a instalação de qualquer maneira. Se o desempenho do banco de dados é uma preocupação, pense em clusterizar o MySQL em ambos os servidores. Um simples trabalho de configuração mestre / escravo faz o truque. Dessa forma, você pode usar um ou ambos os nós para todas as consultas selecionadas & o outro para todas as consultas de edição (inserção, atualização, etc.). Dessa forma, dividindo a carga.

    
por 05.11.2014 / 12:21
2

Embora uma resposta tenha sido aceita aqui, eu enfatizo que é o caminho certo a ser seguido.

A menos que você tenha requisitos complexos de implantação e / ou teste de capacidade, por que você está pagando por um servidor para hospedar seu material que não é de produção? Tudo o que você precisa é de uma VM local (é trivial implementar bandwadth, latency e perda de pacotes em um proxy).

Até os VPs caem. Se você deseja alta disponibilidade, os dois sistemas devem ser simétricos. Suponha que você tenha uma probabilidade de falha de um nó em 0,01%. Então a probabilidade de perder seu serviço como está é de 0,01%. Divida o serviço verticalmente (http e mysql) e sua probabilidade de perda total de serviço é de 0,01 + 0,01% - o dobro do que era. OTOH com uma configuração simétrica a probabilidade de uma perda completa de serviço é de 0,01% * 0,01% = 0,0000001% e você obtém os benefícios de mais desempenho e mais capacidade e uma maneira fácil de implementar o teste A / B.

Como você implementa o clustering e o equilíbrio de tráfego do mysql é uma questão mais complexa - mas pode ser feito sem adicionar software / hardware extra.

    
por 12.01.2015 / 17:19