![7 dicas para promover uma comunicação mais forte em projetos terceirizados](https://optimuscloud.com.br/wp-content/uploads/2024/05/1715121844_7-dicas-para-promover-uma-comunicacao-mais-forte-em-projetos-150x150.jpg)
7 dicas para promover uma comunicação mais forte em projetos terceirizados
7 de maio de 2024![Agile, DevOps, engenharia de plataforma A confusão paralisa os desenvolvedores](https://optimuscloud.com.br/wp-content/uploads/2024/05/1715131325_Agile-DevOps-engenharia-de-plataforma-A-confusao-paralisa-os-desenvolvedores-150x150.jpg)
Agile, DevOps, engenharia de plataforma A confusão paralisa os desenvolvedores
7 de maio de 2024A VMware da Broadcom está lançando uma nova ferramenta chamada “Application Advisor” para ajudar a automatizar o processo de atualização de aplicativos Spring para versões mais recentes usando uma estrutura de código aberto chamada OpenRewrite.
Michael Minella, diretor de P&D OSS Spring na Divisão Tanzu da Broadcom, disse ao The New Stack que: “Estamos trabalhando em uma ferramenta que será lançada no próximo mês (maio), chamada Application Advisor. E o que isso significa é que você precisa do conhecimento de seus aplicativos Spring Boot, então você o aponta para seu repositório e, em seguida, usando a estrutura OpenRewrite, ele pode executar receitas em seu aplicativo para fazer as atualizações para você.”
Minella explicou que esta é uma atualização mais profunda com um conhecimento mais profundo do que está acontecendo do que o Dependabot do GitHub porque o OpenRewrite pode refatorar seu código. Portanto, se uma API for alterada como parte de uma atualização, ela poderá refatorar seu código para aproveitar essas alterações.
O Application Advisor examinará seu arquivo de construção em seu repositório e verá qual versão do Spring Boot você está usando e fará uma atualização de versão conforme necessário.
“A parte difícil do que precisa ser mudado deveria ser automatizada”, disse Minella.
Além disso. o Application Advisor “é uma ferramenta comercial de código fechado que estamos desenvolvendo”, disse ele.
Novidade nas empresas
A Netflix, por exemplo, deu uma palestra no ano passado no SpringOne sobre sua abordagem para se manter atualizado. “Eles têm uma equipe que está construindo essas receitas e algumas ferramentas em torno desse tipo de capacidade”, disse ele.
“Mas este tipo de capacidade é definitivamente novo para a maioria das empresas”, disse Minella. “É algo que quando conversamos com as empresas, muitas delas olham para essas atualizações – seja Spring ou Java – elas estão olhando para isso como um tipo de atualização que ocorre uma vez em uma geração. Então, eles dirão que a cada três ou cinco anos farei a atualização. Mas com a taxa de mudança que está acontecendo com o Java e tudo o que é construído sobre ele, esse não é um caminho prático para a maioria das empresas”.
Mantendo o ritmo com a cadência
O ritmo das atualizações do Java – com uma cadência de seis meses – torna arriscado permanecer em versões mais antigas.
“Quando você considera que o Java é lançado a cada seis meses, o Spring Boot é lançado a cada seis meses, o Hibernate oferece suporte de três a seis meses e as atualizações de versão necessárias estão ficando mais agressivas”, disse Minella. “O Spring passou do Java 8 para o Java 17; Jakarta EE passou de 8 para 17 em sua linha de base ou está em processo de fazer isso. Portanto, a ideia de que você pode relaxar nessas versões e permanecer seguro, seguro e com bom desempenho é algo que nós, como indústria, teremos que avaliar.”
Spring simplifica o desenvolvimento Java, fornecendo módulos e estruturas pré-construídas para necessidades comuns de aplicativos, como APIs da web, segurança, acesso a dados, etc., disse Minella.
No entanto, a Broadcom deve proceder com cuidado na forma como lida com seu papel de suporte ao ecossistema de desenvolvedores Java e ao código aberto em geral, disse Brad Shimmin, analista da Omdia. “Como vimos com a Red Hat e a Oracle nos últimos dois anos, qualquer tipo de mudança de licenciamento/suporte pode ter consequências de longo alcance e às vezes imprevistas”, disse ele.
Preso no Java 8?
Muitas empresas estão presas a versões mais antigas do Java, como o Java 8, pois a atualização costumava ser um processo lento. No entanto, desde o Java 9, novas versões são lançadas a cada 6 meses, com versões de suporte de longo prazo (LTS) a cada 2-3 anos.
“Com base em pesquisas, uma pequena maioria (55%) do ecossistema Spring é pelo menos Java 17”, disse Minella. “No entanto, muitas empresas ainda estão presas ao Java 8.”
Estar em uma versão Java antiga prejudica todo o ecossistema de aplicativos construído sobre ela, tornando mais difícil lidar com vulnerabilidades de segurança e melhorias de desempenho.
Além disso, os riscos de segurança são maiores ao executar versões mais antigas de bibliotecas sobre uma versão Java desatualizada, pois fica mais difícil mitigar rapidamente quaisquer CVEs anunciados.
Automatize atualizações como CI/CD
“Em nossa pesquisa mais recente, uma das coisas que vimos foi que a maioria das pessoas, do ponto de vista da atualização, ainda lida com isso a partir de uma abordagem legada, ‘faça essas atualizações manualmente’”, disse Minella.
Ele prevê uma mudança em direção a uma atualização de plataforma mais automatizada, semelhante à forma como DevOps e CI/CD melhoraram o ciclo de vida de desenvolvimento de software.
“Acho que isso será a próxima coisa que acontecerá, nos próximos cinco anos, você verá ferramentas e processos sendo implementados nas empresas que lhes permitam se manter atualizados com mais frequência e fazer atualizações contínuas, assim como fazemos hoje em dia com integração e implantação contínuas”, disse Minella.
OpenRewrite e Moderno
A Broadcom baseou seu Application Advisor no OpenRewrite e trabalhou com Moderne, o criador do OpenRewrite.
“Não acredito que nossa equipe esteja familiarizada com o Application Advisor, embora possa ser um novo nome para algo que conhecemos”, disse Pat Johnson, Diretor de Marketing de Produto da Moderne. “No entanto, sabemos que a VMware/Broadcom está trabalhando em recursos comuns de reescrita do Spring para reutilizar elementos de como a equipe do Spring usa e executa o OpenRewrite. OpenRewrite está integrado ao Spring Boot Migrator.”
OpenRewrite refatora o código sem impor um estilo de codificação rígido. Ele permite que os desenvolvedores automatizem simultaneamente alterações de código em todo um repositório, facilitando migrações de estrutura e corrigindo vulnerabilidades com eficiência. Os desenvolvedores podem cobrir muito mais código com mais rapidez, disse Johnson.
A ferramenta emprega uma abordagem baseada em receita para transformação de código. O sistema baseado em receitas permite que transformações simples sejam compostas em receitas complexas para tarefas de refatoração mais amplas. Isso permite que os desenvolvedores automatizem as alterações sem aprender uma nova linguagem de programação.
O ecossistema OpenRewrite fornece atualmente mais de 2.400 receitas para transformar código.
“Por meio desses programas, o ecossistema é capaz de oferecer correções de código simples para migrações de código mais complexas, como a receita de migração Spring Boot 3.2, que automatiza mais de 1.700 etapas”, disse Johnson ao The New Stack. “Isso só é possível através de receitas conduzidas pela comunidade – são necessárias muitas contribuições. Nenhuma empresa sozinha pode conseguir isso.”
OpenRewrite está ganhando força na indústria. O Amazon Q usa OpenRewrite, e o IntelliJ IDEA da Jetbrains integrou recentemente o OpenRewrite.
Mas há uma diferença entre OpenRewrite e Moderne. Enquanto o OpenRewrite acelera a refatoração de código em repositórios individuais, o Moderne executa receitas OpenRewrite em grande escala – em milhares de repositórios – e fornece uma solução para colaboração de código em toda a empresa que reduz o tempo e os recursos necessários para refatoração, insights e gerenciamento de código, disse Johnson.
Boas-vindas do desenvolvedor
“Os desenvolvedores Java adoram aproveitar as novas capacidades da linguagem. No entanto, quando se trata de manter uma grande base de código com talvez milhares de JVMs em produção, trazer novas funcionalidades pode ser caro e arriscado”, disse Shimmin ao The New Stack. “Portanto, qualquer coisa que a Broadcom possa fazer para simplificar e agilizar a maneira como os desenvolvedores Java trazem as novas funcionalidades do Spring será muito bem-vinda pela comunidade de desenvolvimento.”
No geral, as empresas devem priorizar a atualização para versões Java mais recentes e a adoção de ferramentas para simplificar esse processo, a fim de melhorar a segurança, o desempenho e a produtividade do desenvolvimento das aplicações.
“Uma luta para os desenvolvedores, que estão entregando código, é manter suas ferramentas e estruturas atualizadas”, disse Holger Mueller, analista da Constellation Research. “O tempo de inatividade para atualizá-los é sempre um incômodo, por isso é bom para a Broadcom oferecer automação mais fácil e rápida para passar de uma versão Spring para outra. Também é um bom dado que a Broadcom continuará investindo na primavera. Não é nenhuma surpresa se tivermos algumas discussões sobre fim de vida e suporte aqui, mas é melhor ter uma ferramenta de migração/atualização do que não.”
A postagem Spring Forward: App Advisor da Broadcom facilita atualizações do Spring apareceu pela primeira vez em The New Stack.