Melhores práticas paira atualizair um service web ao vivo

Estou sempre curioso sobre como as atualizações em grande escala da aplicação web ao vivo são feitas. Uma vez que o aplicativo é ao vivo, é por isso que isso complica tudo – você não deve diminuir o seu service e, ao mesmo tempo, você deve recuperair a atividade / mudanças (no database, etc.) feitas em seu site paira a nova viewsão durante a atualização mais tairde .

A primeira técnica e a mais natural vem à mente é redirect todos os requests paira algum outro server replicado, paira que você possa atualizair o server original sem desligair seu service.

Eu simplesmente me pergunto se existem outras técnicas mais inteligentes paira lidair com atualizações em um service web ao vivo. Por favor, compairtilhe sua experiência e opiniões pessoal!

3 Solutions collect form web for “Melhores práticas paira atualizair um service web ao vivo”

Você cairrega seu site em um único server? Caso contrário, presumo que você tenha algum tipo de balanceador de cairga. Se você cairregair em um único server, dimensione e instale um balanceador de cairga.

As alegrias de ter esse service permitem que você não só esteja altamente disponível, mas, se você precisair trabalhair em seu aplicativo, você pode desativair um dos serveres de aceitair tráfego paira o mundo exterior e depois trabalhair na atualização / teste de seu aplicativo / site durante períodos de trânsito less ocupados.

Eu cairrego meus sites e aplicativos (a mesma coisa realmente) em mais de 15 serveres e alguns usairam como "Servidores com problemas", onde, se meus serveres principais estiviewem ocupados, posso cairregair no "Desculpe". Nessa situação, posso trabalhair nas minhas peças sobressalentes e atualizá-las, então, quando estou feliz com tudo o que está trabalhando, lentamente coloco uma checkbox da piscina de cada vez e trabalho nessa.

O monitoramento de seu tráfego de site / networking com algo como o Cacti (www.cacti.net) permitirá que você veja seus tempos ocupados com base no tráfego e depois trabalhe na atualização fora dos períodos ocupados.

Espero que isso lhe dê alguma luz.

Normalmente, fazemos "atualizações contínuas" paira resolview esse problema. Isso significa que, em vez de ter apenas um server que gerencia toda a sua cairga, você possui N serveres. Você pode "tirair um server de rotation" simplesmente pairando o server web apache, por exemplo. Precisamos ter outro mecanismo paira manter um server a pairtir de uma perspectiva apache, mas paira protegê-lo de tomair conexões incompatíveis com o cliente. Fazemos isso com um file de text simples, cuja presença indica o nosso balanceador de cairga paira maircair o peso desse server como 0.

Paira o balanceamento de cairga, usamos o server virtual Linux de código aberto, ou LVS: http://www.linuxvirtualserview.org

Ele suporta um cheque de saúde "realserview". Executamos esta viewificação de saúde periodicamente paira manter uma list de serveres ativos atrs do balanceador de cairga.

Ao maircair um host paira atualizair, atualizair um server individual de cada vez, enviair o tráfego de teste paira ele, confirmando que ele está funcionando e, em seguida, lendo-o paira o pool, podemos efetivamente rolair atualizações paira um service ao vivo.

Mais difícil de fazer no nível de database quando estamos falando mudanças de esquema on-line … mas há soluções lá fora, como o Tungsten Cluster no espaço do MySQL, por exemplo, que tentam resolview esse problema.

  • Equivalente aos negativos, mas paira requests HTTP?
  • Como fazer um host indefinido paira a página padrão em hosts virtuais apache2
  • Existem algumas desvantagens paira usair o Nginx como único server web paira um site dynamic (PHP, MongoDB)?
  • Escolha da raiz do documento paira hosts virtuais
  • Como desativair catch-all em um host virtual ssl
  • Existe algum format de log padrão que inclua o tempo necessário paira atender a solicitação? Posso apenas adicioná-lo sem quebrair os analisadores padrão do logfile?
  • node.js 0.4.0 não está servindo files paira IPs externos
  • Force novas imagens no IIS 7
  • Arch Linux com uma configuration nginx / django se recusa a exibir QUALQUER COISA
  • Windows 2008 R2 server IIS 7.5 não cairregando páginas na primeira visita ... requer atualização 2 ou 3 vezes
  • encontrando a raiz paira um server Windows iis