Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven

Víctor Leonel Orozco López
Bootstraping real world Jakarta EE/MicroProfile microservices
with Maven Archetypes
Víctor Orozco - @tuxtor
1 de octubre de 2021
Software architect
1
Microservicio
Microservicio
Un servicio enfocado en un problema de negocio, gestionado independiente,
creado con herramientas para cumplir su propósito
Figura 1: Source: microservices.io
2
Microservice Chassis en Java
Panorama de chassis en Java
• DIY
• Javalin
• Spark
• Helidon SE
• Microframework runtimes
• Apache TomEE
• Dropwizard
• Payara Micro
• Full fledged runtimes (ecosistemas)
• Spring Boot
• Kumuluz EE
• Quarkus
3
Microservice Chassis
Microservicios en el mundo real
• Tu código
• Chassis
• Extensiones chassis
• Bibliotecas independientes
• Bibliotecas no funcionales -e.g. SCM, Testing-
• Descriptores para orquestación (Docker, Compose, K8S)
4
Bootstraping microservices
Microservice Chassis bootstrap
La forma Nabenik de iniciar proyectos
• Nabenik es una empresa que utiliza Java en casi todos sus proyectos y todos
los desarrolladores están entrenados en Java EE
• Apps creciendo desde 2014 -e.g. ERP, POS con geofence-
• Estudio de desarrollo
• Necesitabamos mantener un set de dependencias que todos los
desarrolladores conozcan
5
Microservice Chassis bootstrap
Un microservicio típico
• Lenguaje: Java 11 y a veces Kotlin
• Java EE / Jakarta EE (Wildfly, Payara, WebLogic)
• MicroProfile
• Persistencia: JPA + DeltaSpike Data + persistence.xml + JTA Data source
• Logs: SLF4J y proveedor CDI
• Despliegue: Docker + Kubernetes con Eclipse JKube y descriptores YAML
• Testing: Arquillian, JUnit
6
Microservice Chassis starters
Nuestra jornada para arrancar microservicios/servicios ligeros
1. pom.xml personalizado basado en la experiencia (EL POM de referencia)
2. Starters con manual de uso y documentación de extensiones
3. Proyecto de ejemplo que todo mundo clona y modifica
4. Arquetipo
7
EL POM de referencia
• Heredado de
nuestros
proyectos con EAR
• Bueno para
centralizar
versiones
• Difícil de mantener
sin quebrar algún
modulo existente
8
Starters
• Geniales para
principiantes
• Iniciar el proyecto
y leer la
documentación
• No siempre un
starter incluye una
dependencia que
te gusta
9
Proyecto de ejemplo
• Ajustado a nuestra
necesidad
• Reemplazamos
manualmente
package name,
app name y
versión
• Difícil de subir
dependencias sin
probar
apropiadamente
10
Arquetipo
• Basado en el
proyecto de
ejemplo
• Disponible en
repositorio interno
(y/o Maven
Central)
• Conjunto de
dependencias y
runtime aprobado
• Ajustado desde el
día 0
11
Creando un arquetipo de
microservicio
Demo
1. Crear un proyecto base
2. Usar el arquetipo maven create-from-project
3. Reemplazar strings con templates -e.g. Package name, app name, variable-
4. non-maven resources = ajuste manual
5. Probar el arquetipo
6. Subirlo a un repositorio (por si sola es otra presentación)
12
Víctor Orozco
• vorozco@nabenik.com
• @tuxtor
• https://vorozco.com
• https://tuxtor.shekalug.org
This work is licensed under
Creative Commons Attribution-
NonCommercial-ShareAlike 3.0
Guatemala (CC BY-NC-SA 3.0 GT).
13
1 of 15

Recommended

Tolerancia a fallas, service mesh y chassis by
Tolerancia a fallas, service mesh y chassisTolerancia a fallas, service mesh y chassis
Tolerancia a fallas, service mesh y chassisVíctor Leonel Orozco López
1.1K views16 slides
Introducción a GraalVM Native para aplicaciones JVM by
Introducción a GraalVM Native para aplicaciones JVMIntroducción a GraalVM Native para aplicaciones JVM
Introducción a GraalVM Native para aplicaciones JVMVíctor Leonel Orozco López
1.9K views23 slides
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta... by
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Víctor Leonel Orozco López
1.2K views42 slides
Empaquetando aplicaciones Java con Docker y Kubernetes by
Empaquetando aplicaciones Java con Docker y KubernetesEmpaquetando aplicaciones Java con Docker y Kubernetes
Empaquetando aplicaciones Java con Docker y KubernetesVíctor Leonel Orozco López
2K views54 slides
Explorando los objetos centrales de Kubernetes con Oracle Cloud by
Explorando los objetos centrales de Kubernetes con Oracle CloudExplorando los objetos centrales de Kubernetes con Oracle Cloud
Explorando los objetos centrales de Kubernetes con Oracle CloudVíctor Leonel Orozco López
872 views42 slides
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta... by
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Víctor Leonel Orozco López
137 views42 slides

