SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Desenvolvedor de Software desde de 2005 e
Mestre em Ciência da Computação. Apaixonado
por viagens, animais e música. Adora
tecnologias que aumentem a produtividade.
Trabalha na área de arquitetura de integração de
sistemas distribuídos na BB Tecnologia e
Serviço. Pela primeira vez no Brasília Dev
Festival, vai apresentar a palestra: "Conheça o
Quarkus Java: Supersonic Subatomic Java"
https://github.com/marcuspaulo/
https://www.linkedin.com/in/marcuspaulo/
Apresentação
Conheça o Quarkus Java:
Supersonic Subatomic Java
Marcus Paulo
Introdução
QuarkusIO, the Supersonic Subatomic Java,
promete entregar pequenos artefatos, tempo de
inicialização extremamente rápido e menor tempo
para a primeira requisição.
Quando combinado com o GraalVM, o Quarkus
compila antecipadamente (AOT)
Já sei, vou ter que aprender tudo de novo?
Introdução
● Quarkus é construído com base nos padrões, não
precisamos aprender nada de novo.
● Conseqüentemente, podemos usar CDI e JAX-RS, entre
outros.
● Além disso, o Quarkus possui muitas extensões, incluindo
as que suportam Hibernate, Kafka, OpenShift,
Kubernetes e Vert.x.
GraalVM
● GraalVM é uma Java VM e JDK baseada em HotSpot /
OpenJDK, implementada em Java.
● Suporta diversas linguagens de programação
● Modos de execução adicionais, como a compilação
antecipada de aplicativos Java para inicialização rápida e
baixo consumo de memória
Características do GraalVM
● Performance (Alta performance em todas as
linguagens)
● Zero Overhead
● Execute seu código mais rápido e eficiente
● Interoperabilidade de linguagens (Poliglota)
● Compilar imagens nativas
● Ferramentas para Debug, monitoramento e profile
Demo
Demo 1 - GraalVM
GraalVM - Poliglota
Fonte: https://www.graalvm.org
NodeJS
Java
R
Demo
Demo 2 - Native Image
Caracteristicas do Quarkus
● A aplicação inicia mais rápido
● Baixo consumo de memória ram
● Kubernetes - CloudNative
● Integração com o Prothemeus (Log)
● Dockerfile é criado junto com a aplicação
● Live Reload
● Serveless
● Microserviços
Tempo de inicialização
Fonte: https://graalvm.org
Consumo de memória RAM
Fonte: https://graalvm.org
Tipos de programação
Imperativa Reativa
Fonte: https://quarkus.io/
Fonte: https://quarkus.io/
Panache
O Hibernate ORM é a implementação de JPA de fato e oferece toda a
extensão de um Mapeador Relacional de Objetos.
Isso possibilita mapeamentos complexos, mas não torna triviais os
mapeamentos simples e comuns.
O ORM do Hibernate com Panache se concentra em tornar suas
entidades triviais e divertidas de escrever no Quarkus.
Criando uma aplicação
Pacote
Nome do Projeto
Classe
Principal
Endereço URL
Demo
Demo 3 - Quarkus Panache
Criando e executando uma imagem no Docker
Extensões
Core
● Configuring Your Application
● Application Initialization and Termination
● Contexts and Dependency Injection
● Testing Your Application
● Configuring Logging
● Using SSL With Native Images
Web
● Writing REST JSON Services
● Validation with Hibernate Validator
● Using the REST Client
● Using JWT RBAC
● Using WebSockets
● Using OpenAPI and Swagger UI
● Using Fault Tolerance
Hibernate
WebSocket
Data
● Configuring your datasources
● Using Hibernate ORM and JPA
● Simplified Hibernate ORM with Panache
● Hibernate Search + Elasticsearch
● Using Infinispan Client
● Using Transactions
● Validation with Hibernate Validator
● Schema Migration with Flyway
● Reactive Postgres Client
● MongoDB Client
● Neo4j Client
Messaging
● Using Apache Kafka
● Using AMQP with Reactive Messaging
● Using Apache Kafka Streams
● Asynchronous Message Passing
Kafka
Produtor
Consumidor
Security
● Using Security
● Using JWT RBAC
● Using Keycloak to Protect JAX-RS Applications
● Using OAuth2 RBAC
Cloud
● Deploying Native Applications on Kubernetes or OpenShift
● Deploying Native Applications on Knative Kubernetes or
OpenShift
● Generating Kubernetes Resources
● Using the Kubernetes Client to Interact with a Kubernetes
Cluster
● Deploying to OpenShift using S2I
● Deploying to Microsoft Azure Cloud
Outras características
● Implementar sua própria extensão
● Escrever aplicações nativas
● Usar Kotlin
● Agendamento de tarefas
● Enviar e-mails
Dúvidas???
Referências
● https://quarkus.io/guides/
● https://www.graalvm.org/docs/
● https://cloud.oracle.com/pt_BR/iaas/devops
● https://www.infoq.com/br/news/2019/01/oracle-introduces-helidon/
● https://micronaut.io/
Muito obrigado :-)
Desenvolvedor de Software e Mestre apresenta Quarkus Java

