Sistemas Legados

Toda empresa que possui um certo tempo de existência já se deparou com problemas relacionados a sistemas legados. Me refiro a sistemas legados como sistemas ultrapassados que foram descontinuados pelos fornecedores e estiveram ou ainda estão em uso pela empresa para gerenciar dados de negócios, clientes, compras, vendas, etc. Ou seja, o sistema, apesar de descontinuado pelo fabricante, possui dados antigos que não podem ser perdidos ou apagados.

Hardware Legado

By Ruben de Rijcke – Own work, CC BY-SA 3.0

Sistemas legados podem se referir a diversos tipos de sistemas, desde bancos de dados em formatos antigos até mesmo planilhas de excel defasadas. Empresas devem guardar estes dados para acesso por colaboradores em situações especiais, desde processos judiciais, histórico, estatísticas, etc.

Existem várias maneiras de se lidar com sistemas desse tipo. A mais comum é migrar os dados para um sistema novo, mas em muitos casos, pode ser bastante custoso, impraticável ou até mesmo sem sentido gastar um esforço da equipe de desenvolvimento interno, de um consultor terceirizado ou até mesmo de um estagiário em desenvolver um processo para migrar, armazenar, validar e testar se os dados transferidos de sistema efetivamente continuam válidos, acessíveis e confiáveis da mesma maneira que estavam no sistema anterior.

Acaba de vir à memória um banco de dados de um sistema web antigo de um cliente. O banco de dados em questão era o postgresql, um SGBD gratuito muito conhecido pelo pessoal open source. Lembro-me desse episódio, pois esse sistema usava uma versão antiga de banco de dados já sem suporte e, na minha inocência, sempre me questionei por que o gestor anterior nunca tinha feito um upgrade de versão daquele banco de dados tão importante. Quando minha oportunidade chegou, migrei os dados daquele banco para uma nova versão para constatar quase que imediatamente que todos as datas dos registros haviam sido modificadas. Pesquisando mais a fundo, descobri que os desenvolvedores do banco de dados postgresql haviam realizado uma mudança de estrutura de dados de data, especificamente daquela versão que usávamos em diante. Sem deixar me intimidar, rapidamente comecei a bolar como converteria as datas para o formato novo com meu arsenal de queries mágicas. Entretanto, isso começou a custar horas para o meu cliente que não haviam sido previstas. E rapidamente, isso se provou um custo alto pois a conversão não seria tão trivial. Uma vez que as datas estivessem convertidas, eu teria que criar um mecanismo para validar todas as datas do banco antigo com o novo para provar ao cliente que ele estava seguro na versão nova. E não havia justificativa para todo aquele esforço. Simplesmente voltei o banco de dados anterior, visto que aquele era um sistema antigo, usado apenas para consulta e atendia ao meu cliente. Por isso, mesmo que seja possivel, nem sempre é prático migrar uma base de dados de um sistema para outro.

Uma outra situação que presenciei foi uma troca de sistemas em outro cliente. O desenvolvedor havia preparado uma nova versão do sistema CRM que estava em uso. Entretanto, devido às diferenças de requisitos entre os sistemas, não foi possivel levar todos os dados do sistema antigo para o novo. Houve uma quebra no atendimento. Durante um tempo, as consultas de dados financeiros até uma certa data seriam feitas no sistema antigo e as novas seriam tratadas no sistema novo. Entretanto, o sistema antigo era um sistema programado em linguagem delphi e usava um mecanismo de acesso à base de dados SQL server chamado BDE, que já estava ultrapassadíssimo quando o sistema foi colocado em desuso. E o pior: Esse cliente do sistema só era acessado via windows XP que, na época, também já estava ultrapassado.

Um terceiro caso interessante de se comentar foi um grupo de planilhas de excel que um cliente usava para fazer análises de casos particulares. Essas planilhas usavam e abusavam de macros e mecanismos ultrapassados que já tinham sido desligados pela Microsoft, sendo completamente incompatíveis com as versões mais recentes dos mesmos programas.

Ou seja, os exemplos anteriores mostram claramente que se livrar de um sistema legado nunca será tão simples assim. Pode ser que nunca seja possível apagá-los e virar a página. Até mesmo em planilhas de excel.

