Desafios e Soluções para Migração de Sistemas Legado

De acordo com o Free Online Dictionary of Computing (FOLDOC), Sistema Legado, é um sistema ou aplicação que continua a ser utilizado em razão do custo para substituí-lo ou redesenhá-lo, mesmo considerando sua fraca competitividade e compatibilidade com versões mais modernas. Normalmente, são sistemas ou aplicações grandes, monolíticas e difíceis de mudar. Se o sistema legado rodar em hardware e plataformas antigas, o custo de manutenção, eventualmente, pode ser maior que o custo para substituir tanto software quanto o hardware.

As tecnologias de informação e comunicação evoluem de forma rápida e dramática. Contudo, os sistemas legado não acompanham esta evolução em razão do seu tamanho, complexidade e importância para o negócio. É um grande desafio para as empresas decidirem quando manter e quando aposentar um sistema, porque uma parte significativa das regras de negócio podem estar encapsuladas nestes sistemas.

Nos cenários mais comuns no mercado corporativo e financeiro, entre as ferramentas e linguagens comumente encontradas no legado tecnológico, destacamos Visual Basic 5.0/6.0, VBA, Access, ASP clássico, COM+, DCOM, .NET 1.1/2.0. Com a evolução das plataformas e sistemas operacionais, aplicações desenvolvidas com estas tecnologias apresentam problemas de compatibilidade e estabilidade, que comprometem seu funcionamento, colocando em risco toda operação da empresa.

Motivação para migrar

O legado tecnológico expõe uma série de problemas que podem se tornar críticos para suas empresas, e que, ao mesmo tempo, funcionam como motivadores para a migração do legado. Particularmente podemos destacar os seguintes fatores:

  • Estes sistemas, normalmente, rodam em hardware ou plataformas obsoletas, que são lentos e apresentam altos custos de manutenção.
  • A manutenção do software em geral também apresenta alto custo; rastrear defeitos é custoso e demanda muito tempo, em razão da falta de documentação e pouco entendimento da abordagem utilizada na implementação das funcionalidades da aplicação.
  • A integração com outros sistemas é prejudicada pela falta de interfaces e problemas de compatibilidade de software.
  • A evolução dos sistemas legado para atender novas funcionalidades, necessárias para a empresa, é na maioria dos casos impossível.
  • Dificuldade ou impossibilidade de separar as regras de negócio das camadas de apresentação e dados.
  • A mesma regra de negócio pode ser encontrada em diferentes versões, e ser utilizada ou consumida por diferentes sistemas, dificultando a mantenabilidade.
  • Dificuldade para aprimorar funcionalidades existentes, uma vez que não há testes unitários ou de regressão que possam garantir a integridade das aplicações após uma modificação.

Estratégia

De forma genérica, todo processo de migração de legado deve contemplar os seguintes passos:

  • Justificativa ou motivação para migrar o legado
  • Entendimento do sistema ou aplicação legado
  • Desenvolvimento ou refatoração visando a nova plataforma ou versão
  • Testabilidade do sistema ou aplicação
  • Execução da migração

A GFT desenvolveu um processo para migração de sistemas ou aplicações do legado tecnológico, de forma a contemplar todas estas etapas. Abaixo estão descritas as fases do nosso processo.

Análise de Impacto

  • Identificar os sistemas ou aplicações que deverão ser migrados, mapeando seus recursos e funcionalidades.
  • Identificar as dependências e integrações com o ecossistema da empresa.
  • Identificar os riscos de segurança e políticas de compliance que afetam os sistemas ou aplicações.
  • Identificar o impacto para os usuários internos ou externos.

Migração de Dados

  • Identificar os tipos de dados que são manipulados pelos sistemas ou aplicações que serão migrados.
  • Identificar os servidores de bancos de dados, suas versões atuais, as novas versões, e mapear potenciais problemas de compatibilidade.
  • Se necessário, desenvolver um plano detalhado para transformação e migração dos dados.
  • Construir um plano de rollback caso tenha necessidade de abortar o processo de migração

 Automação de Build, Deployment e Testes

O processo de automação deve ser implementado nas três fases seguintes: Build, Deployment e Testes. Estas etapas estão intrinsicamente ligadas ao processo de entrega contínua. Para construir um ambiente automatizado, podemos utilizar uma combinação das seguintes ferramentas:

  • PowerShell
  • TFS Release Management for Visual Studio
  • Go Server
  • DevOps CHEF
  • Selenium

Execução de Dry-Runs

