Skip to main content

Relatório do ecossistema JVM 2018 - Sobre sua plataforma e aplicação

Escrito por
Headshot of Andrew Binstock

Andrew Binstock

17 de outubro de 2018

0 minutos de leitura

Boas-vindas à maior pesquisa já realizada com desenvolvedores Java. Os dados apresentados neste relatório foram obtidos em mais de 10.200 questionários. Se você respondeu à pesquisa, muito obrigado por reservar um tempo para compartilhar sua experiência em benefício de outras pessoas. Este relatório está dividido em quatro publicações:

  1. Relatório do ecossistema JVM 2018 - Sobre seu JDK

  2. Relatório do ecossistema JVM 2018 - Sobre suas ferramentas

  3. Relatório do ecossistema JVM 2018 - Sobre sua plataforma e aplicação

  4. Relatório do ecossistema JVM 2018 - Sobre seus processos e você

Também preparamos um belo relatório em PDF, feito com carinho, que reúne todas essas informações em um único arquivo para download.

BAIXE O RELATÓRIO DO ECOSSISTEMA JVM 2018!

Sobre sua plataforma

15. Quais plataformas de nuvem você usa?

Com base nos dados, podemos afirmar que 57% dos participantes usam algum tipo de plataforma de nuvem.

Gráfico de rosca mostrando 57% de respostas “Sim, fazemos isso” e 43% “Não, não fazemos”.

Considerando apenas os participantes que usam plataformas de nuvem, vemos a Amazon Web Services (AWS) na liderança, com quase dois terços dos votos. Microsoft Azure e Google Cloud Platform vêm em seguida, com 18% e 20%, respectivamente. Red Hat OpenShift e Oracle Cloud também estão ganhando espaço.

Gráfico de barras horizontais que compara plataformas de nuvem: Amazon AWS, 63%; Google Cloud, 20%; Azure, 18%; e outros provedores, de 3% a 10%.

16. Quais abordagens de nuvem você usa?

Os contêineres lideram, com 43%, enquanto as máquinas virtuais continuam na disputa, com 33%. Como tecnologia relativamente nova, Serverless/FaaS tem uma presença expressiva: quase 1 em cada 10 participantes adota essa abordagem. O PaaS, que existe há bem mais tempo, fica em um patamar semelhante, com 10%. Um em cada três participantes não usa nenhuma abordagem de nuvem.

Gráfico de barras que mostra abordagens de nuvem: contêineres, 43%; máquinas virtuais e nenhuma, 33% cada; PaaS, 10%; sem servidor/FaaS, 9%; e outras, 1%.

17. Quais ferramentas de implantação contínua ou automação de releases você usa?

Quase 1 em cada 2 participantes não usa nenhuma ferramenta de implantação contínua ou automação de releases. Esse número pode ser ainda maior, já que quase 1 em cada 5 não sabe quais ferramentas são usadas em CD ou na automação de releases. É um tanto surpreendente ver o bash tão popular quanto Chef e Puppet. Mas, pensando bem, por que nos surpreendemos? Todo mundo adora bash! Ansible é a principal ferramenta de CD, com 16%.

Gráfico de barras que mostra as ferramentas usadas para entrega contínua: Ansible 16%, bash 12%, Chef 5%, Puppet 8%, outras 9%, não sei 18% e não usamos 43%.

Sobre sua aplicação

18. Quais outras linguagens (que não sejam da JVM) sua aplicação usa?

No mundo poliglota de hoje, seria ingênuo supor que as linguagens da JVM são as únicas usadas em aplicações JVM. Na verdade, mais da metade dessas aplicações também usa JavaScript no front-end, 1 em cada 5 usa Python e quase 1 em cada 4 usa Node.js. Como seria de esperar, muitos projetos também usam SQL.

Gráfico de barras horizontais que mostra o uso de linguagens de programação: JavaScript no front-end 57%, SQL 56%, Node.js 23%, Python 21% e outras linguagens.

19. Quais frameworks web você usa?

Poucas coisas expressam melhor o domínio do Spring no ecossistema Java do que este gráfico. Com 4 em cada 10 desenvolvedores usando Spring Boot em suas aplicações, é interessante ver que, pela primeira vez, ele ultrapassou o framework Spring MVC. JSF aparece logo atrás, com respeitáveis 19%, e Struts, apesar das notícias constantes sobre vulnerabilidades de execução remota de código, ocupa um sólido quarto lugar, adotado por quase 1 em cada 10 desenvolvedores. Mais de 1 em cada 5 desenvolvedores provavelmente se orgulha do tamanho reduzido de suas aplicações, que não precisam de nenhum framework web.

Gráfico de barras horizontais sobre o uso de frameworks web para JVM: Spring Boot 40%, Spring MVC 36%, JSF 19% e nenhum 21%; os demais frameworks ficam abaixo de 10%.

20. Quais frameworks ORM você usa?

Mais de 1 em cada 2 desenvolvedores usa Hibernate em suas aplicações. Quase 1 em cada 4 prefere o bom e velho JDBC. E, é claro, quem desenvolve com Spring pode usar o Spring JDBC template, adotado por 23%. Um em cada 5 desenvolvedores não usa nenhum framework ORM para acessar os dados. (Os participantes podiam escolher mais de uma resposta, por isso os totais não somam 100%).

Gráfico de barras que mostra o uso de provedores de ORM: Hibernate 54%, JDBC puro 23%, Spring JDBC Template 23%, EclipseLink 10%, MyBatis 6%, Outros 6% e Nenhum 20%.

21. Qual banco de dados você usa em produção?