É claro que os sistemas legados devem ser desligados um dia, afinal de contas, eles estão ultrapassados e uma empresa não pode ficar à mercê de um sistema cheio de problemas. Porém, isso não pode significar que a empresa deve perder o acesso completo a eles. Nunca se sabe o dia de amanhã e, como gestor de TI, faz parte do nosso trabalho documentar e manter esses sistemas pelo tempo que for necessário.

Em muitos casos, o sistema legado não necessariamente precisa estar disponivel o tempo todo. Ele apenas não pode ser perdido. Lembro de um caso de um sistema de um cliente que havia sido desenvolvido com os recursos de um investidor. Esse sistema acabou se provando desnecessário diante de alguns fatores que aconteceram ao longo do projeto, porém, meu cliente não poderia perder aquele sistema de nenhuma forma. Segundo o acordo original, o investidor poderia pedir uma auditoria e ver o sistema funcionando a durante 20 anos! Caso meu cliente falhasse em lhe apresentar o sistema, seria aplicada a ele uma multa contratual enorme.

Para piorar ainda mais a situação, geralmente o orçamento disponibilizado para tratarmos de sistemas legados será NULL. Ou seja, nem zero!  🙂

Mas COMO resolver esses problemas?

Abaixo vou explicar os meus truques mais comuns usados para garantir que sistemas legados de quaisquer espécie não sejam perdidos.

Obviamente que um gestor mais experiente já sabe qual o caminho eu segui em todos os casos anteriores. O da virtualização. Existem diversos sistemas gratuitos que podem ser usados para virtualizar qualquer sistema legado que consigamos inventar.

Quando ganho a responsabilidade de salvar um sistema legado, estudo qual seria a possibilidade de criar uma máquina virtual na infra-estrutura existente do proprio cliente. Para isso, é preciso observar que tipo de hardware ele tem disponível para esse fim. Se seu servidor está estrangulado em termos de hardware, eu uso um servidor antigo que esteja encostado em desuso ou mesmo uma estação antiga para isso. Claro que pode ser que seja necessária a aquisição de mais um pente de memória ou mesmo um disco maior. Muitas vezes um upgrade de fonte de alimentação também é uma boa idéia.

A melhor abordagem é usar um sistema linux rodando um sistema de virtualização para rodar quantas máquinas virtuais voce precise para executar os seus sistemas legados. Recomendo planejar uma VM para cada sistema separado.

Minha estratégia favorita justamente quando o hardware não é muito novo ou poderoso é usar um Linux Ubuntu desktop. Uma vez instalado, basta usar um sistema de virtualização aberto como o VirtualBox da Oracle. Essa solução Tudo não tem custo de licença e pode ser usado para qualquer fim, mesmo comercial. Uma vez instalado um VirtualBox, basta criar uma máquina virtual e nela instalar o sistema operacional mínimo necessário para utilizar-se do sistema legado em questão. Em um ou dois dias é possivel ter um sistema antigo rodando em um ambiente virtualizado para os seus usuários.

E quanto às licenças de software?

É claro que estou partindo do princípio que voce tem licenças de todos os softwares legados que voce ainda usa.

Entretanto, existem algumas facilidades a serem levadas em conta. Um sistema legado que é acessado esporádicamente não necessariamente precisa de um windows server se vai ser acessado apenas por um ou dois usuários. Use uma licença antiga de windows 7 ou mesmo windows XP. Muitos dos softwares que eram instalados no Windows Server rodam sem problema no windows 7 ou mesmo no windows xp. E praticamente suportam a mesma (ou mesmo maior) gama de hardware.

Em alguns casos, voce pode ter mais de um sistema legado e pode precisar de mais de uma simples VM. Nesse caso, recomendo que voce use uma solução mais robusta, como o VMWare Esxi, também gratuito. Neste caso especifico, recomendo que voce use uma máquina servidora com um perfil mais corporativo, como um servidor HP ou DELL antigo.

E como faremos os usuários acessarem esses sistemas?