Mais conteúdo relacionado

Mais procurados

Rodando uma API Com Django Rest Framework no Google Cloud
Rodando uma API Com Django Rest Framework  no Google CloudRodando uma API Com Django Rest Framework  no Google Cloud
Rodando uma API Com Django Rest Framework no Google CloudAlvaro Viebrantz
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJSGiovanni Bassi
 
Load Testing com VisualStudio + Azure
Load Testing com VisualStudio + AzureLoad Testing com VisualStudio + Azure
Load Testing com VisualStudio + AzureBruno Nunes Trassante
 
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers tdc-globalcode
 
Apresentação Openstack - FISL 2013
Apresentação Openstack - FISL 2013Apresentação Openstack - FISL 2013
Apresentação Openstack - FISL 2013Marcelo Dieder
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.Filipe Morelli
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasRodrigo Branas
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTGDGFoz
 
Soluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e FirebaseSoluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e FirebaseAlvaro Viebrantz
 
Oficina Puppet - Aprenda a Gerenciar Configurações
Oficina Puppet - Aprenda a Gerenciar ConfiguraçõesOficina Puppet - Aprenda a Gerenciar Configurações
Oficina Puppet - Aprenda a Gerenciar ConfiguraçõesJose Augusto Carvalho
 
Douglasesteves meetupzabbix
Douglasesteves meetupzabbixDouglasesteves meetupzabbix
Douglasesteves meetupzabbixDouglas Esteves
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerAécio Pires
 

Mais procurados (19)

Rodando uma API Com Django Rest Framework no Google Cloud
Rodando uma API Com Django Rest Framework  no Google CloudRodando uma API Com Django Rest Framework  no Google Cloud
Rodando uma API Com Django Rest Framework no Google Cloud
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
Conceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java NoroesteConceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java Noroeste
 
Estudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no DesenvolvimentoEstudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no Desenvolvimento
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJS
 
Trabalhando com Módulos no Puppet
Trabalhando com Módulos no PuppetTrabalhando com Módulos no Puppet
Trabalhando com Módulos no Puppet
 
ASP.NET vNext – MVC6
ASP.NET vNext – MVC6ASP.NET vNext – MVC6
ASP.NET vNext – MVC6
 
Load Testing com VisualStudio + Azure
Load Testing com VisualStudio + AzureLoad Testing com VisualStudio + Azure
Load Testing com VisualStudio + Azure
 
Docker tdc 2014
Docker   tdc 2014Docker   tdc 2014
Docker tdc 2014
 
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
 
Apresentação Openstack - FISL 2013
Apresentação Openstack - FISL 2013Apresentação Openstack - FISL 2013
Apresentação Openstack - FISL 2013
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoT
 
Puppet webcast 4linux
Puppet webcast 4linuxPuppet webcast 4linux
Puppet webcast 4linux
 
Soluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e FirebaseSoluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e Firebase
 
Oficina Puppet - Aprenda a Gerenciar Configurações
Oficina Puppet - Aprenda a Gerenciar ConfiguraçõesOficina Puppet - Aprenda a Gerenciar Configurações
Oficina Puppet - Aprenda a Gerenciar Configurações
 
Douglasesteves meetupzabbix
Douglasesteves meetupzabbixDouglasesteves meetupzabbix
Douglasesteves meetupzabbix
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
 

