Ir para o Conteúdo

A importância da modernização aplicacional num ambiente cloud

O que é Application Modernization?

Antes de podermos compreender os benefícios da modernização aplicacional, temos de entender o seu significado.

Application Modernization é o processo de transformação de infraestruturas, arquitetura e características de aplicações legacy. Normalmente, quando pensamos em legacy applications, pensamos em aplicações monolíticas e em servidores on-prem. Elas têm as suas vantagens, mas a questão é:

Será que essas vantagens ultrapassam as desvantagens, especialmente tendo em consideração o benefício de cloud computing?

Vejamos, por exemplo, uma plataforma de e-commerce. Numa abordagem monolítica, a arquitetura seria algo como está representado no diagrama que se segue:

A aplicação seria fácil de desenvolver, testar e gerir num sistema server-side.

Por outro lado, existe uma grande dependência entre os vários componentes, e também, uma dependência da framework, uma vez que toda a solução tem a mesma tecnologia de programação por trás, e isso será um desafio se, por exemplo, quisermos adicionar capacidades de reporting à aplicação. O deploy de uma nova versão é de alguma forma também um desafio, uma vez que requer a implementação total da aplicação e provavelmente um período de paragem do sistema em produção. Agora imagine que, a dada altura, existe uma enorme procura do sistema de pagamento. Não existe uma forma fácil de dimensionar o motor de pagamento sem dimensionar toda a solução ou aumentar a capacidade do servidor que aloja a solução.

Uma das soluções para isto é ter uma aplicação desacoplada e alojada na cloud, tirando partido de uma arquitetura de microserviços.

Com esta abordagem, é mais fácil implementar apenas um componente, uma vez que estão separados e comunicam entre si através de APIs. Estando os componentes relativamente separados, cada um deles pode ser implementado utilizando a tecnologia que mais se adequa às suas necessidades. 

No exemplo anterior, se existir uma enorme procura no sistema de pagamento, teremos apenas a necessidade de dimensionar esse componente horizontal ou verticalmente.

Os Benefícios

Os benefícios da modernização aplicacional são tipicamente a melhoraria da velocidade da entrega de novas funcionalidades, permitindo que outros serviços consumam as funcionalidades expostas das aplicações existentes através de API, e o re-platforming de aplicações na nuvem para fins de escala de aplicação e desempenho.

Com a modernização aplicacional, especialmente num ambiente de cloud como o AWS, podemos alcançar um menor time to market tendo a capacidade de construir rapidamente novas funcionalidades, uma vez que removemos a sobrecarga operacional e automatizamos muitos processos, acelerando o ciclo de desenvolvimento e lançamento, o que permitirá aos developers desenvolverem rapidamente novas funcionalidades. Além disso, os processos automatizados de teste e lançamento reduzem as taxas de erro, pelo que os produtos estão prontos para o mercado mais rapidamente.

Com uma arquitetura modular, as alterações a qualquer componente individual da aplicação podem ser feitas rapidamente, e com um risco menor para toda a aplicação, para que as equipas possam experimentar novas ideias com mais frequência, aumentando a capacidade de inovação

As aplicações modernas são mais fiáveis na entrada em produção, automatizando os procedimentos de teste e monitorização em cada fase do ciclo de vida do desenvolvimento. Quaisquer questões podem ser avaliadas e solucionadas em tempo real.

Com um modelo pay-for-value, as aplicações modernas beneficiam de uma redução de custo,  evitam o aprovisionamento excessivo de recursos, e evitam também pagar por recursos que não estão a ser usados. Os custos de manutenção são também reduzidos uma vez que a gestão de infraestrutura é mais simples.

É importante ter em consideração que a migração de aplicações via lifting and shifting não nos dá automaticamente os benefícios da modernização aplicacional nomeadamente: 

  1. Elasticity
  2. Resiliency
  3. Ease of deployment 
  4. Management

Também não moderniza automaticamente a sua cultura e processos para permitir o desenvolvimento de software de alto desempenho. Modernizar significa trabalhar o ambiente de aplicação na forma em que se encontra hoje (muito provavelmente, legacy e monolítica) e transformá-la em algo mais ágil, elástico, e permitindo alta disponibilidade. Ao fazê-lo, poderá transformar o seu negócio numa organização moderna.

A Estratégia

Para ter sucesso na modernização aplicacional , é importante ter em mente as necessidades do negócio e depois concentrar-se nas tecnologias. A Amazon Web Services (AWS) aborda a modernização de aplicações dividindo o caminho da modernização em segmentos discretos que se centram em três fases: assess, modernize, and manage.

A chave para o sucesso de uma modernização aplicacional está muito ligada à estratégia que se aplica na escolha de aplicações onde os benefícios da cloud ( performance, scale e implementação de novas funcionalidades) permitem determinar um caminho claro para melhorar a experiência do cliente e o ROI.

Seguindo a estratégia AWS para a modernização aplicacional devemos:

  • Avaliação da prontidão da modernização aplicacional na Cloud AWS
  • Ter uma abordagem gradual para modernizar as aplicações na Cloud AWS
  • Separação de monólitos em microserviços
  • Integração de microserviços utilizando os serviços serverless AWS
  • Permitir a persistência de dados em microserviços

À medida que a jornada para a cloud se aproxima, as organizações têm procurado formas de acelerar a adoção da cloud e de uma abordagem prescritiva para a modernização da aplicação. Há benefícios importantes ligados à modernização aplicacional e a extensão desses benefícios está ligada à importância da aplicação para o negócio.