Dry-Runs por definição são parte de um processo de testes. No contexto de migração de legado tecnológico, Dry-Runs representam uma fase de ensaio. Durante a execução de um Dry-Run, o processo de migração é simulado desde a fase inicial até o deployment no ambiente-alvo e execução dos testes automatizados para garantir que após o processo de migração os sistemas ou aplicações continuam funcionando como esperado. O segredo nesta fase consiste em executar o maior número de Dry-Runs possível antes do Rollout. Isto permitirá que sua equipe possa capturar potenciais problemas no processo, bugs e mapear o tempo de execução de cada fase, o que será fundamental para elaboração do plano de Rollout.

Planejamento Rollout

Com dados colhidos durante a fase de Dry-Runs, você terá todas as informações necessárias para fazer o planejamento do Rollout, definindo recursos necessários, atribuindo responsabilidades para cada tarefa ou etapa do processo, planejando o tempo de execução. Isso permitirá que o processo de migração transcorra de forma segura e com menor impacto possível.

Soluções e Ferramentas

Além de uma boa estratégia e profissionais familiarizados com processos de migração de legado tecnológico, é preciso entender que o momento de migrar o legado representa uma oportunidade para rever os processos de desenvolvimento e sustentação de software. O propósito deste artigo não é discutir as diferenças entre os conceitos SLDC (Software Development Lifecycle) e ALM (Application Lifecycle Managment), mas destacar a oportunidade de rever seus processos e fazer uma renovação tecnológica com sua equipe.

Atualmente, desenvolvimento ágil e entrega contínua, são temas discutidos e aplicados amplamente. Não há uma receita única para adoção deste novo modelo de desenvolvimento. As empresas empregam ferramentas e tecnologias que mais se adequam a sua plataforma de desenvolvimento e a experiência de sua equipe. Contudo, é consenso que o desenvolvimento ágil permitirá que sua empresa possa migrar seu legado tecnológico, utilizando padrões mais atuais e arquiteturas mais eficientes, produzindo novas versões dos sistemas e aplicações, que possam ser modificados no futuro para atender as demandas do negócio, com o menor impacto possível.

Adotar o modelo ágil com entrega contínua, é um processo gradual, que deve ser cuidadosamente planejado, com apoio do executivo e suporte de profissionais experientes. Domínio sobre ferramentas como Microsoft TFS, TFS Build Server, Release Management for Visual Studio, Microsoft Test Manager, PowerShell, Go Server, DevOps CHEF, são fundamentais para implementação deste modelo num ambiente de sistemas e aplicações baseadas em tecnologias Microsoft. Não menos importante é o conhecimento e experiência com SCRUM framework para suportar o processo de gestão das equipes e processos de desenvolvimento.

A GFT desenvolveu um modelo de entrega contínua, baseado em nossa experiência no processo de migração e renovação tecnológica. Este modelo, chamado NSD (Non-Stop Delivery), é uma combinação de tecnologia, ferramentas e processos que podem ajudar sua empresa a ingressar no universo do desenvolvimento ágil, com segurança e eficiência.

Concluindo, o problema com legado tecnológico é semelhante ao aquecimento global. Alguns profissionais acreditam que sistemas legado não representam nenhum problema de fato, mas aqueles que conhecem o assunto, sabem que eles não desaparecerão sozinhos, e, com o tempo, os problemas aumentarão. Migrar é preciso.

A boa notícia é que atualmente temos excelentes ferramentas e profissionais especializados no processo de migração de legado, que minimizam os riscos e tornam o processo de migração menos traumático para as empresas. Entre em contato para conhecer mais detalhes sobre nosso processo de migração e renovação tecnológica.

Carlos Mattos, Senior Architect and Head of Microsoft Practice, GFT Brazil

Comment Area

  1. Roberto05/09/2016

    Olá, boa noite. Gostei bastante do artigo de você e minha monografia é sobre propor um método de reengenharia ou migração de sistemas legados. Poderiam me ajudar?

    1. Silvia Ura28/12/2016

      Oi Roberto,

      como podemos ajudá-lo? 🙂

  2. Sergio14/08/2017

    Olá Carlos, excelente informação !! Você conhece a ferramenta Transformer ? É de uma empresa portuguesa Morphis-tech.com que atua no mercado brasileiro já a algum tempo e que faz a migração de sistemas legados para .Net e JAVA, vale à pena dar uma olhada https://morphis-tech.com/products/transformer .

  3. Douglas25/06/2019

    Olá Carlos!

    Coordeno uma equipe com mais de 10 profissionais que só executam processos de migração de dados legados de sistemas concorrentes para a solução ofertada pela empresa onde trabalho.
    Gostei bastante da sua abordagem, pois em muito se assimila aos modelos que adotamos.
    Sucesso.