Certificação PCI DSS: guia completo para organizações
Saiba o que é a certificação PCI DSS, quem precisa dela, os passos para a obter, os custos envolvidos e como preparar a sua organização para a...
Saiba o que são aplicações legacy, quais as estratégias de migração disponíveis e como gerir o lado humano da transição para garantir uma adoção
A migração de aplicações legacy é o processo de transferir um sistema de software desatualizado do seu ambiente original para um mais moderno, seja uma plataforma cloud, uma nova infraestrutura local ou uma solução de software como serviço (SaaS). Bem executada, reduz os custos de manutenção, elimina lacunas de segurança e desbloqueia capacidades que os sistemas antigos não conseguem suportar.
Este guia aborda o que torna uma aplicação um sistema legacy, os argumentos de negócio para a migração, as principais estratégias de modernização incluindo a migração de local para cloud, o processo passo a passo e como gerir o lado humano da transição para que a adoção não fique estagnada após o arranque.
Uma aplicação legacy é um software construído com tecnologia, arquitetura ou linguagens de programação mais antigas, que já não é desenvolvido ativamente nem suportado pelo seu fornecedor original. O sistema ainda desempenha a sua função original, mas é cada vez mais incompatível com a infraestrutura moderna, as normas de segurança e os processos de negócio.
As aplicações legacy existem em todos os setores. Numa empresa de manufatura, pode ser uma ferramenta de gestão de inventário personalizada escrita em COBOL que corre num mainframe. No setor financeiro, pode ser uma plataforma de contabilidade local associada a um sistema operativo sem suporte. Na área da saúde, pode ser um sistema de registos de doentes que não consegue trocar dados com ferramentas clínicas mais recentes. O que estes sistemas têm em comum é um fosso crescente entre o que a empresa atualmente exige e o que o software consegue fornecer de forma fiável.
"Normalmente os sistemas legacy persistem porque as entidades são antigas; começaram a construir algo e mudar tudo torna a operação complexa, por isso as pessoas preferem adicionar correções."
Essa cultura de remendos só é sustentável até certo ponto. À medida que a dívida técnica se acumula, o custo e o risco de permanecer no sistema legado acabam por superar o custo e o risco de migrar.
O caso de negócio para a migração de aplicações legadas assenta em cinco pressões convergentes: aumento dos custos de manutenção, exposição à segurança, requisitos de conformidade, escassez de talento e desvantagem competitiva.
Os sistemas legados requerem recursos de TI desproporcionais para continuar a funcionar. Os componentes de hardware tornam-se mais difíceis de obter, os contratos de suporte de fornecedores expiram e o conjunto de programadores fluentes em linguagens mais antigas diminui. O custo acumulado de correções, soluções alternativas e reparações de emergência cresce tipicamente de ano para ano, superando frequentemente o custo que uma migração planeada teria implicado.
Uma aplicação que já não é atualizada pelo seu programador original não receberá correções de segurança quando forem descobertas novas vulnerabilidades. Isto torna o software legado um vetor de ataque comum. Regulamentos como o RGPD na Europa e normas setoriais como o HDS (Alojamento de Dados de Saúde) impõem obrigações de proteção de dados que os sistemas mais antigos nunca foram concebidos para cumprir. O incumprimento pode resultar em sanções financeiras e danos reputacionais.
As aplicações legadas foram tipicamente construídas como sistemas monolíticos e fechados. Não conseguem partilhar facilmente dados com plataformas modernas através de APIs (Interfaces de Programação de Aplicações), o que limita a colaboração entre departamentos e impede a adoção de ferramentas mais recentes. Escalar um sistema legado para lidar com cargas de trabalho acrescidas implica geralmente a aquisição de hardware físico adicional, um processo dispendioso e lento em comparação com a elasticidade da cloud.
Competir contra organizações que já modernizaram os seus sistemas enquanto se utilizam plataformas desatualizadas é cada vez mais difícil. As soluções modernas suportam capacidades como análise em tempo real, aprendizagem automática e automatização de fluxos de trabalho que o software legado não consegue acomodar. Com o tempo, o fosso de desempenho alarga-se.
A estratégia certa depende do estado do sistema existente, da urgência da mudança, do orçamento disponível e do ambiente de destino. A indústria referencia habitualmente uma estrutura de abordagens de migração, frequentemente designada por 6 R's ou 7 R's, que cobre todo o espetro desde a alteração mínima até à substituição completa.
| Estratégia | O Que Significa | Mais Adequada Para |
|---|---|---|
| Realojar (lift and shift) | Mover a aplicação para um novo ambiente com alterações mínimas ao código ou à arquitetura | Migrações rápidas em que a velocidade importa mais do que a otimização |
| Replataformar | Mover para uma nova infraestrutura e fazer ajustes pontuais para tirar partido do novo ambiente sem uma reescrita completa do código | Obter melhorias de desempenho e escalabilidade sem uma revisão completa |
| Refatorar | Reestruturar e otimizar o código existente para melhorar o desempenho e a manutenibilidade sem alterar a funcionalidade principal | Sistemas tecnicamente sólidos que necessitam de melhorias na qualidade do código |
| Reengenharia | Revisão completa da arquitetura da aplicação para cumprir normas modernas, incluindo a migração para microsserviços ou conceção nativa da cloud | Sistemas cuja arquitetura é fundamentalmente incompatível com os requisitos modernos |
| Reconstruir | Reescrever a aplicação de raiz utilizando linguagens e frameworks modernas, preservando a lógica de negócio | Aplicações em que a base de código está demasiado degradada para ser refatorada |
| Substituir | Retirar o sistema legado e adotar um produto comercial pronto a usar ou SaaS | Quando uma solução de mercado madura cobre a funcionalidade necessária |
| Manter | Conservar a aplicação no seu estado atual caso a migração ainda não possa ser justificada | Sistemas estáveis, de baixo risco e que não estão no caminho crítico de modernização |
Na prática, uma única organização pode aplicar estratégias diferentes a sistemas diferentes no âmbito do mesmo programa de migração. Um projeto de migração de aplicações legadas em mainframe, por exemplo, pode realojar algumas cargas de trabalho por razões de velocidade enquanto realiza a reengenharia da camada transacional principal ao longo de um prazo mais alargado.
A reengenharia é a opção mais transformadora e complexa. Envolve a reestruturação da arquitetura interna da aplicação, preservando a sua lógica de negócio. Isto significa frequentemente dividir uma aplicação monolítica em serviços independentes (arquitetura de microsserviços), substituir componentes fortemente acoplados por componentes fracamente acoplados, e adotar padrões modernos de design baseados em API. O resultado é uma aplicação mais fácil de manter, escalar e integrar com outros sistemas. A reengenharia requer documentação exaustiva do sistema existente, uma entrega faseada para gerir o risco, e uma governação sólida para evitar o alargamento do âmbito.
A migração para a cloud é atualmente a forma mais comum de modernização de aplicações legadas. A mudança de infraestrutura local para um fornecedor como o Microsoft Azure, a Amazon Web Services (AWS) ou o Google Cloud Platform (GCP) proporciona benefícios difíceis de alcançar apenas através de atualizações locais.
Para as organizações que avaliam a transição digital mais ampla do seu portefólio aplicacional, a decisão de migrar para a cloud é frequentemente um catalisador para repensar todos os sistemas em simultâneo, e não apenas um de cada vez.
O Microsoft Azure é um destino comum para a migração de aplicações legadas, em especial para organizações que já utilizam cargas de trabalho Microsoft. O Azure disponibiliza um conjunto de ferramentas de migração dedicadas, incluindo o Azure Migrate para descoberta e avaliação, o Azure Database Migration Service para cargas de trabalho de bases de dados e o Azure App Service para o alojamento de aplicações web. A arquitetura de migração do Azure está alinhada com as etapas gerais de migração para a cloud: avaliar, planear, migrar e otimizar, tornando-o um caminho estruturado tanto para cenários de realojamento como de replataformização.
Uma migração bem-sucedida segue um processo estruturado. Omitir etapas, em particular as fases de avaliação e planeamento, é uma das principais causas de derrapagem de custos, perda de dados e adoções falhadas.
Comece por catalogar todas as aplicações do portefólio atual. Documente o que cada sistema faz, quem o utiliza, que dados contém, como se integra com outros sistemas e qual seria o impacto nos negócios caso ficasse indisponível. Este inventário constitui a base de todas as decisões subsequentes.
Avalie cada aplicação em função do valor para o negócio e da complexidade técnica. Uma análise dos pontos fortes, pontos fracos, oportunidades e ameaças ao nível da aplicação ajuda a priorizar quais os sistemas a migrar primeiro, quais a substituir e quais a manter. Avalie também o estado atual do código-fonte, das dependências e da qualidade dos dados. Uma qualidade de dados deficiente descoberta tardiamente num projeto de migração é uma das principais causas de atrasos.
Com base nos resultados da avaliação, atribua uma estratégia de migração a cada aplicação a partir das opções descritas acima. Documente a fundamentação de cada decisão para que as partes interessadas compreendam a abordagem e as suas contrapartidas.
Selecione a plataforma cloud ou infraestrutura de destino. As considerações incluem as relações existentes com fornecedores, os requisitos de conformidade relativos aos dados a processar, a disponibilidade geográfica das regiões cloud e as competências técnicas da equipa interna. Para as organizações que escolhem entre plataformas, a migração para o Azure é frequentemente a opção mais natural para ambientes centrados na Microsoft, ao passo que a AWS e o GCP oferecem capacidades comparáveis com diferentes ecossistemas de ferramentas.
Um plano de migração de dados deve contemplar quatro dimensões: o mapeamento de dados (correspondência dos campos do sistema antigo com os campos do novo), a limpeza de dados (eliminação de duplicados e correção de erros), a validação de dados (confirmação de que os dados migrados são exatos e completos) e o momento de transição (decisão sobre se a migração será feita de uma só vez ou por fases). As falhas de integridade de dados nesta etapa são uma das causas mais frequentes de problemas após a migração.
Execute a migração num ambiente que não seja de produção em primeiro lugar. Realize testes funcionais para confirmar que a aplicação se comporta conforme esperado, testes de desempenho para verificar se suporta a carga de trabalho exigida, e testes de segurança para detetar novas vulnerabilidades introduzidas durante a mudança. Os testes de aceitação de utilizadores com utilizadores finais reais são indispensáveis antes de qualquer transição para produção.
Execute a migração de produção de acordo com um plano de transição detalhado que inclua um procedimento de reversão em caso de falha crítica. Após a entrada em funcionamento, monitorize de perto o desempenho, as taxas de erros e o comportamento dos utilizadores. As primeiras semanas após a transição são o período de maior risco; dispor de recursos de suporte dedicados durante este período reduz significativamente o impacto dos problemas.
Assim que o novo sistema estiver estável, reveja a utilização de recursos para identificar e eliminar desperdícios, um problema comum quando as cargas de trabalho legadas são transferidas sem o redimensionamento adequado. De seguida, desative formalmente o sistema antigo, retire a infraestrutura associada e atualize a documentação. A desativação é frequentemente adiada, o que significa que as organizações continuam a pagar pelos dois ambientes em simultâneo durante mais tempo do que o previsto.
Compreender os pontos de falha mais comuns ajuda as equipas a construir planos mais realistas e a evitar armadilhas previsíveis.
Os sistemas legados têm frequentemente integrações não documentadas com outras aplicações, processos em lote ou fluxos de dados. Estas dependências só surgem durante os testes de migração, causando atrasos. Uma fase de descoberta minuciosa reduz, mas raramente elimina por completo, este risco.
Décadas de dados acumulados num sistema legado contêm frequentemente inconsistências, duplicados e registos desatualizados. Migrar dados de má qualidade para um novo sistema não resolve os problemas subjacentes; apenas os transfere para um ambiente mais dispendioso. A limpeza de dados antes da migração é morosa, mas indispensável.
Uma migração tecnicamente bem-sucedida pode ainda assim falhar se as pessoas que dependem do sistema não adotarem o novo. Os colaboradores habituados aos fluxos de trabalho de uma aplicação legada podem resistir à mudança, regressar aos antigos hábitos ou contornar o novo sistema de formas que comprometem o seu valor. É por isso que o lado humano da migração merece tanta atenção no planeamento como o lado técnico.
A Lemon Learning responde diretamente a este desafio. Enquanto plataforma de adoção digital (DAP), disponibiliza orientação dentro da própria aplicação, tutoriais passo a passo e ajuda contextual diretamente na nova aplicação, para que os utilizadores obtenham suporte no momento em que precisam, em vez de dependerem de uma sessão de formação realizada semanas antes da entrada em funcionamento. Esta abordagem é particularmente eficaz para equipas de TI e de suporte a aplicações que gerem implementações em grande escala com recursos de formação limitados.
Os projetos de migração de aplicações legadas excedem frequentemente os orçamentos e os prazos iniciais. Os principais fatores são a subestimação da complexidade dos sistemas existentes, as alterações de âmbito durante o projeto e o investimento insuficiente em testes e gestão da mudança. Incluir uma margem de contingência tanto no orçamento como no calendário desde o início, em vez de tratar o plano como um cenário de melhor caso, é uma mitigação prática.
O próprio período de migração cria riscos de segurança temporários. Os dados estão a ser movidos entre ambientes, os controlos de acesso podem estar em fluxo e as novas configurações podem ainda não estar devidamente protegidas. Uma revisão de segurança em cada fase da migração, e não apenas no final, reduz o período de exposição.
Com base nos desafios acima referidos, as práticas seguintes melhoram consistentemente os resultados das migrações.
Uma aplicação legada é um software construído com tecnologia, arquitetura ou linguagens de programação mais antigas e que já não é desenvolvido ativamente pelo seu fornecedor original. Continua a desempenhar a sua função original, mas é cada vez mais incompatível com a infraestrutura moderna, as normas de segurança e os processos de negócio. Exemplos comuns incluem sistemas de processamento de salários baseados em mainframe, plataformas ERP instaladas localmente a correr em sistemas operativos sem suporte e bases de dados desenvolvidas por medida escritas em linguagens mais antigas como COBOL ou Pascal.
A migração de sistemas legados é o processo de transferência de uma aplicação, sistema ou conjunto de dados obsoleto do seu ambiente original para um ambiente mais moderno. O destino pode ser uma plataforma cloud, uma nova infraestrutura instalada localmente ou uma solução moderna de software como serviço. A migração pode envolver poucas alterações ao código existente (realojamento) ou uma reformulação completa da arquitetura da aplicação (reengenharia), consoante os objetivos de negócio e o estado do sistema legado.
A estrutura dos 7 R's descreve as principais estratégias para migrar ou modernizar aplicações: Rehost (migração lift and shift para um novo ambiente com alterações mínimas), Replatform (migração com otimizações específicas), Refactor (redesenho do código para capacidades nativas da cloud), Rearchitect (reestruturação significativa da aplicação), Rebuild (reescrita de raiz com tecnologias modernas), Replace (retirada do sistema legado e adoção de um novo produto comercial) e Retain (manter a aplicação no lugar se a migração ainda não for justificada).
Na maioria dos casos, sim, mas a resposta depende do custo total de propriedade ao longo do tempo. Manter um sistema envelhecido implica tipicamente custos de suporte crescentes, vulnerabilidades de segurança cada vez maiores, escassez de talento para tecnologias obsoletas e oportunidades perdidas pela incapacidade de integrar capacidades modernas. Quando o custo acumulado de manter o sistema legado em funcionamento supera o investimento pontual de migração ou substituição, e quando o risco empresarial de permanecer é superior ao risco de migrar, a substituição é geralmente a melhor decisão.
Saiba o que é a certificação PCI DSS, quem precisa dela, os passos para a obter, os custos envolvidos e como preparar a sua organização para a...
Descubra o que é a inteligência de dados, como funciona, quais as principais funcionalidades e como construir uma estratégia eficaz para a sua...
Descubra o que é um LMS, como transforma a formação online nas empresas e como escolher e implementar a plataforma certa para a sua organização.
Seja o primeiro a receber as melhores práticas e tendências em adoção digital e marketing B2B SaaS. Descubra como engajar melhor seus usuários, otimizar suas ferramentas de trabalho e acelerar a adoção de softwares com base nas experiências do ecossistema Lemon Learning.