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.