More Related Content

What's hot

Introducción a Kotlin para desarrolladores Java by
Introducción a Kotlin para desarrolladores JavaIntroducción a Kotlin para desarrolladores Java
Introducción a Kotlin para desarrolladores JavaVíctor Leonel Orozco López
2.6K views55 slides
Seguridad de aplicaciones Java/JakartaEE con OWASP Top 10 by
Seguridad de aplicaciones Java/JakartaEE con OWASP Top 10Seguridad de aplicaciones Java/JakartaEE con OWASP Top 10
Seguridad de aplicaciones Java/JakartaEE con OWASP Top 10Víctor Leonel Orozco López
1.5K views38 slides
Desde la TV, hasta la nube, el ecosistema de Java en 26 años by
Desde la TV, hasta la nube, el ecosistema de Java en 26 añosDesde la TV, hasta la nube, el ecosistema de Java en 26 años
Desde la TV, hasta la nube, el ecosistema de Java en 26 añosVíctor Leonel Orozco López
1.1K views29 slides
Introducción a Kubernetes by
Introducción a KubernetesIntroducción a Kubernetes
Introducción a KubernetesParadigma Digital
2.1K views26 slides
Java EE moderno, de monolitos a Payara Micro by
Java EE moderno, de monolitos a Payara MicroJava EE moderno, de monolitos a Payara Micro
Java EE moderno, de monolitos a Payara MicroVíctor Leonel Orozco López
1.4K views42 slides
Configurar snmp en cisco by
Configurar snmp en ciscoConfigurar snmp en cisco
Configurar snmp en ciscochulver
1.5K views12 slides

What's hot(20)

Configurar snmp en cisco by chulver
Configurar snmp en ciscoConfigurar snmp en cisco
Configurar snmp en cisco
chulver1.5K views
Meetup de kubernetes, conceptos básicos. by Paradigma Digital
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
Paradigma Digital859 views
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx by Paradigma Digital
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Paradigma Digital366 views
Kubernetes technical overview and our experience at Restorando :: Buenos Aire... by Restorando
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Restorando531 views
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica! by Paradigma Digital
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
Paradigma Digital545 views
Docker como la máxima expresión de Devops - WISIT 2015 by Gustavo Andres Brey
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015
Gustavo Andres Brey1.2K views
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A... by OpenNebula Project
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...
OpenNebula Project760 views
Kubernetes - #dockerconlima by Angel Nuñez
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlima
Angel Nuñez770 views
Presentación Docker by ITPAMI
Presentación DockerPresentación Docker
Presentación Docker
ITPAMI 791 views

Similar to Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven

VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON... by
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...Francisco Javier Barrena
516 views100 slides
Devops episodio 1. devOpsTnf by
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Erasmo Domínguez Jiménez
661 views37 slides
Introduccion Java.ppt by
Introduccion Java.pptIntroduccion Java.ppt
Introduccion Java.pptValentin Choquehuanca
4 views32 slides
Introducción a Scala by
Introducción a ScalaIntroducción a Scala
Introducción a Scalajose diaz
301 views82 slides
Curso gratuito de Docker by
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de DockerRafael Hernamperez Martin
368 views90 slides
Kubernetes workshop by
Kubernetes workshopKubernetes workshop
Kubernetes workshopRaúl Requero García
188 views23 slides

Similar to Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven(20)

VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON... by Francisco Javier Barrena
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
Introducción a Scala by jose diaz
Introducción a ScalaIntroducción a Scala
Introducción a Scala
jose diaz301 views
Web App Container by CDS
Web App ContainerWeb App Container
Web App Container
CDS284 views
Despliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon by Juan Vergara
Despliegue aplicaciones #SpringCloud en Cluster #Mesos MarathonDespliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
Despliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
Juan Vergara498 views
An evening with... Docker by Arkhotech
An evening with... DockerAn evening with... Docker
An evening with... Docker
Arkhotech583 views
Curso Kubernetes CodeURJC by Micael Gallego
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
Micael Gallego2.5K views
docker.pdf by Kenn70
docker.pdfdocker.pdf
docker.pdf
Kenn704 views
Docker: la revolución en virtualización by Marcelo Ochoa
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
Marcelo Ochoa1.1K views
Introduccion a SQL Server 2017 en Docker by Eduardo Castro
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
Eduardo Castro1.2K views
Construyendo una nube con OpenStack by LibreCon
Construyendo una nube con OpenStackConstruyendo una nube con OpenStack
Construyendo una nube con OpenStack
LibreCon3.7K views
Docker para Dummies by Raúl Unzué
Docker para DummiesDocker para Dummies
Docker para Dummies
Raúl Unzué3.3K views
Docker 10 02_18 by enyert
Docker 10 02_18Docker 10 02_18
Docker 10 02_18
enyert258 views