Semelhante a Desenvolvedor de Software e Mestre apresenta Quarkus Java

Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaSEder Magalhães
 
Curso de Java - Antonio Alves - Aula 01
Curso de Java - Antonio Alves - Aula 01Curso de Java - Antonio Alves - Aula 01
Curso de Java - Antonio Alves - Aula 01Antonio Alves
 
JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingEder Magalhães
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Infraestrutura com openstack e linux
Infraestrutura com openstack e linuxInfraestrutura com openstack e linux
Infraestrutura com openstack e linuxMarcelo R. de Sá
 
Spring + Cloud Computing
Spring + Cloud ComputingSpring + Cloud Computing
Spring + Cloud ComputingDr. Spock
 
Docker: ganhe tempo e seja eficiente na entrega de serviços de TI
Docker: ganhe tempo e seja eficiente na entrega de serviços de TIDocker: ganhe tempo e seja eficiente na entrega de serviços de TI
Docker: ganhe tempo e seja eficiente na entrega de serviços de TIRicardo Ferreira Costa
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Rodrigo Branas
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Aécio Costa
 
Java 01 Java Visao Geral Resumo
Java 01 Java Visao Geral ResumoJava 01 Java Visao Geral Resumo
Java 01 Java Visao Geral ResumoRegis Magalhães
 
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017Thiago Barradas
 
Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produçãothomasdacosta
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linhamatheuscmpm
 
Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1PeslPinguim
 
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...WeOp - The Operations Summit
 

Semelhante a Desenvolvedor de Software e Mestre apresenta Quarkus Java (20)

Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaS
 
Function as a Service no OpenFaaS com Docker e PHP
Function as a Service no OpenFaaS com Docker e PHPFunction as a Service no OpenFaaS com Docker e PHP
Function as a Service no OpenFaaS com Docker e PHP
 
Curso de Java - Antonio Alves - Aula 01
Curso de Java - Antonio Alves - Aula 01Curso de Java - Antonio Alves - Aula 01
Curso de Java - Antonio Alves - Aula 01
 
JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computing
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Infraestrutura com openstack e linux
Infraestrutura com openstack e linuxInfraestrutura com openstack e linux
Infraestrutura com openstack e linux
 
Spring + Cloud Computing
Spring + Cloud ComputingSpring + Cloud Computing
Spring + Cloud Computing
 
Tecnologias Netflix OSS
Tecnologias Netflix OSSTecnologias Netflix OSS
Tecnologias Netflix OSS
 
IC-Testes Invasao
IC-Testes InvasaoIC-Testes Invasao
IC-Testes Invasao
 
Docker: ganhe tempo e seja eficiente na entrega de serviços de TI
Docker: ganhe tempo e seja eficiente na entrega de serviços de TIDocker: ganhe tempo e seja eficiente na entrega de serviços de TI
Docker: ganhe tempo e seja eficiente na entrega de serviços de TI
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!
 
Apostila java completo
Apostila java completoApostila java completo
Apostila java completo
 
Java 01 Java Visao Geral Resumo
Java 01 Java Visao Geral ResumoJava 01 Java Visao Geral Resumo
Java 01 Java Visao Geral Resumo
 
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
 
Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produção
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linha
 
Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1
 
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
 