Mais uma vez, Oracle Database ocupa o primeiro lugar, usado em produção por quase 3 em cada 10 aplicações. MySQL e PostgreSQL são fortes concorrentes, com 21% e 20%, respectivamente. MongoDB é o banco de dados NoSQL mais usado, com 5%.

Gráfico de barras horizontais que mostra a popularidade dos bancos de dados: Oracle Database, 27%; MySQL, 21%; PostgreSQL, 20%; e outros bancos de dados, de 1% a 9%.

22. Qual servidor de aplicações você usa em produção para sua aplicação principal?

Mais de 4 em cada 10 participantes usam Tomcat como servidor de aplicações. O favorito da comunidade, rápido, leve e de código aberto, lidera há bastante tempo, e não parece que isso vá mudar tão cedo. JBoss e WildFly vêm logo atrás, com 15%. Na categoria de servidores de aplicações para grandes empresas, WebLogic está um pouco à frente do WebSphere. A categoria “Outros” inclui TomEE e Liberty Profile, ambos com 1%, os mais usados nesse grupo.

Gráfico de barras que mostra a popularidade dos servidores de aplicação: Tomcat 41%, JBoss/Wildfly 15%, Jetty 9%, WebLogic 6%, WebSphere e Glassfish/Payara 5% cada.

23. Você desenvolve no mesmo servidor de aplicações que usa em produção?

Apesar dos riscos evidentes, mais de um terço dos participantes desenvolve em um servidor diferente daquele usado em produção, trocando a possível consequência de falhas pela praticidade. Curiosamente, quem afirma usar servidores de aplicações diferentes (ou nenhum) durante o desenvolvimento utiliza uma grande variedade de aplicações e servidores em produção. Esperávamos encontrar principalmente servidores de aplicações maiores, voltados a sistemas monolíticos, que poderiam dificultar o desenvolvimento local. Mas as proporções foram semelhantes.

Gráfico de rosca mostrando 64% de respostas “Sim” e 36% de respostas “Não”.

24. Quantas dependências diretas de código aberto sua aplicação principal tem?

Seria interessante saber quantas pessoas precisaram verificar quantas dependências diretas suas aplicações têm. Aposto que foram a maioria de vocês! Ainda bem que não perguntei também sobre dependências diretas e transitivas! Na verdade, quase 1 em cada 4 participantes admite não saber quantas dependências tem. Isso pode ser explicado pela forma como a aplicação é distribuída em um sistema de build mais complexo. Os resultados mostram que menos de 1 em cada 20 participantes não usa dependências de código aberto, enquanto 72% usam. Se excluirmos quem não sabe, vemos que 95% — ou 19 em cada 20 participantes — usam dependências de código aberto em suas aplicações. Isso demonstra o quanto a adoção do código aberto avançou e também a importância de garantir que essas bibliotecas de terceiros ofereçam a segurança, a qualidade e a disponibilidade necessárias para a aplicação como um todo.

Gráfico de barras que mostra a quantidade de dependências de código aberto: 0 (4%), 1–5 (15%), 6–10 (15%), 10–20 (18%), mais de 20 (25%) e não sei (23%).

Resumo: plataforma e aplicação

  • Mais de 6 em cada 10 desenvolvedores que usam plataformas de nuvem fazem implantações na AWS

  • Mais de 4 em cada 10 desenvolvedores usam contêineres

  • Mais de 4 em cada 10 desenvolvedores não usam nenhuma ferramenta de CD

  • Quase 6 em cada 10 desenvolvedores também incluem JavaScript de front-end na aplicação

  • Quase 1 em cada 4 desenvolvedores também usa Node na aplicação

  • 4 em cada 10 desenvolvedores usam Spring Boot

  • Mais de 1 em cada 2 desenvolvedores usam Hibernate em suas aplicações

  • Quase 3 em cada 10 desenvolvedores usam Oracle Database em produção

  • 4 em cada 10 desenvolvedores usam Tomcat em produção

  • 1 em cada 4 desenvolvedores não sabe quantas dependências de código aberto sua aplicação inclui

  • 19 em cada 20 desenvolvedores usam dependências de código aberto em suas aplicações

O relatório tem mais conteúdo! Qual seção você quer ler a seguir?

  1. Relatório do ecossistema JVM 2018 - Sobre seu JDK

  2. Relatório do ecossistema JVM 2018 - Sobre suas ferramentas

  3. Relatório do ecossistema JVM 2018 - Sobre sua plataforma e aplicação

  4. Relatório do ecossistema JVM 2018 - Sobre seus processos e você

BAIXE O RELATÓRIO DO ECOSSISTEMA JVM 2018!

Leia mais

Blog

Modelos de ponta encontraram as vulnerabilidades. Só o atacante encontrou as cadeias.

A análise estática encontrou as falhas, mas só os testes de ataque em aplicações ativas provaram como elas poderiam ser encadeadas para causar invasões. Uma comparação entre Evo COS, Claude Security e Claude Code Security.

feature insights context
Blog

Os ataques autônomos já chegaram. A defesa precisa acompanhar o ritmo.

Os atacantes autônomos estão reduzindo o tempo disponível para a defesa. Saiba como a descoberta, a correção, a validação e a prevenção contínuas ajudam as equipes de segurança a acompanhar esse ritmo.

Blog

Por que agentes de programação com IA continuam criando falhas de controle de acesso

Agentes de programação com IA podem gerar uma lógica de autorização que compila e passa pela revisão, mas permite que um tenant acesse os dados de outro. Saiba por que é difícil detectar falhas de controle de acesso e como evitá-las.