Prática recomendada para atualizar o PHP em sistemas de produção

4

Temos dois servidores web de carga balanceada executando o php 5.3. Fui convidado pela nossa equipe de desenvolvimento para atualizar o php para o 5.4 porque eles precisam de certas funcionalidades que ele trará. A questão principal é que o 5.3 é o mais recente que foi construído no repositório de distros, então, para atualizar usando o gerenciador de pacotes, eu precisarei adicionar outro repositório de terceiros. Eu não tenho um problema com isso em si, mas estou preocupado em usar um pacote de uma fonte "não oficial".

A outra opção é compilar o php a partir do código-fonte, mas acho que isso me impedirá de usar o gerenciador de pacotes para atualizar em qualquer estágio no futuro?

Então eu acho que estou apenas procurando por alguma orientação sobre qual caminho seguir. Compilar a partir de fonte ou instalar a partir de qualquer repo antigo que se propõe a fornecer php 5.4? Ou talvez haja uma terceira opção que eu não tenha considerado?

    
por Demic 10.10.2012 / 21:15

2 respostas

0

Na verdade, o seu problema real é fazer isso no ambiente de produção . Quero dizer, você deve reduzir o tempo de inatividade da melhor forma possível e planejar procedimentos de recuperação (rollback) caso algo dê errado.

Normalmente, eu não me importo com a "oficialidade" de um repositório, mas sim com "reputação". Eu não estou acostumado a pensar que repositórios públicos não-oficiais "abertos" injetam malware em pacotes (preocupação de segurança), e eu acho que se eles são populares e amplamente utilizados, eles são bem mantidos (preocupação de confiabilidade).

Se você está realmente preocupado em usar o repositório não oficial, você tem uma opção mais difícil: compilar a partir do código-fonte e sobrescrever o PHP quando o repositório oficial for atualizado. Isso introduz um risco.

Aqui está minha estratégia.

Primeiro, faça um instantâneo replicável do aplicativo . Colete arquivos, entradas de banco de dados e o que for necessário para iniciar o aplicativo em um novo servidor (no caso de você querer balancear a carga com 3, mas não quer realmente). Este será seu procedimento de reversão.

Em segundo lugar, crie um instantâneo do servidor com a instalação atual do PHP. Uma imagem completa do sistema é adequada. Mantenha-a como uma imagem dourada. Você fará backup do seu aplicativo junto com o servidor, mas tudo bem.

Em terceiro lugar, faça a compilação de origem, possivelmente tente primeiro a encenação.

Quarto, quando seu repositório oficial for atualizado, faça um novo instantâneo de aplicativo, restaure a antiga imagem do servidor dourado, atualize o PHP e atualize o aplicativo para o instantâneo que acabou de fazer.

Se algo der errado, você sempre terá:

  1. Um aplicativo de backup para restaurar. Eu não acho que você lida com milhares de transações por segundo, então a perda de dados pode ser mínima ou nula
  2. Uma imagem completa do servidor para o caso de algo ficar realmente muito ruim
por 10.10.2012 / 21:37
0

Eu pessoalmente prefiro compilar a partir da fonte se você quiser a versão mais recente de qualquer coisa. No entanto, parece que você ainda não fez nenhum teste e, devido aos problemas que podem surgir, recomendo enfaticamente que você teste off-line.

Para isso, sugiro que você crie uma máquina virtual para ser uma cópia tão exata do sistema quanto possível. Faça seu upgrade nisso. Você pode até testar cada método e ver o que funciona melhor para você.

Acima de tudo, se houver mais alguma coisa no servidor usando o PHP, certifique-se de que ele ainda funcione corretamente após a atualização. Atualizações PHP são notórias para quebrar aplicativos, mesmo com versões de subpontos, e muito menos um ponto inteiro.

    
por 10.10.2012 / 23:55

Tags