Desenvolvedor de Software e Mestre apresenta Quarkus Java

  • 1.
  • 2. Desenvolvedor de Software desde de 2005 e Mestre em Ciência da Computação. Apaixonado por viagens, animais e música. Adora tecnologias que aumentem a produtividade. Trabalha na área de arquitetura de integração de sistemas distribuídos na BB Tecnologia e Serviço. Pela primeira vez no Brasília Dev Festival, vai apresentar a palestra: "Conheça o Quarkus Java: Supersonic Subatomic Java" https://github.com/marcuspaulo/ https://www.linkedin.com/in/marcuspaulo/ Apresentação
  • 3.
  • 4. Conheça o Quarkus Java: Supersonic Subatomic Java Marcus Paulo
  • 5. Introdução QuarkusIO, the Supersonic Subatomic Java, promete entregar pequenos artefatos, tempo de inicialização extremamente rápido e menor tempo para a primeira requisição. Quando combinado com o GraalVM, o Quarkus compila antecipadamente (AOT)
  • 6.
  • 7. Já sei, vou ter que aprender tudo de novo?
  • 8. Introdução ● Quarkus é construído com base nos padrões, não precisamos aprender nada de novo. ● Conseqüentemente, podemos usar CDI e JAX-RS, entre outros. ● Além disso, o Quarkus possui muitas extensões, incluindo as que suportam Hibernate, Kafka, OpenShift, Kubernetes e Vert.x.
  • 9.
  • 10. GraalVM ● GraalVM é uma Java VM e JDK baseada em HotSpot / OpenJDK, implementada em Java. ● Suporta diversas linguagens de programação ● Modos de execução adicionais, como a compilação antecipada de aplicativos Java para inicialização rápida e baixo consumo de memória
  • 11. Características do GraalVM ● Performance (Alta performance em todas as linguagens) ● Zero Overhead ● Execute seu código mais rápido e eficiente ● Interoperabilidade de linguagens (Poliglota) ● Compilar imagens nativas ● Ferramentas para Debug, monitoramento e profile
  • 12.
  • 13.
  • 14. Demo Demo 1 - GraalVM
  • 15. GraalVM - Poliglota Fonte: https://www.graalvm.org NodeJS Java R
  • 16. Demo Demo 2 - Native Image
  • 17.
  • 18. Caracteristicas do Quarkus ● A aplicação inicia mais rápido ● Baixo consumo de memória ram ● Kubernetes - CloudNative ● Integração com o Prothemeus (Log) ● Dockerfile é criado junto com a aplicação ● Live Reload ● Serveless ● Microserviços
  • 19. Tempo de inicialização Fonte: https://graalvm.org
  • 20. Consumo de memória RAM Fonte: https://graalvm.org
  • 23.
  • 25. Panache O Hibernate ORM é a implementação de JPA de fato e oferece toda a extensão de um Mapeador Relacional de Objetos. Isso possibilita mapeamentos complexos, mas não torna triviais os mapeamentos simples e comuns. O ORM do Hibernate com Panache se concentra em tornar suas entidades triviais e divertidas de escrever no Quarkus.
  • 26. Criando uma aplicação Pacote Nome do Projeto Classe Principal Endereço URL
  • 27. Demo Demo 3 - Quarkus Panache
  • 28. Criando e executando uma imagem no Docker
  • 30. Core ● Configuring Your Application ● Application Initialization and Termination ● Contexts and Dependency Injection ● Testing Your Application ● Configuring Logging ● Using SSL With Native Images
  • 31. Web ● Writing REST JSON Services ● Validation with Hibernate Validator ● Using the REST Client ● Using JWT RBAC ● Using WebSockets ● Using OpenAPI and Swagger UI ● Using Fault Tolerance
  • 34. Data ● Configuring your datasources ● Using Hibernate ORM and JPA ● Simplified Hibernate ORM with Panache ● Hibernate Search + Elasticsearch ● Using Infinispan Client ● Using Transactions ● Validation with Hibernate Validator ● Schema Migration with Flyway ● Reactive Postgres Client ● MongoDB Client ● Neo4j Client
  • 35. Messaging ● Using Apache Kafka ● Using AMQP with Reactive Messaging ● Using Apache Kafka Streams ● Asynchronous Message Passing
  • 37. Security ● Using Security ● Using JWT RBAC ● Using Keycloak to Protect JAX-RS Applications ● Using OAuth2 RBAC
  • 38. Cloud ● Deploying Native Applications on Kubernetes or OpenShift ● Deploying Native Applications on Knative Kubernetes or OpenShift ● Generating Kubernetes Resources ● Using the Kubernetes Client to Interact with a Kubernetes Cluster ● Deploying to OpenShift using S2I ● Deploying to Microsoft Azure Cloud
  • 39. Outras características ● Implementar sua própria extensão ● Escrever aplicações nativas ● Usar Kotlin ● Agendamento de tarefas ● Enviar e-mails
  • 40.
  • 42. Referências ● https://quarkus.io/guides/ ● https://www.graalvm.org/docs/ ● https://cloud.oracle.com/pt_BR/iaas/devops ● https://www.infoq.com/br/news/2019/01/oracle-introduces-helidon/ ● https://micronaut.io/