Pimp My Database – Parte 1

 

Como consultor de banco de dados há um bom tempo é inevitável não dispor de uma grande quantidade de histórias. Algumas divertidas, outras interessantes e, infelizmente, muitas tristes. Quando digo tristes, me refiro às situações onde me deparei com ambientes dignos de uma pegadinha, daquelas que você se pergunta onde está a câmera escondida. Pois bem, neste artigo vou contar uma história que qualquer profissional que trabalha com consultaria está sujeito.

 

Para os leitores que não entenderam o título eu vou explicar. Após refletir sobre esta história, não pude deixar de compará-la com um programa da MTV chamado ‘Pimp My Ride’. Este programa, em resumo, escolhe um participante que possui um carro todo esculhambado. E quando digo esculhambado estou sendo generoso, pois a maioria dos veículos escolhidos é praticamente um lixo ambiente. O apresentador do programa vai até o dono do veículo, apresenta-se e diz que vai envenená-lo (pimp), no bom sentido, é claro.

 

Após apresentar o veículo para a equipe de produção do programa, isto é, os profissionais que fazem todo o trabalho ‘sujo’, a equipe começa a literalmente desmontar o veículo sempre evidenciando o estado lastimável do carro. É impressionante o que as pessoas fazem com seus veículos, chegando ao ponto de utilizar até um absorvente (?) para evitar que a chuva caia dentro do carro.

 

Depois da desmontagem a equipe do programa começa a fazer ajustes, leia-se quase completa reconstrução. O veículo então é re-apresentado ao seu dono, que fica abismado com o resultado. Pronto, o veículo está envenenado para a surpresa do dono. Um amigo me disse que já copiaram a versão americana do programa, e que a versão nacional deste programa se chama ‘Lata Velha’ e é apresentado pelo Luciano Huck.

 

Voltado para a história da consultoria, lembro-me de ter sido chamado para prestar uma consultoria a uma empresa que estava com alguns problemas em seu banco de dados. Esta empresa utilizava uma aplicação para a Web desenvolvida em ASP (o antigo, não o ASP.NET) com um banco de dados SQL Server 2000. Com apenas estes detalhes em mãos me dirigi para o cliente.

 

Após a recepção, me encontrei com a equipe técnica responsável pela aplicação. Equipe era o que eu pensava, pois só havia um responsável técnico. Para não citar nomes, vamos chamar este profissional de Sr. José. Zé para os colegas de trabalho. Simpático, Zé me contou um pouco da história do ambiente. Disse-me que a aplicação foi desenvolvida e era de responsabilidade de dois outros profissionais, que receberam uma proposta de trabalho melhor e decidiram sair da empresa. Zé foi chamado às pressas e, em apenas uma semana, teve que aprender praticamente tudo sobre o negócio, a aplicação, o ambiente (servidores, cabeamento, links de internet etc) e do banco de dados. Como descobri depois, a aplicação e o ambiente são uma responsabilidade muito grande para apenas uma pessoa. Ainda mais com apenas uma semana de aprendizado. Pobre Zé, fez tudo ao seu alcance, mais ainda estava com muitas dificuldades para tocar o barco.

 

Infelizmente este cenário não me assusta mais. Já prestei tantas consultorias com situações semelhantes a esta que já me acostumei. Nestas situações, primeiro mantenho a calma e resolvo dar um passo por vez. Por acaso leitor, essa situação lhe traz alguma recordação? Caso positivo, isto apenas confirma a minha tristeza em reação às situações que muitos profissionais da área de Tecnologia da Informação estão sujeitos.

 

O Caos

 

Após uma breve explicação sobre as regras de negócio e como a aplicação funcionava, bem por cima, pois nem Zé sabia direito muitas coisas, conheci os principais problemas que demandaram a minha consultoria. Zé me apresentou uma lista dos problemas que eu precisava ajudar a resolver, que incluíam: problemas com desempenho, defeitos na aplicação e falhas na segurança.

 

Vou abrir um pequeno parêntese aqui. Logo no começo do trabalho fiz questão de deixar bem claro que a minha especialidade é banco de dados e que, apesar de conhecer outras áreas, só poderia ajudá-lo no que diz respeito à minha especialidade.

 

Antes de começar a descrever tecnicamente o cenário com o qual me deparei, deixo aqui uma dica de profissionalismo: não procure culpar as pessoas, pelo menos não diretamente e não antes de resolver a situação. Em diversas situações é comum atribuir uma grande parte dos problemas aos técnicos envolvidos. Porém, nem sempre eles são culpados ou podem levar a culpa. Muitas vezes que é o responsável pela parte técnica sofre pressões ou mesmo é orientado a proceder de certa maneira que, mais cedo ou mais tarde, vai gerar um problema sério. Por exemplo, já perdi a conta de quantas vezes tive que me debugar um código fonte escrito por alguém de madrugada, sendo sustentado por doses cavalares de café.

 

Por isso, raramente procuro culpados no momento em que me deparo com problemas graves. Ainda mais durante uma consultoria, pois este tipo de atitude pode levar à atritos com a equipe técnica da empresa.

 

Voltando para o ambiente e para o Zé, fui dar uma olhada em seu servidor de banco de dados, que estava sendo executado em uma máquina dedicada para o banco de dados da aplicação Web.

 

Lembrando-se agora, gostaria que o Zé tivesse me preparado psicologicamente para o que eu iria encontra. Sabe um daqueles acidentes de trânsito com engavetamento? Pois é, isso descreve parcialmente a confusão que estava neste servidor. Vou descrever aqui os ‘pequenos’ problemas, de acordo com o Zé.

 

Verificando a memória utilizada, constatei que o servidor já tinha consumido toda a memória física e já estava utilizando a memória virtual. Quase sem espaço nas duas HDs, o servidor estava tão lento que até para logar demorar um tempão. O mais impressionante, porém, foi descobrir a quantidade de vírus (isso mesmo, vírus no servidor de banco de dados!) e de aplicativos de usuário instalados. Segurança? Praticamente nenhuma, pois além da senha do administrador ser curta, já fazia pelo menos um ano que ela não era trocada.

 

Fiquei receoso de perguntar sobre backup. “Bom, de vez em quando eu copio o conteúdo da pasta Meus Documentos para um CD que fica ali na gaveta”, disse-me Zé quando lhe perguntei sobre cópias de segurança.

 

Atualizações? “Uma vez eu tentei aplicar o SP2 no servidor mais demorou muito e parei o processo”, afirmou Zé. Neste ponto eu já imaginava como é que a aplicação estava de pé funcionando neste ambiente....

 

“O que mais faltava?”, pensei eu.  Mais ainda tinha muito mais por vir! Zé me disse que, não raramente, a rede ficava tão lenta que não dava nem para acessar remotamente o servidor. Mas o pior mesmo, segundo ele, era quando o servidor simplesmente desligava sem nenhuma razão aparente, tornando indisponível a aplicação Web. E, por falar na aplicação, ele me disse que o dono da empresa estava pensando em cancelar todo o site, pois devido aos inúmeros problemas, não estava valendo a pena manter os custos operacionais. Isto por que a aplicação chegou a ser responsável por 5% do faturamento da empresa.

 

Na próxima parte deste artigo eu continuo descrevendo com o que me deparei nesta consultoria, além de identificar os problemas e as atitudes tomadas para resolvê-los.