More from Víctor Leonel Orozco López

Introducción al análisis de datos by
Introducción al análisis de datosIntroducción al análisis de datos
Introducción al análisis de datosVíctor Leonel Orozco López
103 views42 slides
From traditional to GitOps by
From traditional to GitOpsFrom traditional to GitOps
From traditional to GitOpsVíctor Leonel Orozco López
7 views23 slides
De Java 8 a Java 17 by
De Java 8 a Java 17De Java 8 a Java 17
De Java 8 a Java 17Víctor Leonel Orozco López
1.9K views60 slides
Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch... by
Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...
Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...Víctor Leonel Orozco López
325 views14 slides
Design Patterns para Microsserviços com MicroProfile by
 Design Patterns para Microsserviços com MicroProfile Design Patterns para Microsserviços com MicroProfile
Design Patterns para Microsserviços com MicroProfileVíctor Leonel Orozco López
222 views48 slides
MicroProfile benefits for your monolithic applications by
MicroProfile benefits for your monolithic applicationsMicroProfile benefits for your monolithic applications
MicroProfile benefits for your monolithic applicationsVíctor Leonel Orozco López
299 views24 slides

More from Víctor Leonel Orozco López(18)

Recently uploaded

Excel avanzado (1) (1).pdf by
Excel avanzado (1) (1).pdfExcel avanzado (1) (1).pdf
Excel avanzado (1) (1).pdfKagomeHigurashi11
6 views7 slides
PROYECTOS 3ER PERIODO Sofia Collazos Santos.pdf by
PROYECTOS 3ER PERIODO Sofia Collazos Santos.pdfPROYECTOS 3ER PERIODO Sofia Collazos Santos.pdf
PROYECTOS 3ER PERIODO Sofia Collazos Santos.pdfSaMu554
10 views2 slides
Estrategia de apoyo de tecnologia 3er periodo de tecnologia.pdf by
Estrategia de apoyo de tecnologia 3er periodo de tecnologia.pdfEstrategia de apoyo de tecnologia 3er periodo de tecnologia.pdf
Estrategia de apoyo de tecnologia 3er periodo de tecnologia.pdfSofiaArceCaicedo
9 views12 slides
TECNOLOGIA 10-3 (2).pdf by
TECNOLOGIA 10-3 (2).pdfTECNOLOGIA 10-3 (2).pdf
TECNOLOGIA 10-3 (2).pdfangelacastaneda5
5 views16 slides
Probando aplicaciones basadas en LLMs.pdf by
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdfFederico Toledo
44 views40 slides
Diaporama del internet by
Diaporama del internet  Diaporama del internet
Diaporama del internet leslyem741
5 views11 slides

Recently uploaded(20)

