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:
- Elasticity
- Resiliency
- Ease of deployment
- 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.