SlideShare a Scribd company logo
1
2
Allan Rodrigo Leite
Product Manager - TOTVS
3
Novidades Java,
GraalVM e
Quarkus
01
4Who we are 4
Winston Spencer
Sonnesen
Product Owner - TOTVS
Jeferson Francisco
Research & Developer Engeneering -
fluig
Thiago Almeida Weber
Software Architect - TOTVS
5
Licenciamento
Java e
OpenJDK
6Licenciamento do Java
Java 8 e anteriores
A cada 3 anos mais ou menos era lanƧada uma nova versĆ£o
ā€¢ Demora na entrega de novas funcionalidades
ā€¢ Demora na correĆ§Ć£o de bugs
Fim das atualizaƧƵes pĆŗblicas
ā€¢ Janeiro/2019 - Uso comercial
ā€¢ Dezembro/2020
Fonte: https://www.oracle.com/technetwork/java/java-se-support-roadmap.html
7Licenciamento do Java
Java 9 e
posteriores
LanƧado em Setembro/2017
ā€¢ LanƧamento de uma nova
versĆ£o a cada 6 meses
Features Releases
ā€¢ VersƵes maiores onde sĆ£o
disponibilizados novos recursos
da linguagem
Updates Releases
ā€¢ Acontecem 2x dentro do perĆ­odo
ā€¢ AtualizaƧƵes de seguranƧa
ā€¢ CorreƧƵes de bugs
Fonte: https://www.oracle.com/technetwork/java/java-se-support-roadmap.html
8Mais confuso do que o John Travolta com mƔscara do Nicolas Cage
9Oracle OpenJDK Builds
http://jdk.java.net
10AdoptOpenJDK Builds 10
http://adoptopenjdk.net
11AlƩm da JVM da Oracle
Amazon Corretto
ā€¢ DistribuiĆ§Ć£o gratuita
ā€¢ Multiplataforma
ā€¢ Pronto para produĆ§Ć£o do Open Java Development Kit (OpenJDK)
ā€¢ Inclui suporte de longo prazo
ā€¢ Amazon utiliza o Corretto internamente em milhares de serviƧos de produĆ§Ć£o
ā€¢ Certificado como compatĆ­vel com o padrĆ£o Java SE
Fonte: https://aws.amazon.com/pt/corretto/
12AlƩm da JVM da Oracle
Eclipse OpenJ9
ā€¢ Mantido pela IBM e pela comunidade
ā€¢ Suporte multiplataforma
ā€¢ Alto desempenho
ā€¢ Sem custo
Fonte: https://projects.eclipse.org/projects/technology.openj9/who
13The Future of Java EE
ā€¢ Oracle contributed GlassFish and the Java EE APIs and TCKs to Jakarta EE
ā€¢ The Jakarta EE Working Group was formed and supporting committees to provide governance to
the community and facilitate collaboration.
ā€¢ The Eclipse Foundation Specification Process was created, and customization created and
approved for the Jakarta EE Specification Process.
ā€¢ Specification projects are being created and work is underway now within the community to deliver
the Jakarta EE 8 release later this year.
ā€¢ javax.* namespace was moved to the jakarta.* namespace
14
Eclipse MicroProfile
What is Eclipse MicroProfile
15Community - individuals, organizations and vendors
16Current MicroProfile implementations
17Sep, 2016
MicroProfile 1.0
JAX-RS 2.0JSON-P 1.0CDI 1.2
18Aug, 2017
JAX-RS 2.0JSON-P 1.0CDI 1.2
Config 1.0
MicroProfile 1.1
= No change from last release
= New
19Sep, 2017
= Updated
= No change from last release
= New
JAX-RS 2.0JSON-P 1.0CDI 1.2
Config 1.1
Fault
Tolerance 1.0
JWT
Propagation 1.0
Health
Check 1.0
Metrics 1.0
MicroProfile 1.2
20Jan, 2018
JAX-RS 2.0JSON-P 1.0CDI 1.2 Config 1.2
Fault
Tolerance 1.0
JWT
Propagation 1.0
Health
Check 1.0
Metrics 1.1
Open Tracing
1.0
Open API 1.0 Rest Client 1.0
MicroProfile 1.3
= Updated
= No change from last release
= New
21Jun, 2018
JAX-RS 2.0JSON-P 1.0CDI 1.2 Config 1.3
Fault
Tolerance 1.1
JWT
Propagation 1.1
Health
Check 1.0
Metrics 1.1
Open Tracing
1.1
Open API 1.0 Rest Client 1.1
MicroProfile 1.4
= Updated
= No change from last release
= New
22Jun, 2018
JAX-RS 2.1JSON-P 1.1CDI 2.0
Config 1.3
Fault
Tolerance 1.1
JWT
Propagation 1.1
Health
Check 1.0
Metrics 1.1
Open Tracing 1.1 Open API 1.0 Rest Client 1.1
JSON-B 1.0
MicroProfile 2.0
= Updated
= No change from last release
= New
23Oct, 2018
JAX-RS 2.1JSON-P 1.1CDI 2.0
Config 1.3
Fault
Tolerance 1.1
JWT
Propagation 1.1
Health
Check 1.0
Metrics 1.1
Open Tracing 1.2 Open API 1.0 Rest Client 1.1
JSON-B 1.0
MicroProfile 2.1
= Updated
= No change from last release
= New
24Jan, 2019
JAX-RS 2.1JSON-P 1.1CDI 2.0
Config 1.3
Fault
Tolerance 2.0
JWT
Propagation 1.1
Health
Check 1.0
Metrics 1.1
Open Tracing
1.3
Open API 1.1 Rest Client 1.2
JSON-B 1.0
MicroProfile 2.2
= Updated
= No change from last release
= New
25Jun, 2019
JAX-RS 2.1JSON-P 1.1CDI 2.0
Config 1.3
Fault
Tolerance 2.0
JWT
Propagation 1.1
Health
Check 2.0
Metrics 2.0
Open Tracing 1.3 Open API 1.1 Rest Client 1.3
JSON-B 1.0
MicroProfile 3.0
= Updated
= No change from last release
= New
26How to start with MicroProfile
GraalVMTM
Run Programs
Faster Anywhere
https://www.graalvm.org/
28
ā€œOne VM to rule them ALLā€¦ā€
GraalVM
POLYGLOT
Zero overhead interoperability between programming languages allows you to
write polyglot applications and select the best language for your task.
NATIVE
Native images compiled with GraalVM ahead-of-time improve the startup time
and reduce the memory footprint of JVM-based applications.
DEFINITION
GraalVM is a universal virtual machine for running applications written in
JavaScript, Python, Ruby, R, JVM-based languages like Java, Scala, Groovy,
Kotlin, Clojure, and LLVM-based languages such as C and C++.
EMBEDDABLE
GraalVM can be embedded in both managed and native applications. There are
existing integrations into OpenJDK, Node.js and Oracle Database.
Top 10 Things To Do With GraalVM
29
Components:
- SDK
- Compiler
- Truffle
- Tools
- Substrate VM
- Sulong
- TRegex
- VM
GraalVM
STARTUP TIME PEAK THROUGHPUT
MAX LATENCYMEMORY FOOTPRINT
PACKAGING SIZE
Is a framework that allows ahead-of-time (AOT)
compilation of Java applications under closed-world
assumption into executable images or shared objects
(ELF-64 or 64-bit Mach-O).
SUBSTRATE
VM
https://github.com/oracle/graal/tree/master/substratevm
31VM parameters
Q U A R K U
SSupersonic Subatomic
Java
https://quarkus.io/
33Container first
https://quarkus.io/
Quarkus tailors your application for GraalVM and HotSpot.
Amazingly fast boot time, incredibly low RSS memory (not just heap
size!) offering near instant scale up and high density memory utilization
in container orchestration platforms like Kubernetes.
34Developer joy
https://quarkus.io/
Combine both the familiar imperative code and the non-blocking
reactive style when developing applications.
A cohesive platform for optimized developer joy:
ā— Unified configuration;
ā— Zero config, live reload in the blink of an eye;
ā— Streamlined code for the 80% common usages, flexible for the 20%;
ā— No hassle native executable generation.
35Best of breed libraries and standards
https://quarkus.io/
Quarkus brings a cohesive, fun to use full-stack framework
by leveraging best of breed libraries you love and use wired on a standard backbone.
36Java & JVM 2019-Q3 graph
http://infoq.link/java2019
37Live demo
WHAT COULD GO
WRONG?
38
Do zero a nuvem
com Java e
Kubernetes
02
39Who we are 39
Sandro Giacomozzi
Software Architect - fluig
Alisson Medeiros
Research & Developer Engeneering - fluig
Eduardo Filipe Gomes
Software Architect - TOTVS
Roger Steuernagel
Software Architect - TOTVS
40Kubernetes for Java developers
41
The ā€‹ā€‹technology area is cyclical, from time to time
the same technologies come back, with different
names (Heidemann, Vanei)
Series available at https://dev.to/sandrogiacom/kubernetes-for-java-developers-setup-41nk
Kubernetes for Java developers
42
Kubernetes is a portable, extensible open-source platform for
managing containerized workloads and services, that facilitates
both declarative configuration and automation.
It has a large, rapidly growing ecosystem.
Kubernetes services, support, and tools are widely available.
https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
What is Kubernetes
43
ā€¢ Docker
ā€¢ Minikube
ā€¢ Kubectl
ā€¢ VirtualBox
ā€¢ GNU make (recommended)
https://github.com/sandrogiacom/k8s
Setup
44Before run
Clone demo app
https://github.com/sandrogiacom/java-kubernetes
45Step one ā€“ Standalone App
https://www.youtube.com/watch?v=X-h7Tbq5C4U
46Step two ā€“ Docker App
47Step two ā€“ Docker App
https://www.youtube.com/watch?v=gPu1xJji6Hw
48Step three ā€“ App on Kubernetes
49Local running
50Start Minikube
minikube -p dev.to start --cpus 2 --memory=4098
minikube -p dev.to addons enable ingress
minikube -p dev.to addons enable metrics-server
kubectl create namespace dev-to
https://www.youtube.com/watch?v=QUaAOBLy4y0
51And
K8s (K - ubernete - s)
ā€¢ Deployment
ā€¢ Pods
ā€¢ Replica Sets
ā€¢ Services
ā€¢ Ingress
52Deploying database and application
https://github.com/sandrogiacom/java-kubernetes/blob/master/kubernetes/mysql/mysql-deployment.yaml
https://github.com/sandrogiacom/java-kubernetes/blob/master/kubernetes/app/app-deployment.yaml
53Deploying database and application
1.https://www.youtube.com/watch?v=mp22hUMskZo
2.https://www.youtube.com/watch?v=8xARo8XhMa4
3.https://www.youtube.com/watch?v=bbUupigXKh4
4.https://www.youtube.com/watch?v=zvGhoV-tzwY
54Scaling Application
https://www.youtube.com/watch?v=xi2Ji1k3yOY
55Deplying database
kubectl apply -f kubernetes/mysql/
56Build docker image local
eval $(minikube -p dev.to docker-env)
docker build --force-rm -t java-k8s .
57Deploying app
kubectl apply -f kubernetes/app/
58Ingress ā€“ application with friendly access
https://www.youtube.com/watch?v=-MVPY_mI-so
59
Preparing docker and kubernetes to allow
debugging
Debug
60Debug
61Debug
https://www.youtube.com/watch?v=EYv_V73ZoZ8
63
ā€¢Use JRE images instead of JDK
ā€¢Automate everything possible
ā€¢Use environment variables
ā€¢Health check
ā€¢Application info
ā€¢Monitoring / Logs
Good practices
64Alinhamento e autonomia šŸ”Ŗ juntos and shallow now
65Ferramentas
66Testes sempre, desde o unitĆ”rio atĆ© o mais prĆ³ximo de produĆ§Ć£o
67Ferramentas
68Todo mundo tem um plano atƩ tomar o primeiro soco na cara - Mike Tyson
69Monitoramento, rastreabilidade e alertas
70VisĆ£o de arquitetura
Processo de
Desenvolvimento
Processos, metodologias
e padrƵes para o
desenvolvimento.
(Pipelines e
documentaƧƵes)
3
Plataforma
Componentes de
infraestrutura para suportar
a operaĆ§Ć£o (plataforma) e
desenvolvimento
(facilitadores para a
abstraĆ§Ć£o no framework).
2
Framework Java
Framework Java seguindo
a visĆ£o de arquitetura do
TOTVS Platform com
suporte a boas prƔticas de
desenvolvimento de
aplicaƧƵes cloud nativas
(DDD, TDD e BDD, Event
Sourcing, CQRS).
1
71Componentes de framework
RepositĆ³rio
JSON
SeguranƧa
(Oauth2 e
JWT)
API de Mensageria
(Spring Cloud
Stream e RabbitMQ)
Domain Driven Design,
Event Sourcing e
CQRS
InternacionalizaĆ§Ć£o
e LocalizaĆ§Ć£o
Multi-TenĆ¢ncia
(Database,
Schema e
Discriminator)
CustomizaĆ§Ć£o e
PersonalizaĆ§Ć£o
OrquestraĆ§Ć£o
(BPMN,
DMN, CMMN
e Flowable)
SPRING CLOUD
FRAMEWORK
Logging
Coreografia
72Componentes de plataforma
Users
System
s
Things
Ingress
(APIManager)
KubernetesDNS
(ServiceDiscovery)
Identity
(AuthenticationService)
Kubernetes
(Container Orquestration)
Request #3
(Micro Service)
Accountability #1
(Micro Service)
Query #1
(Micro Service)
Request #4
(Micro Service)
Query #2
(Micro Service)
Account #1
(Micro Service)
RabbitMQAMQP
(MessageBroker)
Kubernetes
Secrets&Config
(ServiceConfig)
TOTVSRAC
(AuthorizationService)
Istio,Prometheus&
Grafana
(Monitoring&Alert)
ELK
(Logging)
TOTVS Environment
Request #1
(Micro Service)
Request #2
(Micro Service)
73
ā€¢ Criar uma arquitetura macro de referĆŖncia, pensando em Processo (DevOps),
Framework e Plataforma.
ā€¢ Entender que a fase de descoberta (Lean Inception, UX e Arquitetura) Ć© essencial
para a fase de desenvolvimento (#nogohorse).
ā€¢ Entender que o objetivo do Framework Ć© facilitar e prover tĆ©cnicas e que ā€œnem todo
problema Ć© um prego e nem toda a soluĆ§Ć£o Ć© um marteloā€.
ā€¢ Descobrir que a Plataforma Ć© tĆ£o importante quanto o Framework a ser utilizado. ****
ā€¢ Descobrir que uma soluĆ§Ć£o em nuvem Ć© (muito) mais complexa por conta da
necessidade de escalabilidade (custo). EsqueƧa o modelo on-premise tradicional.
Good practices
ALLAN RODRIGO LEITE
Obrigado!
allanrodrigol@gmail.com
EDUARDO FILIPE GOMES
eduardo.filipe.gomes@gmail.com
ALISSON MEDEIROS
alisson.medeiros@gmail.com
THIAGO ALMEIDA WEBER
thiago_asw@hotmail.com
JEFERSON FRANCISCO
jeferson.gh@gmail.com
SANDRO GIACOMOZZI
sandrogiacom@gmail.com
ROGER STEUERNAGEL
roger@steuernagel.com.br
WINSTON SONNESEN
sonnesen@gmail.com

More Related Content

What's hot

ThoughtWorks Technology Radar Roadshow - Brisbane
ThoughtWorks Technology Radar Roadshow - BrisbaneThoughtWorks Technology Radar Roadshow - Brisbane
ThoughtWorks Technology Radar Roadshow - Brisbane
Thoughtworks
Ā 
Coscup2018 itri android-in-cloud
Coscup2018 itri android-in-cloudCoscup2018 itri android-in-cloud
Coscup2018 itri android-in-cloud
Tian-Jian Wu
Ā 
ContainerDays Boston 2016: "Autopilot: Running Real-world Applications in Con...
ContainerDays Boston 2016: "Autopilot: Running Real-world Applications in Con...ContainerDays Boston 2016: "Autopilot: Running Real-world Applications in Con...
ContainerDays Boston 2016: "Autopilot: Running Real-world Applications in Con...
DynamicInfraDays
Ā 
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
DynamicInfraDays
Ā 
Quarkus k8s
Quarkus   k8sQuarkus   k8s
Quarkus k8s
Georgios Andrianakis
Ā 
Workflow, container, and beyond
Workflow, container, and beyondWorkflow, container, and beyond
Workflow, container, and beyond
Kohsuke Kawaguchi
Ā 
Vulnerability Exploitation in Docker Container Environments
Vulnerability Exploitation in Docker Container EnvironmentsVulnerability Exploitation in Docker Container Environments
Vulnerability Exploitation in Docker Container Environments
FlawCheck
Ā 
Discover Quarkus and GraalVM
Discover Quarkus and GraalVMDiscover Quarkus and GraalVM
Discover Quarkus and GraalVM
Romain Schlick
Ā 
Lessons Learned in Automating Compliance for Containers
Lessons Learned in Automating Compliance for ContainersLessons Learned in Automating Compliance for Containers
Lessons Learned in Automating Compliance for Containers
All Things Open
Ā 
Why we donā€™t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Why we donā€™t use the Term DevOps: the Journey to a Product Mindset - Destinat...Why we donā€™t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Why we donā€™t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Henning Jacobs
Ā 
Continuous (Non-)Functional Testing of Microservices on K8s
Continuous (Non-)Functional Testing of Microservices on K8sContinuous (Non-)Functional Testing of Microservices on K8s
Continuous (Non-)Functional Testing of Microservices on K8s
QAware GmbH
Ā 
Quarkus@Code Garden
Quarkus@Code GardenQuarkus@Code Garden
Quarkus@Code Garden
Giuseppe Bonocore
Ā 
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Daniel Oh
Ā 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020
Emily Jiang
Ā 
Deploying & Scaling OpenShift on OpenStack using Heat - OpenStack Seattle Mee...
Deploying & Scaling OpenShift on OpenStack using Heat - OpenStack Seattle Mee...Deploying & Scaling OpenShift on OpenStack using Heat - OpenStack Seattle Mee...
Deploying & Scaling OpenShift on OpenStack using Heat - OpenStack Seattle Mee...
Diane Mueller
Ā 
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Jakarta_EE
Ā 
Š Š°Š·Ń€Š°Š±Š¾Ń‚ŠŗŠ° cloud-native Java-ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹ Š“Š»Ń Kubernetes, Š•Š³Š¾Ń€ Š’Š¾Š»ŠŗŠ¾Š²,Senior Ja...
Š Š°Š·Ń€Š°Š±Š¾Ń‚ŠŗŠ° cloud-native Java-ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹ Š“Š»Ń Kubernetes, Š•Š³Š¾Ń€ Š’Š¾Š»ŠŗŠ¾Š²,Senior Ja...Š Š°Š·Ń€Š°Š±Š¾Ń‚ŠŗŠ° cloud-native Java-ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹ Š“Š»Ń Kubernetes, Š•Š³Š¾Ń€ Š’Š¾Š»ŠŗŠ¾Š²,Senior Ja...
Š Š°Š·Ń€Š°Š±Š¾Ń‚ŠŗŠ° cloud-native Java-ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹ Š“Š»Ń Kubernetes, Š•Š³Š¾Ń€ Š’Š¾Š»ŠŗŠ¾Š²,Senior Ja...
DataArt
Ā 
Pycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Pycon9 - Paas per tutti i gusti con Dokku and KubernetesPycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Pycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Claudio Mignanti
Ā 
Bandit and Gosec - Security Linters
Bandit and Gosec - Security LintersBandit and Gosec - Security Linters
Bandit and Gosec - Security Linters
EricBrown328
Ā 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your Microservices
Marcus Hirt
Ā 

What's hot (20)

ThoughtWorks Technology Radar Roadshow - Brisbane
ThoughtWorks Technology Radar Roadshow - BrisbaneThoughtWorks Technology Radar Roadshow - Brisbane
ThoughtWorks Technology Radar Roadshow - Brisbane
Ā 
Coscup2018 itri android-in-cloud
Coscup2018 itri android-in-cloudCoscup2018 itri android-in-cloud
Coscup2018 itri android-in-cloud
Ā 
ContainerDays Boston 2016: "Autopilot: Running Real-world Applications in Con...
ContainerDays Boston 2016: "Autopilot: Running Real-world Applications in Con...ContainerDays Boston 2016: "Autopilot: Running Real-world Applications in Con...
ContainerDays Boston 2016: "Autopilot: Running Real-world Applications in Con...
Ā 
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
Ā 
Quarkus k8s
Quarkus   k8sQuarkus   k8s
Quarkus k8s
Ā 
Workflow, container, and beyond
Workflow, container, and beyondWorkflow, container, and beyond
Workflow, container, and beyond
Ā 
Vulnerability Exploitation in Docker Container Environments
Vulnerability Exploitation in Docker Container EnvironmentsVulnerability Exploitation in Docker Container Environments
Vulnerability Exploitation in Docker Container Environments
Ā 
Discover Quarkus and GraalVM
Discover Quarkus and GraalVMDiscover Quarkus and GraalVM
Discover Quarkus and GraalVM
Ā 
Lessons Learned in Automating Compliance for Containers
Lessons Learned in Automating Compliance for ContainersLessons Learned in Automating Compliance for Containers
Lessons Learned in Automating Compliance for Containers
Ā 
Why we donā€™t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Why we donā€™t use the Term DevOps: the Journey to a Product Mindset - Destinat...Why we donā€™t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Why we donā€™t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Ā 
Continuous (Non-)Functional Testing of Microservices on K8s
Continuous (Non-)Functional Testing of Microservices on K8sContinuous (Non-)Functional Testing of Microservices on K8s
Continuous (Non-)Functional Testing of Microservices on K8s
Ā 
Quarkus@Code Garden
Quarkus@Code GardenQuarkus@Code Garden
Quarkus@Code Garden
Ā 
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Ā 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020
Ā 
Deploying & Scaling OpenShift on OpenStack using Heat - OpenStack Seattle Mee...
Deploying & Scaling OpenShift on OpenStack using Heat - OpenStack Seattle Mee...Deploying & Scaling OpenShift on OpenStack using Heat - OpenStack Seattle Mee...
Deploying & Scaling OpenShift on OpenStack using Heat - OpenStack Seattle Mee...
Ā 
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Ā 
Š Š°Š·Ń€Š°Š±Š¾Ń‚ŠŗŠ° cloud-native Java-ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹ Š“Š»Ń Kubernetes, Š•Š³Š¾Ń€ Š’Š¾Š»ŠŗŠ¾Š²,Senior Ja...
Š Š°Š·Ń€Š°Š±Š¾Ń‚ŠŗŠ° cloud-native Java-ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹ Š“Š»Ń Kubernetes, Š•Š³Š¾Ń€ Š’Š¾Š»ŠŗŠ¾Š²,Senior Ja...Š Š°Š·Ń€Š°Š±Š¾Ń‚ŠŗŠ° cloud-native Java-ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹ Š“Š»Ń Kubernetes, Š•Š³Š¾Ń€ Š’Š¾Š»ŠŗŠ¾Š²,Senior Ja...
Š Š°Š·Ń€Š°Š±Š¾Ń‚ŠŗŠ° cloud-native Java-ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹ Š“Š»Ń Kubernetes, Š•Š³Š¾Ń€ Š’Š¾Š»ŠŗŠ¾Š²,Senior Ja...
Ā 
Pycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Pycon9 - Paas per tutti i gusti con Dokku and KubernetesPycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Pycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Ā 
Bandit and Gosec - Security Linters
Bandit and Gosec - Security LintersBandit and Gosec - Security Linters
Bandit and Gosec - Security Linters
Ā 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your Microservices
Ā 

Similar to [JOI] TOTVS Developers Joinville - Java #1

Codecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopCodecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshop
Jamie Coleman
Ā 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
John Archer
Ā 
Java @ Cloud - Setor PĆŗblico SP
Java @ Cloud - Setor PĆŗblico SPJava @ Cloud - Setor PĆŗblico SP
Java @ Cloud - Setor PĆŗblico SP
Ilan Salviano
Ā 
Introduction to Eclipse Microprofile
Introduction to Eclipse MicroprofileIntroduction to Eclipse Microprofile
Introduction to Eclipse Microprofile
Red Hat Developers
Ā 
Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Reactive Amsterdam - Maxim Burgerhout - Quarkus IntroReactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Fabio Tiriticco
Ā 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
CodeOps Technologies LLP
Ā 
Eclipse MicroProfile ź³¼ Microservice Java framework ā€“ Helidon
Eclipse MicroProfile ź³¼ Microservice Java framework ā€“ HelidonEclipse MicroProfile ź³¼ Microservice Java framework ā€“ Helidon
Eclipse MicroProfile ź³¼ Microservice Java framework ā€“ Helidon
Oracle Korea
Ā 
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech TalkSpring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Red Hat Developers
Ā 
Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015
Patrick Chanezon
Ā 
Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfile
Kevin Sutter
Ā 
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of QuarkusD. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
Uni Systems S.M.S.A.
Ā 
OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)
Jooho Lee
Ā 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Patrick Chanezon
Ā 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
Microsoft
Ā 
Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019
Jamie Coleman
Ā 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuse
Matt Raible
Ā 
Drools, jBPM OptaPlanner presentation
Drools, jBPM OptaPlanner presentationDrools, jBPM OptaPlanner presentation
Drools, jBPM OptaPlanner presentation
Mark Proctor
Ā 
From CoreOS to Kubernetes and Concourse CI
From CoreOS to Kubernetes and Concourse CIFrom CoreOS to Kubernetes and Concourse CI
From CoreOS to Kubernetes and Concourse CI
Denis Izmaylov
Ā 
Open Source In The World Of Java
Open Source In The World Of JavaOpen Source In The World Of Java
Open Source In The World Of Java
Jamie Coleman
Ā 
Vagrant or docker for java dev environment
Vagrant or docker for java dev environmentVagrant or docker for java dev environment
Vagrant or docker for java dev environment
Orest Ivasiv
Ā 

