Começo este artigo com uma citação do livro Como funciona o Google, no qual os autores denominam este século como o Século da Internet, em que “todas as empresas têm a oportunidade de aplicar a tecnologia para resolver problemas de novas maneiras”.

Descreverei uma situação pela qual acredito que muitos sysadmins e/ou desenvolvedores (principalmente) já passaram: receber uma ligação de um cliente informando que o site passou a exibir uns erros.

Você interrompe o seu acesso ao Facebook que está fazendo (afinal, o cliente vem em primeiro lugar), acessa o site deste cliente e descobre que na verdade não são erros, mas sim warnings (warning não é erro).

Ao efetuar algumas pesquisas, você começa a desconfiar de que a empresa onde o site é hospedado atualizou os pacotes do sistema. Então você entra em contato com a empresa de hospedagem, pede uma solução, afinal os códigos-fonte permanecem os mesmos.

O atendente da empresa informa que está verificando.

Three hours later...

“Senhor, atualizamos a versão do PHP do servidor.”

But why?

Tudo indica que o fornecedor do sistema operacional não dá mais suporte para a versão do PHP que você utilizou para a criação do site e a solução apresentada é efetuar um upgrade para uma VPS.

Stark

Apenas a versão do PHP não justifica a contratação desta VPS, afinal este servidor deverá ser mantido desatualizado e passível de invasão. Ele não poderá receber as atualizações do sistema sem que haja o risco de algum pacote perder compatibilidade. Sem contar no tempo de propagação de DNS, os e-mails que o cliente pode não receber (enquanto os DNS não propagam em sua totalidade), e outras inúmeras possibilidades que não vou citar aqui pois o editor vai cort

Em dias nos quais vulnerabilidades são descobertas e exploradas todos os dias, principalmente na área de TI, o ideal é sempre trabalhar com sistemas nas versões estáveis e, preferencialmente, com atualizações automáticas. Além disso, novas tecnologias vêm surgindo constantemente, tornando a vida de todos cada vez mais fácil. Por isso, nada justifica uma sacanagem de atualizar um servidor sem antes ter sido efetuada uma análise nos impactos disso.

Quão extraordinário seria se os desenvolvedores tivessem acesso a um painel onde fosse possível escolher qual versão do PHP ele vai utilizar para cada site? E se, além da versão, ele pudesse selecionar quais serão os limites de execução, memória, upload do PHP? Tudo isso em um ambiente compartilhado e com recursos controlados?

Bom, é melhor você se preparar, pois isso já é possível!

Surprise

Voltando a falar sobre segurança, você pode se perguntar: mas como é possível que um cliente utilize a versão 5.2 do PHP, se ela é muito antiga e perdeu suporte em Janeiro de 2011?

Existe uma empresa chamada CloudLinux. Ela desenvolve sistemas operacionais, e, entre outras diversas features, possibilita que o usuário escolha a versão do PHP a ser usada. Isso se chama PHP Selector. Esta mesma empresa garante a segurança das versões antigas do PHP através de um processo chamado HardenedPHP.

PHP Selector

“Mas Patrick, eu sou desenvolvedor, não tenho nem ideia de como se instala e mantém um sistema assim.”

Relaxa! Nós sabemos como instalar, configurar e, principalmente, manter instâncias com esta tecnologia.

Aqui na SAN, uma instância compartilhada não entra em produção sem antes ter sido testada com todas estas features.

No começo do artigo, eu comentei sobre empresas usando a tecnologia para resolver problemas de formas diferentes e mais simples. No caso da versão do PHP, a solução está aí. Cabe a você escolher entre:

  • reconstruir todo o site de seu cliente para a versão compatível, sabendo que ela vai perder suporte em algum momento;
  • aceitar a sugestão da empresa de migrar os serviços para uma VPS, onde você assumirá o risco (eles não vão te falar isso) de manter versões do PHP e/ou MySQL desatualizadas;
  • ou ter o controle sobre os sites e recursos destinados a eles, não abrindo mão da escalabilidade, performance e segurança.