Idealmente, esse novo servidor que hospeda a VM do seu sistema legado deveria ficar na sala de servidores, longe dos usuários. Um sistema legado não tem tanto uso assim. Não deveria haver concorrência frequente entre usuários da empresa para acessá-lo. Diante disso, a melhor solução é um software para acesso remoto.

Eu já usei e recomendo todos esses softwares:

  • Teamviewer (Pago em casos de uso comercial, fantástico aplicativo de celular e tablets);
  • Anydesk (Permite um unico acesso, mesmo com fins comerciais);
  • Remote Desktop / Terminal services (Presente em todos os windows, mas é pago e tem limitações. Porém, pode ser a unica opção viável em alguns casos);
  • VNC (Gratuito e opensource, mas compartilha uma unica conexão ao servidor, portanto apenas um usuário de cada vez).

Ou seja, os seus usuários podem se conectar aos sistemas legados remotamente, do conforto de seus desktops, sejam eles windows, macs ou mesmo androids.

Como ficam a minha impressora nesse cenário?

Bem, aqui existe uma variável importante. Para que voce consiga imprimir dados de um sistema antigo, pode ser que seja obrigatório usar uma impressora que possua drivers 100% compatíveis com o sistema operacional em uso pelo software. Talvez aquela impressora laser colorida 3D que imprime hologramas torça o nariz para o seu relatório de 20 anos atrás. Para isso, pode ser necessária uma impressora mais antiga, exclusiva para esse fim e que tenha drivers compatíveis com o sistema operacional em uso no sistema legado. Porém, alguns tipos de impressora (como jatos de tinta) não podem ficar desligadas durante muito tempo ou correm o risco de secar ou mesmo entupir. Voce deve ficar atento ao tipo de impressora necesssária.

Entretanto, minha solução favorita para resolver QUALQUER problema de impressão chama-se CUTEPDF.

Aqui eu estou assumindo que voce usa um sistema legado rodando em ambiente windows. Se estamos falando de impressão, acho que é seguro dizer que seu sistema antigo roda em windows. O cutePDF acima só funciona no windows e possui versões antigas, compatíveis com diversas versões de windows.

Ou seja, na pratica, seus usuários vão gerar arquivos PDF com as impressões que precisam, salvar os arquivos em um compartilhamento de rede, copiar o arquivo para suas próprias máquinas e imprimir o PDF em qualquer impressora que lhes dêem mais vontade.  😉

Como arquivar emails antigos?

Leia como arquivar seus emails antigos em outro post, aqui.

Como migrar bancos de dados?

Muitas vezes a migração de bancos antigos em desuso pode ser mais fácil do que parece. Muitas vezes o seu poderoso e caro sistema SGBD pode estar leh custando espaço, licenças e processamento sem necessidade.

Veja abaixo as versões gratuitas que voce pode virtualizar sem custo

Como migrar websites e sistemas web antigos?

Uma solução fácil e rápida para arquivos websites e sistemas web antigos é o wampserver. Trata-se de um pacote completo para sites rodando em PHP 5.6 ou anterior.

Como fazer backup de dados dos sistemas legados?

Um sistema em windows pode usufruir do proprio sistema do Windows backup, sem nenhum custo adicional. Uma VM pode fazer backups em um disco externo ou mesmo em um espaço compartilhado da rede, integrado aos sistemas existentes de backup da empresa.

Sistemas que eu uso e recomendo, como o idrive, neste momento ainda são retro-compatíveis até o Windows 2003 server, inclusive de 32 bits. O OwnCloud também pode ser considerado neste caso.

Uma outra solução de backup de dados é utilizar as ferramentas de espaço gratuito na nuvem, como o OneDrive, Dropbox, Google Drive. Porém, alguns dos clientes podem não ser mais compatíveis com sistemas operacionais desatualizados.

Independente de qualquer solução usada para backup dos seus dados, é importantíssimo que exista um backup dos arquivos da máquina virtual inteira em outros dispositivos, como discos externos, pen drives ou mesmo mídias de DVD-R.

Eu também salvaria em um local seguro uma cópia de todas as instalações de softwares e drivers usados no processo de criação da máquina virtual. Nunca se sabe quando um fornecedor vai remover uma versão antiga e descontinuada de seu site.

IDrive Remote Backup