Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Vı́ctor Orozco
• Developer (JVM/Open
Source Advocate)
• JUG Leader
• Oracle Certified,
Lightbend Certified
• @tuxtor
• http://vorozco.com
• http://tuxtor.shekalug.org
2
Java EE 7
Java EE 7
3
Java EE 7
Java EE 7
• Nuevo JMS
• WebSockets
• JSON Support
• Concurrency
• Nuevo JAX-RS
• Batch apps
4
Java EE 7 - La rebelión de los Dukes
Java EE 7 - La rebelión
5
Java EE 8
Java EE 8
6
Java EE 8
Java EE 8
• Mejor integración de JSF con CDI
• Mejor integración de JMS con CDI
• HTTP/2
• JSON-B
• Security
• JAX-RS Reactivo
7
Java EE 8
8
Eclipse Jakarta EE
9
El mundo micro y sus lecciones
Lección 0: Lo que la gente realmente
quiere no son microservicios, son
sistemas reactivos
Reactive Manifesto
Figure 1: https://www.reactivemanifesto.org/
10
Microservicios
Ventajas
Desventajas
• Tooling overhead
• Depuración
• Transacciones distribuidas
• Latencia
• Dependencia
11
Microservicios
Desventaja principal
12
Lección 1: Los microservicios son una
revolución de pensamiento
Monolito
13
ESB
Figure 3: ESB
14
Microservicios
Figure 4: Microservicios
15
Lección 2: Microservicios no son lo
mismo para todos
Como
• Vert.x
• Spring Boot
• DropWizard
• Akka
• NodeJS . . .
• Java EE
16
J2EE
17
Recursos humanos
18
Lección 3: No es necesario ser 100%
”microservicios”
Microservicios - Java EE
19
Microservicios - Java EE
Implementación
20
Microservicios - Java EE
21
Microservicios - Java EE
22
Microservicios - Java EE
23
Microservicios - Java EE
24
Microservicios - Java EE
25
Microservicios - Java EE
26
Microservicios - Implementaciones
27
Microservicios - Payara
• Microprofile 1.3
• Jakarta EE Web Profile
• JCache - Hazelcast
Despliegues
28
Demo
Jakarta EE Micro - Demo
29
Payara Micro - Jakarta EE tradicional
Asumimos
• EJB
• JTA
• JAX-RS
• CDI
30
Payara Micro - Micro Java EE
MicroProfile: JAX-RS, CDI (Por servicio), Config, Fault Tolerance, Metrics
Implementación: EJB, JTA (Por servicio)
Por hacer: Location, Deployment, Orchestation, Balancing, Consistency,
Patterns
31
Config
@Inject
@ConfigProperty ( name = " omdbservice . url " )
String o m d b D a e m o n ServiceUrl ;
32
Fault tolerance
• Circuit Breaker
• Bulkhead
• Fallback
• Retry
• Timeout
33
Fault tolerance - Fallback, Timeout
@GET
@Path ( " /{ id :[ a - z ]*[0 -9][0 -9]*} " )
@Fallback ( fallbackMethod = " findByIdFallBack " )
@Timeout ( TIMEOUT )
public Response findById ( @PathParam ( " id " )
final String imdbId ) {
...
}
34
Metrics
• Vendor
• Base
• Application
35
Metric
@Inject
@Metric
Counter failedQueries ;
36
Gracias
• me@vorozco.com
• http://vorozco.com
• http://github.com/tuxtor/slides
37