Como você faz a atualização dos sistemas de missão crítica para sistemas altamente diferentes?

1

No período de mais de 12 anos da minha carreira, eu ainda tenho que superar esse obstáculo e suspeito que a resposta simplesmente não é fácil ou até mesmo possível, então eu peço a todos aqui por sua experiência.

Digamos que você esteja enfrentando problemas notáveis que só podem ser corrigidos ao passar de uma plataforma para outra - seja por cometer um erro ao escolher a plataforma escolhida anos atrás, ou simplesmente crescer além do que o sistema foi projetado originalmente para. Você sabe com certeza que o lixo acumulado ao longo do tempo invariavelmente significa que será quase impossível testar todas as coisas que certamente levarão ao inferno do suporte tecnológico - o que todos nós sabemos que leva à perda de clientes. Não que os clientes já não estejam reclamando dos problemas notórios que já existem!

A melhor maneira possível que descobri até agora é talvez elaborar um plano para a mudança, testá-lo em alguns clientes, testá-lo em uma dúzia de clientes, testá-lo em uma centena de clientes e, finalmente, concluir a mudança. para todos e reze para que você tenha resolvido todos os insetos com os primeiros cento e vinte, e que os subprodutos animais não atinjam o sistema de ventilação da maneira mais espetacular possível.

No entanto, isso não significa que não vai de qualquer maneira.

Digamos que você esteja migrando do Exchange para o Exim (ou até mesmo para o Sendmail para o Exim). Como você lida com isso?

    
por Ernie 17.01.2011 / 19:36

1 resposta

3

Essa é uma pergunta complicada e varia de acordo com a situação específica. Os principais problemas são:

  • tem um plano de fallback O que você fizer, planeje como voltar rapidamente aos sistemas antigos. Se você não puder fazer isso, mais testes serão necessários.
  • testando sua funcionalidade mais comum. Observe seus registros ou meça quais recursos são mais usados e mais críticos. Teste essa funcionalidade mais completamente.
  • Ter vários usuários, incluindo você mesmo, "ao vivo" no novo servidor por vários dias. O período de tempo deve depender de quão drástica é a mudança. (por exemplo, "você deve ser o primeiro testador")
  • execute o novo serviço em paralelo com o antigo, se possível. Se você pode colocar um proxy no meio e encaminhar certos pedidos ou usuários, isso pode ajudar.
  • executado em um cluster com balanceamento de carga. Isso é semelhante à instrução anterior. Se você puder executar os dois serviços em um arranjo com balanceamento de carga, tente isso. Você pode gradualmente se livrar do serviço antigo conforme as coisas correm bem.
  • Mantenha os servidores antigos por algumas semanas ou mais. Mantive servidores antigos por meses, quando não tinha certeza se teria de usá-los. Desligue-os ou desconecte o cabo de rede para garantir que não haja dependências ocultas no servidor.
  • Verifique se o novo serviço pode manipular a carga. Implemente-o gradualmente e monitore o desempenho do sistema, movendo gradualmente mais tráfego para o novo sistema.
  • ao fazer as coisas, verifique se as falhas estão visíveis e imediatas. você quer que falhas ocorram cedo e sejam facilmente identificadas.

Use o DNS para sua vantagem. Configure os dois serviços para responder ao mesmo nome DNS, mas o DNS deve apontar para um ou para o outro (ou ambos como um round-robin). Use o arquivo de hosts locais no Linux e no Windows para substituir o DNS e poder verificar a configuração antes da implementação e depois. Isso também facilita a solução de problemas após o lançamento. Basta alterar o arquivo de hosts locais para o servidor antigo e ver se as coisas ainda estão quebradas na máquina com problema. Defina seu TTL como baixo para permitir um retorno rápido. Balanceadores de carga como o GSS da Cisco podem ser usados para isso. Eu posso usar o iptables para tirar um host específico com balanceamento de carga do pool.

Para o Apache, usar um proxy reverso é uma boa maneira de migrar um site aos poucos. Para outros, use DNS, um proxy ou, possivelmente, uma caixa iptables para oferecer opções sobre como controlar a transição.

    
por 17.01.2011 / 20:06

Tags