Similar to [JOI] TOTVS Developers Joinville - Java #1 (20)

Codecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopCodecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshop
Ā 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
Ā 
Java @ Cloud - Setor PĆŗblico SP
Java @ Cloud - Setor PĆŗblico SPJava @ Cloud - Setor PĆŗblico SP
Java @ Cloud - Setor PĆŗblico SP
Ā 
Introduction to Eclipse Microprofile
Introduction to Eclipse MicroprofileIntroduction to Eclipse Microprofile
Introduction to Eclipse Microprofile
Ā 
Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Reactive Amsterdam - Maxim Burgerhout - Quarkus IntroReactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Ā 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
Ā 
Eclipse MicroProfile ź³¼ Microservice Java framework ā€“ Helidon
Eclipse MicroProfile ź³¼ Microservice Java framework ā€“ HelidonEclipse MicroProfile ź³¼ Microservice Java framework ā€“ Helidon
Eclipse MicroProfile ź³¼ Microservice Java framework ā€“ Helidon
Ā 
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech TalkSpring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Ā 
Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015
Ā 
Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfile
Ā 
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of QuarkusD. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
Ā 
OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)
Ā 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Ā 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
Ā 
Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019
Ā 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuse
Ā 
Drools, jBPM OptaPlanner presentation
Drools, jBPM OptaPlanner presentationDrools, jBPM OptaPlanner presentation
Drools, jBPM OptaPlanner presentation
Ā 
From CoreOS to Kubernetes and Concourse CI
From CoreOS to Kubernetes and Concourse CIFrom CoreOS to Kubernetes and Concourse CI
From CoreOS to Kubernetes and Concourse CI
Ā 
Open Source In The World Of Java
Open Source In The World Of JavaOpen Source In The World Of Java
Open Source In The World Of Java
Ā 
Vagrant or docker for java dev environment
Vagrant or docker for java dev environmentVagrant or docker for java dev environment
Vagrant or docker for java dev environment
Ā 

