Comecei a pensar na criação de um servidor virtual com balanceamento de carga, para executar principalmente serviços da Web, serviços de gerenciamento de projetos (controle de versão, etc.) e aplicativos desse tipo. E preciso de uma solução de código aberto (Linux).
A Wikipédia temesta entrada, existem projetos estáveis aparentemente muito promissores, mas a maioria já morreu há muito tempo.EU CONTRAeKerrigedparece possível, mas não tenho certeza. Vale a pena investir neles (tempo)?
Qual seria uma boa solução? (embora eu não possa pagar uma solução comercial (Linux ou outra), gostaria de aprender sobre essas alternativas e agradeço comentários nesse sentido).
THX
Responder1
Parece que você está tentando resolver o problema na camada errada. Não conheço nenhuma administração de sistema sensata que tente usar a imagem única do sistema para executar um servidor web quando existem outros métodos, comoproxies reversosque são muito mais simples e, como resultado, mais confiáveis.
Como:
Responder2
A menos que eu esteja realmente lendo a pergunta errada, eu diria que, para hospedar aplicativos da Web, você está fazendo isso da maneira errada.
Eu sugiro ter vários nós (virtuais ou físicos) e gerenciar sua configuração comfantoche.
Seus nós podem ser um rack inteiro de servidores 1U ou vários servidores multiprocessadores 3U poderosos rodandoKVMe, em seguida, um sistema operacional de sua escolha como convidados de virtualização.
Dados 4 servidores, você pode configurá-los da seguinte maneira:
- Servidor 1: Balanceador de carga + Nó HTTP (executando Varnish e Apache)
- Servidor 2: Balanceador de carga + Nó HTTP (executando Varnish e Apache)
- Servidor 3: Nó HTTP + DB Master (executando Apache e MySQL)
- Servidor 4: Nó HTTP + DB Slave (executando Apache e MySQL)
Seria vantajoso ter um quinto servidor, que execute serviços, como nagios, munin, tftpd para um ambiente de inicialização PXE, um pequeno servidor HTTP para arquivos kickstart/preseed, um DHCPd, talvez consoles seriais através de um Rocketport ou similar.
A enorme vantagem de usar o Puppet para implantar seus próprios sistemas, em vez de ter uma única imagem, é que os recursos são efetivamente autodocumentados. É muito mais claro e menos caixa preta do que apenas ter uma imagem colocada nos servidores. Além disso, torna as atualizações e alterações na imagem muito mais simples.
Responder3
Não tenho certeza se estou respondendo ao que você está realmente perguntando, mas se estiver procurando uma maneira de pegar uma VM e espelhá-la, você pode usar qualquer uma das ferramentas de virtualização gratuitas que conheço (VMware Server , ESXi, kvm, etc.)
- faça sua VM com tudo que você precisa
- copie a VM
- faça alterações na cópia (endereço IP e nome do host)
- iniciar ambas as VMs
- insira o balanceador de carga (hardware ou software, não importa)
- .. não consigo pensar no sexto passo :)
Responder4
Por mais emocionante que pareça o SSI, é muito improvável que eles tenham um desempenho ideal.
Como seu principal alvo são os aplicativos da web, você pode (deve!) usar as práticas recomendadas atuais. Normalmente, eles começam por:
- um balanceador de carga de cache como frontend (squid, verniz, nginx)
- vários servidores HTTP para aplicativos da web (normalmente Apache, pode ser nginx + FastCGI, qualquer que seja)
- base de dados
se bem feito, seu primeiro gargalo seria o banco de dados, neste ponto você deveria:
- adicione cache aos seus aplicativos da web para reduzir ao mínimo os acessos ao banco de dados. (frameworks modernos (RoR, Django), incluem ótimo suporte para memcached)
- leve algum tipo de trabalho do banco de dados para aplicativos mais especializados. os primeiros candidatos são filas de tarefas (para RabbitMQ ou similar) e armazenamentos de chave/valor (para Tokyo Cabinet, Resis, MongoDB, muitos deles)
- distribuir o banco de dados. se houver muitas leituras/poucas gravações, tente a replicação mestre/escravo (fácil no MySQL), mas se este for o seu caso, o memcached já deve ter absorvido a maior parte da carga. Tente também fragmentar.
se você conseguir crescer demais (você é o FaceBook?), terá que repensar toda a sua estrutura, à la Google (onde eles fazem quase tudo 'off the line' com MapReduce).