Por Niklas Heidloff, Senior Developer Advocate da IBM
Embora as tecnologias de nuvem e os modelos de programação modernos, como aplicações nativas em nuvem, existam há vários anos, a maioria das aplicações de negócios ainda é executada on-premises e/ou usa stacks clássicos e servidores de aplicações.
Nem todas as aplicações precisam, devem ou podem ser modernizadas. No entanto, para muitas aplicações, isso faz todo o sentido. Neste artigo, listo minhas 10 principais razões pelas quais as aplicações de negócios devem ser modernizadas.
Em geral, os objetivos da modernização de aplicações são reduzir custos, ser mais ágil e fornecer melhores experiências ao usuário.
Muitas vezes, as empresas hesitam em investir na modernização, mas esses investimentos costumam ter retorno rápido.
1. Reduzir o uso de recursos
A maioria das aplicações de negócios é executada em máquinas virtuais. Em vez disso, executar as mesmas aplicações em contêineres economiza muitos recursos, especialmente memória. Além disso, as plataformas de orquestração de contêineres podem equilibrar as cargas de trabalho muito melhor do que as máquinas virtuais. Da mesma forma, bibliotecas e ferramentas de desenvolvimento modernas podem economizar recursos. Um ótimo exemplo é o OpenJ9, que requer menos da metade da memória em comparação com outras JVMs. O uso de bibliotecas e contêineres modernos muitas vezes nem exige nenhuma alteração do código.
2. Reduzir os custos de licenciamentos
As ofertas de software comercial clássico têm taxas de licenciamento. Devido ao sucesso do código aberto, muitas dessas ofertas clássicas podem ser substituídas por software de código aberto para o qual, em muitos casos, é fornecido suporte comercial. Um bom exemplo é o WebSphere ND versus a versão de código aberto Open Liberty. Os projetos de código aberto também costumam ter comunidades fortes que fornecem ajuda e reparos gratuitos.
3. Obter mais agilidade e tempo de lançamento mais rápido no mercado
As implantações de novas versões de aplicações monolíticos costumam ser difíceis, demoradas e perigosas. Com contêineres e canais, você pode obter entregas contínuas para que as implantações possam ser feitas com mais frequência. Por exemplo, microsserviços permitem que você atualize partes separadas e CI/CD permite que você reverta para versões em execução em caso de problemas.
4. Permitir o desenvolvimento de novas funcionalidades mais importantes
Muitas aplicações de negócios cresceram ao longo dos anos e foram desenvolvidas por pessoas diferentes, geralmente levando a dívidas técnicas. A dívida técnica consome o orçamento para manter as aplicações em execução e torna difícil desenvolver novas funcionalidades mais importantes. É por isso que faz sentido reestruturar as aplicações que devem escalar significativamente.
5. Executar aplicações de missão crítica em uma plataforma preparada para o futuro
Em muitos casos, as empresas definiram e criaram estratégias para escolher em quais plataformas executar aplicações essenciais para os negócios. Por exemplo, OpenShift, a distribuição do Kubernetes, pode ser executado on-premises e em diferentes nuvens públicas, razão pela qual muitas empresas o escolheram como uma plataforma estratégica. A modernização de aplicações para execução em OpenShift garante uma plataforma estável de longo prazo e suporte contínuo das equipes de operações.
6. Melhorar a eficiência operacional
Quando todas as aplicações de negócios são executadas em plataformas de contêiner, como Kubernetes ou OpenShift, elas podem ser gerenciadas de forma consistente. Tudo é um contêiner, não importa quais linguagens de programação e stacks de aplicações sejam usadas. Isso torna as operações mais fáceis. Mas, para ser justo, isso também requer mudanças organizacionais e culturais que demoram a se estabelecer.
7. Aumentar a produtividade do desenvolvedor e aproveitar a força de trabalho
Os contêineres aumentam a produtividade do desenvolvedor, uma vez que abordam o problema “funciona na minha máquina”. Além disso, a configuração dos ambientes de desenvolvimento é mais rápida. Como os desenvolvedores são mais produtivos, eles se divertem mais, o que significa que são mais motivados e eficientes. Por meio de contêineres, as aplicações de negócios podem ser poliglotas, já que diferentes serviços podem ser implementados em diferentes linguagens. Isso permite que os empregadores encontrem mais desenvolvedores, pois nem todos os desenvolvedores estão familiarizados com Java ou Cobol.
8. Melhorar as experiências do usuário
Os usuários de aplicações decidem se elas são boas ou não, portanto, boas experiências do usuário são fundamentais. Aplicações mais antigas costumam ter pontos fracos que podem ser resolvidos com tecnologias modernas. Por exemplo, novas interfaces de usuário, aplicações móveis, APIs, tempos de resposta mais rápidos, resiliência e muito mais.
9. Lidar com aplicações legados caros
Às vezes, as aplicações legadas ficam muito caras. Por exemplo, após o término do suporte oficial para as plataformas ou servidores usados ou quando os desenvolvedores não puderem ser encontrados para manter o código. Em alguns casos, essas aplicações podem estar desatualizadas. Em outros casos, pode ser possível substituí-las por ofertas de SaaS. Por exemplo, uma aplicação de planejamento de férias que tem 20 anos pode ser substituída por várias ofertas SaaS ou de código aberto.
10. Manter os gerentes felizes
Este não é realmente um bom motivo, mas sim algo que ouvi dos desenvolvedores. Para certas aplicações, não faz sentido modernizá-las. No entanto, para os desenvolvedores, isso significa ser capaz de aprender novas habilidades e quem não gosta disso?
Comunicação IBM
Camila Perrud
E-mail: [email protected]
Assessoria de imprensa IBM
Weber Shandwick
E-mail: [email protected]