PROYECTOS 3ER PERIODO Sofia Collazos Santos.pdf by SaMu554
PROYECTOS 3ER PERIODO Sofia Collazos Santos.pdfPROYECTOS 3ER PERIODO Sofia Collazos Santos.pdf
PROYECTOS 3ER PERIODO Sofia Collazos Santos.pdf
SaMu55410 views
Estrategia de apoyo de tecnologia 3er periodo de tecnologia.pdf by SofiaArceCaicedo
Estrategia de apoyo de tecnologia 3er periodo de tecnologia.pdfEstrategia de apoyo de tecnologia 3er periodo de tecnologia.pdf
Estrategia de apoyo de tecnologia 3er periodo de tecnologia.pdf
Probando aplicaciones basadas en LLMs.pdf by Federico Toledo
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdf
Federico Toledo44 views
Diaporama del internet by leslyem741
Diaporama del internet  Diaporama del internet
Diaporama del internet
leslyem7415 views
Taller de Electricidad y Electrónica.docx by Franksamuel11
Taller de Electricidad y Electrónica.docxTaller de Electricidad y Electrónica.docx
Taller de Electricidad y Electrónica.docx
Franksamuel117 views
Google alternativo, para volar by corpbracat
Google alternativo, para volarGoogle alternativo, para volar
Google alternativo, para volar
corpbracat8 views
Tarea15.pptx by illanlir
Tarea15.pptxTarea15.pptx
Tarea15.pptx
illanlir7 views
PostCall: Encuestas telefónicas post llamada by OpenDireito
PostCall: Encuestas telefónicas post llamadaPostCall: Encuestas telefónicas post llamada
PostCall: Encuestas telefónicas post llamada
OpenDireito6 views
excelavanzado1-231020003159-be608ddc.pdf by sarahloradorado
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdf
sarahloradorado11 views
Fundamentos De Electricidad y Electrónica equipo 5.pdf by CamilaCordoba30
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf
CamilaCordoba3015 views
Tecnologia (6).pdf by fspro99
Tecnologia (6).pdfTecnologia (6).pdf
Tecnologia (6).pdf
fspro996 views
Excel avanzado.pdf by fspro99
Excel avanzado.pdfExcel avanzado.pdf
Excel avanzado.pdf
fspro998 views

Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven

  • 1. Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Archetypes Víctor Orozco - @tuxtor 1 de octubre de 2021 Software architect 1
  • 2. Microservicio Microservicio Un servicio enfocado en un problema de negocio, gestionado independiente, creado con herramientas para cumplir su propósito Figura 1: Source: microservices.io 2
  • 3. Microservice Chassis en Java Panorama de chassis en Java • DIY • Javalin • Spark • Helidon SE • Microframework runtimes • Apache TomEE • Dropwizard • Payara Micro • Full fledged runtimes (ecosistemas) • Spring Boot • Kumuluz EE • Quarkus 3
  • 4. Microservice Chassis Microservicios en el mundo real • Tu código • Chassis • Extensiones chassis • Bibliotecas independientes • Bibliotecas no funcionales -e.g. SCM, Testing- • Descriptores para orquestación (Docker, Compose, K8S) 4
  • 6. Microservice Chassis bootstrap La forma Nabenik de iniciar proyectos • Nabenik es una empresa que utiliza Java en casi todos sus proyectos y todos los desarrolladores están entrenados en Java EE • Apps creciendo desde 2014 -e.g. ERP, POS con geofence- • Estudio de desarrollo • Necesitabamos mantener un set de dependencias que todos los desarrolladores conozcan 5
  • 7. Microservice Chassis bootstrap Un microservicio típico • Lenguaje: Java 11 y a veces Kotlin • Java EE / Jakarta EE (Wildfly, Payara, WebLogic) • MicroProfile • Persistencia: JPA + DeltaSpike Data + persistence.xml + JTA Data source • Logs: SLF4J y proveedor CDI • Despliegue: Docker + Kubernetes con Eclipse JKube y descriptores YAML • Testing: Arquillian, JUnit 6
  • 8. Microservice Chassis starters Nuestra jornada para arrancar microservicios/servicios ligeros 1. pom.xml personalizado basado en la experiencia (EL POM de referencia) 2. Starters con manual de uso y documentación de extensiones 3. Proyecto de ejemplo que todo mundo clona y modifica 4. Arquetipo 7
  • 9. EL POM de referencia • Heredado de nuestros proyectos con EAR • Bueno para centralizar versiones • Difícil de mantener sin quebrar algún modulo existente 8
  • 10. Starters • Geniales para principiantes • Iniciar el proyecto y leer la documentación • No siempre un starter incluye una dependencia que te gusta 9
  • 11. Proyecto de ejemplo • Ajustado a nuestra necesidad • Reemplazamos manualmente package name, app name y versión • Difícil de subir dependencias sin probar apropiadamente 10
  • 12. Arquetipo • Basado en el proyecto de ejemplo • Disponible en repositorio interno (y/o Maven Central) • Conjunto de dependencias y runtime aprobado • Ajustado desde el día 0 11
  • 13. Creando un arquetipo de microservicio
  • 14. Demo 1. Crear un proyecto base 2. Usar el arquetipo maven create-from-project 3. Reemplazar strings con templates -e.g. Package name, app name, variable- 4. non-maven resources = ajuste manual 5. Probar el arquetipo 6. Subirlo a un repositorio (por si sola es otra presentación) 12
  • 15. Víctor Orozco • vorozco@nabenik.com • @tuxtor • https://vorozco.com • https://tuxtor.shekalug.org This work is licensed under Creative Commons Attribution- NonCommercial-ShareAlike 3.0 Guatemala (CC BY-NC-SA 3.0 GT). 13