SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Docker como la máxima expresión de Devops - WISIT 2015
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 Brey
 

Tendances (20)

Introducción a Kotlin para desarrolladores Java
Introducción a Kotlin para desarrolladores JavaIntroducción a Kotlin para desarrolladores Java
Introducción a Kotlin para desarrolladores Java
 
Seguridad de aplicaciones Java/JakartaEE con OWASP Top 10
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 10
 
Desde 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ñ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ños
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
Java EE moderno, de monolitos a Payara Micro
Java EE moderno, de monolitos a Payara MicroJava EE moderno, de monolitos a Payara Micro
Java EE moderno, de monolitos a Payara Micro
 
Configurar snmp en cisco
Configurar snmp en ciscoConfigurar snmp en cisco
Configurar snmp en cisco
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Java EE, Microprofile y Payara Micro
Java EE, Microprofile y Payara MicroJava EE, Microprofile y Payara Micro
Java EE, Microprofile y Payara Micro
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
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
 
Microservicios funcionales con Java 8, Java EE y Payara Micro
Microservicios funcionales con Java 8, Java EE y Payara MicroMicroservicios funcionales con Java 8, Java EE y Payara Micro
Microservicios funcionales con Java 8, Java EE y Payara Micro
 
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...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 
Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a Kubernetes
 
¿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!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
 
Docker como la máxima expresión de Devops - WISIT 2015
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
 
ONE Xperience at Facultat d'Informàtica de Barcelona
ONE Xperience at Facultat d'Informàtica de BarcelonaONE Xperience at Facultat d'Informàtica de Barcelona
ONE Xperience at Facultat d'Informàtica de Barcelona
 
Introducción a JakartaEE 8
Introducción a JakartaEE 8Introducción a JakartaEE 8
Introducción a JakartaEE 8
 
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...
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlima
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 

Similaire à Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven

Similaire à Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven (20)

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...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
Introduccion Java.ppt
Introduccion Java.pptIntroduccion Java.ppt
Introduccion Java.ppt
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
 
Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
 
Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
Web App Container
Web App ContainerWeb App Container
Web App Container
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
 
Despliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
Despliegue aplicaciones #SpringCloud en Cluster #Mesos MarathonDespliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
Despliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
 
An evening with... Docker
An evening with... DockerAn evening with... Docker
An evening with... Docker
 
Instalacion y uso basico de Docker.
Instalacion y uso basico de Docker.Instalacion y uso basico de Docker.
Instalacion y uso basico de Docker.
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
 
Meetup Oracle Technology MAD_BCN: 6.1 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.1 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.1 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.1 DevOps y DataOps
 
Construyendo una nube con OpenStack
Construyendo una nube con OpenStackConstruyendo una nube con OpenStack
Construyendo una nube con OpenStack
 
Docker para Dummies
Docker para DummiesDocker para Dummies
Docker para Dummies
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18
 

Plus de Víctor Leonel Orozco López

Plus de Víctor Leonel Orozco López (18)

Introducción al análisis de datos
Introducción al análisis de datosIntroducción al análisis de datos
Introducción al análisis de datos
 
From traditional to GitOps
From traditional to GitOpsFrom traditional to GitOps
From traditional to GitOps
 
De Java 8 a Java 17
De Java 8 a Java 17De Java 8 a Java 17
De Java 8 a Java 17
 
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...
Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...
 
Design Patterns para Microsserviços com MicroProfile
 Design Patterns para Microsserviços com MicroProfile Design Patterns para Microsserviços com MicroProfile
Design Patterns para Microsserviços com MicroProfile
 
MicroProfile benefits for your monolithic applications
MicroProfile benefits for your monolithic applicationsMicroProfile benefits for your monolithic applications
MicroProfile benefits for your monolithic applications
 
Consejos y el camino del desarrollador de software
Consejos y el camino del desarrollador de softwareConsejos y el camino del desarrollador de software
Consejos y el camino del desarrollador de software
 
De Java 8 ate Java 14
De Java 8 ate Java 14De Java 8 ate Java 14
De Java 8 ate Java 14
 
Programación con ECMA6 y TypeScript
Programación con ECMA6 y TypeScriptProgramación con ECMA6 y TypeScript
Programación con ECMA6 y TypeScript
 
De Java 8 a Java 11 y 14
De Java 8 a Java 11 y 14De Java 8 a Java 11 y 14
De Java 8 a Java 11 y 14
 
MicroProfile benefits for monolitic applications
MicroProfile benefits for monolitic applicationsMicroProfile benefits for monolitic applications
MicroProfile benefits for monolitic applications
 
Kotlin+MicroProfile: Enseñando trucos de 20 años a un nuevo lenguaje
Kotlin+MicroProfile: Enseñando trucos de 20 años a un nuevo lenguajeKotlin+MicroProfile: Enseñando trucos de 20 años a un nuevo lenguaje
Kotlin+MicroProfile: Enseñando trucos de 20 años a un nuevo lenguaje
 
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem novaKotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
 
Eclipse MicroProfile para el desarrollador ocupado
Eclipse MicroProfile para el desarrollador ocupadoEclipse MicroProfile para el desarrollador ocupado
Eclipse MicroProfile para el desarrollador ocupado
 
Eclipse MicroProfile para o desenvolvedor ocupado
Eclipse MicroProfile para o desenvolvedor ocupadoEclipse MicroProfile para o desenvolvedor ocupado
Eclipse MicroProfile para o desenvolvedor ocupado
 
Eclipse MicroProfile metrics: Practical use cases
Eclipse MicroProfile metrics: Practical use casesEclipse MicroProfile metrics: Practical use cases
Eclipse MicroProfile metrics: Practical use cases
 
Microservicios con Jakarta EE y Eclipse MicroProfile
Microservicios con Jakarta EE y Eclipse MicroProfileMicroservicios con Jakarta EE y Eclipse MicroProfile
Microservicios con Jakarta EE y Eclipse MicroProfile
 
OWASP Top 10 101 en Java EE
OWASP Top 10 101 en Java EEOWASP Top 10 101 en Java EE
OWASP Top 10 101 en Java EE
 

Dernier

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Dernier (11)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 

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