Recently uploaded

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
Ā 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
Ā 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
Ā 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
Ā 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
Ā 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
Ā 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
Ā 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
Ā 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
Ā 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
Ā 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
Ā 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
Ā 
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
UiPathCommunity
Ā 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
Ā 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
Ā 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
Ā 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
Ā 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
Ā 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
Ā 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
Ā 

Recently uploaded (20)

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Ā 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Ā 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Ā 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
Ā 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Ā 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Ā 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Ā 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
Ā 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ā 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Ā 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
Ā 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Ā 
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
Ā 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Ā 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
Ā 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
Ā 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Ā 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Ā 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Ā 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
Ā 

[JOI] TOTVS Developers Joinville - Java #1

  • 1. 1
  • 4. 4Who we are 4 Winston Spencer Sonnesen Product Owner - TOTVS Jeferson Francisco Research & Developer Engeneering - fluig Thiago Almeida Weber Software Architect - TOTVS
  • 6. 6Licenciamento do Java Java 8 e anteriores A cada 3 anos mais ou menos era lanƧada uma nova versĆ£o ā€¢ Demora na entrega de novas funcionalidades ā€¢ Demora na correĆ§Ć£o de bugs Fim das atualizaƧƵes pĆŗblicas ā€¢ Janeiro/2019 - Uso comercial ā€¢ Dezembro/2020 Fonte: https://www.oracle.com/technetwork/java/java-se-support-roadmap.html
  • 7. 7Licenciamento do Java Java 9 e posteriores LanƧado em Setembro/2017 ā€¢ LanƧamento de uma nova versĆ£o a cada 6 meses Features Releases ā€¢ VersƵes maiores onde sĆ£o disponibilizados novos recursos da linguagem Updates Releases ā€¢ Acontecem 2x dentro do perĆ­odo ā€¢ AtualizaƧƵes de seguranƧa ā€¢ CorreƧƵes de bugs Fonte: https://www.oracle.com/technetwork/java/java-se-support-roadmap.html
  • 8. 8Mais confuso do que o John Travolta com mĆ”scara do Nicolas Cage
  • 11. 11AlĆ©m da JVM da Oracle Amazon Corretto ā€¢ DistribuiĆ§Ć£o gratuita ā€¢ Multiplataforma ā€¢ Pronto para produĆ§Ć£o do Open Java Development Kit (OpenJDK) ā€¢ Inclui suporte de longo prazo ā€¢ Amazon utiliza o Corretto internamente em milhares de serviƧos de produĆ§Ć£o ā€¢ Certificado como compatĆ­vel com o padrĆ£o Java SE Fonte: https://aws.amazon.com/pt/corretto/
  • 12. 12AlĆ©m da JVM da Oracle Eclipse OpenJ9 ā€¢ Mantido pela IBM e pela comunidade ā€¢ Suporte multiplataforma ā€¢ Alto desempenho ā€¢ Sem custo Fonte: https://projects.eclipse.org/projects/technology.openj9/who
  • 13. 13The Future of Java EE ā€¢ Oracle contributed GlassFish and the Java EE APIs and TCKs to Jakarta EE ā€¢ The Jakarta EE Working Group was formed and supporting committees to provide governance to the community and facilitate collaboration. ā€¢ The Eclipse Foundation Specification Process was created, and customization created and approved for the Jakarta EE Specification Process. ā€¢ Specification projects are being created and work is underway now within the community to deliver the Jakarta EE 8 release later this year. ā€¢ javax.* namespace was moved to the jakarta.* namespace
  • 14. 14 Eclipse MicroProfile What is Eclipse MicroProfile
  • 15. 15Community - individuals, organizations and vendors
  • 17. 17Sep, 2016 MicroProfile 1.0 JAX-RS 2.0JSON-P 1.0CDI 1.2
  • 18. 18Aug, 2017 JAX-RS 2.0JSON-P 1.0CDI 1.2 Config 1.0 MicroProfile 1.1 = No change from last release = New
  • 19. 19Sep, 2017 = Updated = No change from last release = New JAX-RS 2.0JSON-P 1.0CDI 1.2 Config 1.1 Fault Tolerance 1.0 JWT Propagation 1.0 Health Check 1.0 Metrics 1.0 MicroProfile 1.2
  • 20. 20Jan, 2018 JAX-RS 2.0JSON-P 1.0CDI 1.2 Config 1.2 Fault Tolerance 1.0 JWT Propagation 1.0 Health Check 1.0 Metrics 1.1 Open Tracing 1.0 Open API 1.0 Rest Client 1.0 MicroProfile 1.3 = Updated = No change from last release = New
  • 21. 21Jun, 2018 JAX-RS 2.0JSON-P 1.0CDI 1.2 Config 1.3 Fault Tolerance 1.1 JWT Propagation 1.1 Health Check 1.0 Metrics 1.1 Open Tracing 1.1 Open API 1.0 Rest Client 1.1 MicroProfile 1.4 = Updated = No change from last release = New
  • 22. 22Jun, 2018 JAX-RS 2.1JSON-P 1.1CDI 2.0 Config 1.3 Fault Tolerance 1.1 JWT Propagation 1.1 Health Check 1.0 Metrics 1.1 Open Tracing 1.1 Open API 1.0 Rest Client 1.1 JSON-B 1.0 MicroProfile 2.0 = Updated = No change from last release = New
  • 23. 23Oct, 2018 JAX-RS 2.1JSON-P 1.1CDI 2.0 Config 1.3 Fault Tolerance 1.1 JWT Propagation 1.1 Health Check 1.0 Metrics 1.1 Open Tracing 1.2 Open API 1.0 Rest Client 1.1 JSON-B 1.0 MicroProfile 2.1 = Updated = No change from last release = New
  • 24. 24Jan, 2019 JAX-RS 2.1JSON-P 1.1CDI 2.0 Config 1.3 Fault Tolerance 2.0 JWT Propagation 1.1 Health Check 1.0 Metrics 1.1 Open Tracing 1.3 Open API 1.1 Rest Client 1.2 JSON-B 1.0 MicroProfile 2.2 = Updated = No change from last release = New
  • 25. 25Jun, 2019 JAX-RS 2.1JSON-P 1.1CDI 2.0 Config 1.3 Fault Tolerance 2.0 JWT Propagation 1.1 Health Check 2.0 Metrics 2.0 Open Tracing 1.3 Open API 1.1 Rest Client 1.3 JSON-B 1.0 MicroProfile 3.0 = Updated = No change from last release = New
  • 26. 26How to start with MicroProfile
  • 28. 28 ā€œOne VM to rule them ALLā€¦ā€ GraalVM POLYGLOT Zero overhead interoperability between programming languages allows you to write polyglot applications and select the best language for your task. NATIVE Native images compiled with GraalVM ahead-of-time improve the startup time and reduce the memory footprint of JVM-based applications. DEFINITION GraalVM is a universal virtual machine for running applications written in JavaScript, Python, Ruby, R, JVM-based languages like Java, Scala, Groovy, Kotlin, Clojure, and LLVM-based languages such as C and C++. EMBEDDABLE GraalVM can be embedded in both managed and native applications. There are existing integrations into OpenJDK, Node.js and Oracle Database. Top 10 Things To Do With GraalVM
  • 29. 29 Components: - SDK - Compiler - Truffle - Tools - Substrate VM - Sulong - TRegex - VM GraalVM STARTUP TIME PEAK THROUGHPUT MAX LATENCYMEMORY FOOTPRINT PACKAGING SIZE
  • 30. Is a framework that allows ahead-of-time (AOT) compilation of Java applications under closed-world assumption into executable images or shared objects (ELF-64 or 64-bit Mach-O). SUBSTRATE VM https://github.com/oracle/graal/tree/master/substratevm
  • 32. Q U A R K U SSupersonic Subatomic Java https://quarkus.io/
  • 33. 33Container first https://quarkus.io/ Quarkus tailors your application for GraalVM and HotSpot. Amazingly fast boot time, incredibly low RSS memory (not just heap size!) offering near instant scale up and high density memory utilization in container orchestration platforms like Kubernetes.
  • 34. 34Developer joy https://quarkus.io/ Combine both the familiar imperative code and the non-blocking reactive style when developing applications. A cohesive platform for optimized developer joy: ā— Unified configuration; ā— Zero config, live reload in the blink of an eye; ā— Streamlined code for the 80% common usages, flexible for the 20%; ā— No hassle native executable generation.
  • 35. 35Best of breed libraries and standards https://quarkus.io/ Quarkus brings a cohesive, fun to use full-stack framework by leveraging best of breed libraries you love and use wired on a standard backbone.
  • 36. 36Java & JVM 2019-Q3 graph http://infoq.link/java2019
  • 38. 38 Do zero a nuvem com Java e Kubernetes 02
  • 39. 39Who we are 39 Sandro Giacomozzi Software Architect - fluig Alisson Medeiros Research & Developer Engeneering - fluig Eduardo Filipe Gomes Software Architect - TOTVS Roger Steuernagel Software Architect - TOTVS
  • 40. 40Kubernetes for Java developers
  • 41. 41 The ā€‹ā€‹technology area is cyclical, from time to time the same technologies come back, with different names (Heidemann, Vanei) Series available at https://dev.to/sandrogiacom/kubernetes-for-java-developers-setup-41nk Kubernetes for Java developers
  • 42. 42 Kubernetes is a portable, extensible open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available. https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ What is Kubernetes
  • 43. 43 ā€¢ Docker ā€¢ Minikube ā€¢ Kubectl ā€¢ VirtualBox ā€¢ GNU make (recommended) https://github.com/sandrogiacom/k8s Setup
  • 44. 44Before run Clone demo app https://github.com/sandrogiacom/java-kubernetes
  • 45. 45Step one ā€“ Standalone App https://www.youtube.com/watch?v=X-h7Tbq5C4U
  • 46. 46Step two ā€“ Docker App
  • 47. 47Step two ā€“ Docker App https://www.youtube.com/watch?v=gPu1xJji6Hw
  • 48. 48Step three ā€“ App on Kubernetes
  • 50. 50Start Minikube minikube -p dev.to start --cpus 2 --memory=4098 minikube -p dev.to addons enable ingress minikube -p dev.to addons enable metrics-server kubectl create namespace dev-to https://www.youtube.com/watch?v=QUaAOBLy4y0
  • 51. 51And K8s (K - ubernete - s) ā€¢ Deployment ā€¢ Pods ā€¢ Replica Sets ā€¢ Services ā€¢ Ingress
  • 52. 52Deploying database and application https://github.com/sandrogiacom/java-kubernetes/blob/master/kubernetes/mysql/mysql-deployment.yaml https://github.com/sandrogiacom/java-kubernetes/blob/master/kubernetes/app/app-deployment.yaml
  • 53. 53Deploying database and application 1.https://www.youtube.com/watch?v=mp22hUMskZo 2.https://www.youtube.com/watch?v=8xARo8XhMa4 3.https://www.youtube.com/watch?v=bbUupigXKh4 4.https://www.youtube.com/watch?v=zvGhoV-tzwY
  • 55. 55Deplying database kubectl apply -f kubernetes/mysql/
  • 56. 56Build docker image local eval $(minikube -p dev.to docker-env) docker build --force-rm -t java-k8s .
  • 57. 57Deploying app kubectl apply -f kubernetes/app/
  • 58. 58Ingress ā€“ application with friendly access https://www.youtube.com/watch?v=-MVPY_mI-so
  • 59. 59 Preparing docker and kubernetes to allow debugging Debug
  • 63. 63 ā€¢Use JRE images instead of JDK ā€¢Automate everything possible ā€¢Use environment variables ā€¢Health check ā€¢Application info ā€¢Monitoring / Logs Good practices
  • 64. 64Alinhamento e autonomia šŸ”Ŗ juntos and shallow now
  • 66. 66Testes sempre, desde o unitĆ”rio atĆ© o mais prĆ³ximo de produĆ§Ć£o
  • 68. 68Todo mundo tem um plano atĆ© tomar o primeiro soco na cara - Mike Tyson
  • 70. 70VisĆ£o de arquitetura Processo de Desenvolvimento Processos, metodologias e padrƵes para o desenvolvimento. (Pipelines e documentaƧƵes) 3 Plataforma Componentes de infraestrutura para suportar a operaĆ§Ć£o (plataforma) e desenvolvimento (facilitadores para a abstraĆ§Ć£o no framework). 2 Framework Java Framework Java seguindo a visĆ£o de arquitetura do TOTVS Platform com suporte a boas prĆ”ticas de desenvolvimento de aplicaƧƵes cloud nativas (DDD, TDD e BDD, Event Sourcing, CQRS). 1
  • 71. 71Componentes de framework RepositĆ³rio JSON SeguranƧa (Oauth2 e JWT) API de Mensageria (Spring Cloud Stream e RabbitMQ) Domain Driven Design, Event Sourcing e CQRS InternacionalizaĆ§Ć£o e LocalizaĆ§Ć£o Multi-TenĆ¢ncia (Database, Schema e Discriminator) CustomizaĆ§Ć£o e PersonalizaĆ§Ć£o OrquestraĆ§Ć£o (BPMN, DMN, CMMN e Flowable) SPRING CLOUD FRAMEWORK Logging Coreografia
  • 72. 72Componentes de plataforma Users System s Things Ingress (APIManager) KubernetesDNS (ServiceDiscovery) Identity (AuthenticationService) Kubernetes (Container Orquestration) Request #3 (Micro Service) Accountability #1 (Micro Service) Query #1 (Micro Service) Request #4 (Micro Service) Query #2 (Micro Service) Account #1 (Micro Service) RabbitMQAMQP (MessageBroker) Kubernetes Secrets&Config (ServiceConfig) TOTVSRAC (AuthorizationService) Istio,Prometheus& Grafana (Monitoring&Alert) ELK (Logging) TOTVS Environment Request #1 (Micro Service) Request #2 (Micro Service)
  • 73. 73 ā€¢ Criar uma arquitetura macro de referĆŖncia, pensando em Processo (DevOps), Framework e Plataforma. ā€¢ Entender que a fase de descoberta (Lean Inception, UX e Arquitetura) Ć© essencial para a fase de desenvolvimento (#nogohorse). ā€¢ Entender que o objetivo do Framework Ć© facilitar e prover tĆ©cnicas e que ā€œnem todo problema Ć© um prego e nem toda a soluĆ§Ć£o Ć© um marteloā€. ā€¢ Descobrir que a Plataforma Ć© tĆ£o importante quanto o Framework a ser utilizado. **** ā€¢ Descobrir que uma soluĆ§Ć£o em nuvem Ć© (muito) mais complexa por conta da necessidade de escalabilidade (custo). EsqueƧa o modelo on-premise tradicional. Good practices
  • 74. ALLAN RODRIGO LEITE Obrigado! allanrodrigol@gmail.com EDUARDO FILIPE GOMES eduardo.filipe.gomes@gmail.com ALISSON MEDEIROS alisson.medeiros@gmail.com THIAGO ALMEIDA WEBER thiago_asw@hotmail.com JEFERSON FRANCISCO jeferson.gh@gmail.com SANDRO GIACOMOZZI sandrogiacom@gmail.com ROGER STEUERNAGEL roger@steuernagel.com.br WINSTON SONNESEN sonnesen@gmail.com