Modernização de Aplicações: o primeiro passo para a sua transformação

Escrito por:

Publicado em:

novembro 19, 2020

Horizonte para Modernização

Quando o objetivo é modernizar aplicações legadas, olhando os números de algumas pesquisas norte americanas, aparentemente o trabalho é infinito. O mercado de software nos Estados Unidos cresceu em média 7,2% ao ano entre os anos de 2000 e 2014 alcançando U$ 475 bilhões¹. Em 2016, esse número chegou a U$ 564 bilhões². Sendo assim, esta enorme quantidade de dinheiro foi utilizada na produção e sustentação de inúmeros sistemas e uma coisa é fato: Este dinheiro não seria gasto se esses sistemas não fossem importantes!

Esses montantes financeiros são astronômicos, assim como a diversidade dos tipos de softwares construídos. É interessante pensar que todos eles foram construídos utilizando as tecnologias existentes nas épocas em que foram desenvolvidos, mas a pergunta que fica é como continuar fazendo uso desses softwares, que para muitos ganharam a alcunha de legados.

Sistemas legados são sistemas de informação que se baseiam em tecnologias desatualizadas, mas que são fundamentais para as operações do dia-a-dia da empresa³. 

Modernização de Aplicações 

O objetivo da modernização de aplicações é revitalizar aplicações construídas adicionando capacidades/conceitos que foram construídas nos últimos anos.

Evolução Tecnológica: Remover a aplicação dos servidores de aplicação pesados que demoram uma eternidade para serem iniciado, criando pequenos módulos que podem ser inicializados isoladamente (Spring Boot);

Conteinerização: A partir dos módulos que foram separados é possível criar container de cada um dos módulos (Docker) e gerir a infraestrutura por meio de uma plataforma de contêineres (Kubernetes);

DevOps + CI/CD: Fazendo uso da nova infraestrutura, o time de desenvolvimento e infraestrutura se unem, ganhando velocidade implantações pequenas e rápidas da aplicação. Para tornar isso possível é estrutura uma esteira de implantação que monitora as alterações do código (Jenkins), realiza implantações de novas versões, testa o novo código de forma automática (JUnit, BDD, Cucumber, Protractor, Selenium) e após o sucesso de todas as fases, implanta em produção;

Integração via serviços REST ou WS: Disponibilização de camada de integração da aplicação, criando a possibilidade de integração do monólito com novas aplicações da empresa;

API Management: A partir dos serviços disponibilizados, utilizar ferramenta de gestão de API para iniciar a quebra dos monólitos em domínios sem interferir a operação.

Outros artigos

Mapa de Tecnologia

 

A tecnologia e a linguagem de programação são forças que ajudam a enquadrar os sistemas como legados. Inicialmente, quando uma empresa escolhe a tecnologia a ser utilizada para construção do sistema, em geral faz comparação das características intrínsecas (sintaxe, facilidade de uso, produtividade, desempenho, portabilidade), pacotes disponíveis (frameworks), comunidade e cultura. A cultura seja da empresa ou da região é muito importante, nela enquadram-se a disponibilidade de profissionais na empresa ou no mercado, os salários, formação média e a curva de aprendizado. Uma tecnologia fica obsoleta e os profissionais param de estudá-la e suporta-la, porém o resultado é único, o sistema legado se forma um risco. Todo esse movimento acontece em conjunto, quase que num efeito manada!

Para avaliação dos problemas de uma aplicação legada, é importante conhecê-los. Ter visão dos dados mantidos, características da tecnologia que são utilizadas e mapa de dependências bidirecionais. É comum que os sistemas de uma empresa utilizem as mesmas tecnologias, isso torna mais desafiador a avaliação de modernizações, por que as tecnologias possuem mecanismos particulares de comunicação (pelo menos era assim até a chegada dos WebService e REST), o que faz inicialmente a migração ser imaginada em um modelo “BigBang”.

Critérios de elegibilidade

 

Os critérios para modernização são extremamente importantes, não são todas as aplicações que devem ser elegidas para modernização. A sua estratégia de modernização pode ter maior ou menor custo (a VMBEARS pode te ajudar a ter custo baixo) por isso é importante entender quais sistemas devem ser modernizados. Entender o que o sistema faz e como faz, e se este ainda favorece o negócio faz parte de sua avaliação.

