É normalmente seguro executar o “apt-get upgrade” (em termos de estabilidade) em um servidor de produção?

16

Eu geralmente faço login no meu servidor Ubuntu 12.04.2 (com o Postgres 9.2.4 rodando com dados de produção ao vivo) e vejo algo parecido com:

4 packages can be updated.
4 updates are security updates.

Isso acontece a cada poucos dias, é claro. Eu não estou interessado em atualizações automáticas (quanto menos coisas que eu possa ter mudando quando estou dormindo, melhor), mas estou interessado em sempre manter meu servidor atualizado, então minha pergunta é: quando eu vejo saídas como isso, é sempre considerado seguro executar apt-get upgrade , ou há momentos em que pode quebrar as coisas. Eu entendo que os patches nem sempre são perfeitos (daí o termo "sempre" no título), mas como regra geral, é considerado seguro rodar isso (especialmente porque é um servidor de banco de dados versus algo que serve apenas arquivos CSS via Nginx) )?

    
por orokusaki 06.06.2013 / 20:23

3 respostas

9

Geralmente, sim, isso é seguro. Para pacotes críticos, no entanto (Postgres, Nginx, etc.), eu recomendaria fixar esses pacotes em uma versão específica para que eles não sejam atualizados. Quando o Postgres for atualizado, por exemplo, ele reiniciará o servidor de banco de dados, que é algo que você deseja agendar em relação ao tempo de inatividade planejado.

Dito isso, é sempre melhor testar as atualizações em um servidor de armazenamento temporário antes de promovê-las para a produção. Por isso, é algo a se pensar em adicionar ao seu processo de implantação.

    
por 06.06.2013 / 20:37
5

O uso do Aptitude é mais fácil de lembrar: aptitude safe-upgrade vs. aptitude full-upgrade . Ainda é uma boa idéia instalar apt-listchanges para que você receba informações sobre as alterações nos pacotes atualizados e a opção de cancelar a atualização.

    
por 06.06.2013 / 21:03
4

Sim e não. A maioria dos aplicativos está OK, mas alguns aplicativos podem não ficar muito felizes de serem atualizados.

Eu vi exemplos em que os aplicativos que usam java de 1.6.29 a 1.6.30 interrompem o aplicativo. Também vi o mysql quebrando entre 5.0.X 5.0.X + 1 (não lembro os números exatos aqui).

Os aplicativos do sistema devem estar praticamente prontos, mas você deve ler atentamente as notas de versão dos aplicativos que o seu servidor está realmente fornecendo.

Leia o que o nginx altera, tente entender se há alterações que possam afetar sua configuração específica. Quanto mais avançado você usar um aplicativo, mais fácil será quebrar.

    
por 06.06.2013 / 20:58