Artigo traduzido do site da RedHat
Você já deve ter visto esta palavra engraçada circulando na comunidade de desenvolvimento Java: Quarkus . E, você deve ter visto as últimas notícias da Red Hat sobre isso, que estamos entusiasmados em dar as boas-vindas ao Quarkus como um Red Hat Runtime oficial .
Mas, o que isso significa e por que você deveria estar animado com o Quarkus? Esta postagem vai mergulhar no que significa levar Java para o mundo de desenvolvimento de aplicativos nativos da nuvem, moderno, distribuído e Kubernetes em que estamos hoje, e por que isso é tão importante.
Primeiro, me lembre o que é Quarkus?
Quarkus é uma estrutura Java nativa do Kubernetes adaptada para GraalVM e HotSpot, criada a partir das melhores bibliotecas e padrões Java da categoria. O objetivo do Quarkus é fazer do Java uma plataforma líder em Kubernetes e ambientes sem servidor, oferecendo aos desenvolvedores uma estrutura para abordar uma ampla gama de arquiteturas de aplicativos distribuídos.
O Quarkus pode ajudar a proporcionar economia de custos por meio de tempos de inicialização mais rápidos, aumento e redução automática de microsserviços com base na necessidade e uso e entrega uma densidade mais alta ao reduzir significativamente o tamanho do aplicativo e a área de cobertura da imagem do contêiner.
O Quarkus oferece recursos projetados para ajudar a aumentar a produtividade do desenvolvedor, economia de custos, tempo de lançamento no mercado mais rápido e confiabilidade. Outro dos principais objetivos de design do Quarkus é ser divertido de usar, e quem não quer um pouco de alegria em seu ambiente de desenvolvimento?
Certo, ótimo! Mas por que o Java nativo do Quarkus e do Kubernetes é tão importante?
Apesar do Java ter sido introduzido há 25 anos, ele continua sendo uma das, se não a mais popular linguagem de programação hoje. Em maio de 2019, de acordo com SlashData, havia mais de 7,6 milhões de desenvolvedores Java em todo o mundo.
Java foi originalmente projetado para pilhas de aplicativos monolíticos, não nativos da nuvem, aplicativos modernos e aplicativos Java podem ser lentos na inicialização e carregar muita memória para serem funcionais nas novas estruturas leves. Quarkus tem como objetivo trazer Java para o futuro.
O Quarkus foi criado para fornecer aos desenvolvedores a capacidade de usar suas habilidades em Java e o ecossistema Java mais amplo para lidar com esses novos ambientes de implantação e arquiteturas de aplicativos. É importante que o Java seja capaz de escalar nos novos ambientes de aplicativos Kubernetes, porque o Kubernetes está cada vez mais sendo usado para aplicativos essenciais aos negócios.
O Kubernetes é um ambiente muito leve, dinâmico e com recursos limitados que tem um tempo de inicialização rápido e baixo consumo de memória, o que está em contraste direto com a forma como o Java opera. Embora o Java ainda seja a linguagem dominante na programação empresarial, ele pode criar sobrecarga desnecessária em um ambiente Kubernetes, onde os contêineres são aumentados ou diminuídos rapidamente e com tempos de vida relativamente curtos.
Especialmente agora, com forças de trabalho distribuídas, é crucial que os aplicativos possam ser ativados usando o mínimo de recursos e largura de banda. O Quarkus move muito desse processamento para a fase de construção, como otimização de frameworks de biblioteca, minimização de dependências e eliminação de código não utilizado para reduzir significativamente o tempo de inicialização e as necessidades de memória do aplicativo. Isso significa que Java pode ser usado com contêineres que é exatamente o que nós – e os milhões de desenvolvedores Java queremos – não há razão para que eles tenham que aprender novas linguagens de programação apenas para usar contêineres!
Não existem linguagens de programação mais recentes que podem substituir o Java? Por que é tão importante levarmos Java para o futuro?
Ok, esta é uma pergunta interessante. Sim, vimos um influxo de novas linguagens chegar ao mainstream nos últimos anos, incluindo Ruby, Go e Rust. No entanto, por mais brilhantes que esses novatos possam parecer, essas não são linguagens usadas por desenvolvedores de aplicativos, ao contrário, são linguagens de desenvolvimento de sistema, pois não têm recursos para clientes empresariais.
Isso significa que os sistemas de reserva de companhias aéreas, por exemplo, escolherão Java em vez dessas linguagens porque Java oferece o rigor da segurança de tipo e dos tempos de compilação. Na verdade, o mundo das linguagens de programação se move bem devagar e, conforme comprovado por C e C ++, pode levar uma década ou mais para que uma linguagem se torne realmente robusta e otimizada para ser uma peça fundamental da pilha. Os desenvolvedores não correrão riscos com novas linguagens se não for necessário, especialmente naquelas com menos de 10 anos. Portanto, por esses padrões, o Java com 25 anos ainda é bastante jovem e está bem posicionado para ser capaz de evoluir em novos ambientes.
Considerando todos os desenvolvedores Java do mundo e o grande número de aplicativos essenciais para os negócios que são construídos em Java, é fundamental que o Java seja compatível com os aplicativos nativos do Kubernetes. O Kubernetes provou ser um sistema incrivelmente bem-sucedido para implantar, dimensionar e gerenciar aplicativos em contêineres, mas para ser uma opção de longo prazo, ele precisa ser compatível com Java.
Um dos princípios básicos do Quarkus era trazer alegria de volta ao trabalho do desenvolvedor Java empresarial. Isso ocorre porque o Quarkus permite que os desenvolvedores Java usem seu conhecimento existente para construir microsserviços nativos da nuvem e aplicativos orientados a eventos. Isso é importante para a empresa porque significa que os desenvolvedores não precisam perder tempo sendo treinados em novos idiomas, eles podem preservar seus talentos existentes enquanto padronizam em um único idioma para desenvolver microsserviços nativos da nuvem.
Por que a Red Hat está comprometida em construir o futuro do Java?
A Red Hat tem uma longa história com a comunidade Java e é um líder dentro dela. Na verdade, a Red Hat é membro da comunidade OpenJDK desde 2007 e é um dos maiores contribuidores do projeto.
Estamos comprometidos com um processo comunitário aberto e pretendemos continuar na vanguarda do futuro do Java. Também pretendemos manter o Java o mais orientado para a comunidade possível, baseando-nos em nossas raízes e ethos Open Source.
Quando falamos com os clientes, ouvimos perguntas sobre a fragmentação do ecossistema Java, com vários fornecedores oferecendo seus próprios produtos Java proprietários. A Red Hat, além de especialistas em projetos populares de código aberto Java nativos da nuvem, é administradora da comunidade Quarkus.
Acreditamos no trabalho aberto e em colaboração, e estamos procurando trabalhar com você para liderar a introdução do Java no futuro nativo do Kubernetes.