Estudo para modernização

É bem verdade que entender um sistema legado não é simples. Ainda mais quando ele não é mais sustentado e as únicas operações de suporte são o liga e desliga. A busca para o entendimento do sistema legado a ser modernizado deve ser metódica, encarando todos os desafios em primeiro lugar.

“Para vencer, deve-se conhecer perfeitamente a terra (a geografia, o terreno) e os homens (tanto a si mesmo quanto o inimigo). O resto é uma questão de cálculo. Eis a arte da guerra.”

(Sun Tzu, A Arte da Guerra)

Um bom início para este mapa será listar: Tecnologias Utilizadas, características e frameworks utilizados na aplicação, integrações consumidas e disponibilizadas e por fim os ambientes. Cada empresa encontra-se com negócios e tecnologias distintos, portanto o mais importante é atentar-se ao método de sucesso que foque na modernização das tecnologias e arquitetura, preservando plenamente os benefícios atuais do sistema legado com a flexibilidade da nova arquitetura ou tecnologia.

Método

O método da VMBEARS para estudar e modernizar sistemas é:

1. Avaliar a arquitetura existente

A fim de criar um AS-IS de arquitetura e ter visibilidade dos desafios a serem resolvidos, o desenho inicial da arquitetura permite entender as minúcias da empresa, critérios e valores mais importantes para orientar as estratégias de modernização, e identificar os sistemas elegíeis;

2. Estratégias de Modernização

Como resultado da avaliação arquitetural é proposto cenários de modernização do sistema tendo em vista o menor impacto na transição do sistema. Neste passo são avaliadas estratégias como Encapsulamento, Replatform, Refactoring, Rearchiteture entre outras. É importante notar que para cada estratégia de modernização existe custos e impactos diferentes associados e é neste passo a melhor estratégia para o cliente é escolhido;

3. Entregas Parciais

Entregas parciais são ótimas para acelerar os benefícios da modernização e minimizam o impacto na operação dos times de suporte e infraestrutura. Do ponto de vista gerencial, essa estratégia traz melhor monitoramento do projeto e gestão das expectativas do cliente;

4. Operação Assistida

Com os novos sistemas em produção é importante passar conhecimento para os times de suporte, desta forma a fase de acompanhamento da operação permite que o time de modernização e suporte fiquem junto entendo, avaliando e realizando ajustes caso necessário. Outras. É importante notar que para cada estratégia de modernização existe custos e impactos diferentes associados e é neste passo a melhor estratégia para o cliente é escolhido.

Conclusão

 

A modernização de sistemas é imprescindível para empresas que querem continuar entregando com qualidade e atendendo o mercado com velocidade. Entender a melhor forma de modernizar o portfólio de sistemas é o ponto chave para sucesso. Existem várias formas de modernizar sistemas, mas todas exigem conhecimento para fazer as escolhas corretas. O método para executar a modernização é estudar cenário atual, escolher estratégia, entregar pequenos pacotes de grande valor para o negócio e o acompanhamento deve ser realizado com atenção, para manter o cliente continuamente satisfeito.

Outros artigos

Acompanhe as útimas novidades.

LINGUAGENS DE PROGRAMAÇÃO: JAVA

LINGUAGENS DE PROGRAMAÇÃO: JAVA

A linguagem de programação Java foi desenvolvida nos anos 90 pela Sun e hoje é uma das linguagens de programação mais utilizada no mundo, conforme Revista Exame¹. Possui uma das maiores comunidades do mundo, além de ser a principal linguagem de desenvolvimento de um...

ler mais

COMO NASCE UMA SOLUÇÃO E PRODUTO DIGITAL NA PRÁTICA?

Você sabe como nasce e são construídos os produtos digitais? Desde a conceitualização do problema de negócio, até os rituais de ideação, discussão de solução tecnológica, arquitetura, monetização, você sabe como esses detalhes são definidos e nasce uma solução digital...

ler mais
Arquitetura de Microsserviços

Arquitetura de Microsserviços

A arquitetura de microsserviços permite que as aplicações sejam desmembradas em componentes mínimos e independentes. Este tipo de arquitetura valoriza a granularidade, a leveza e a capacidade de compartilhar processos semelhantes entre várias aplicações. A vantagem...

ler mais
Entrar em contato