microprofileen arquitecturas de microservicios”
TRANSCRIPT
![Page 1: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/1.jpg)
“MicroProfile en
Arquitecturas
de
MicroServicios”
https://pixabay.com/es/contenedor-puerto-carga-apilados-3121310/
VI Semana de la Informática 2020 10/02/2020
![Page 2: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/2.jpg)
Luis Roldán – Digital Operations Lead – Altran Digital
Interests:
Mobility
Social
Cloud
Data
Always on | Anytime | Anywhere
Everybody | Everything | Every channel
Availability | Scalability | Elasticity
Velocity | Variety | Volume | Value
BYOD | IoT | Native | Hybrid
Digital Content | Gamification | Engagement| Personalization
Open Source | APIs | I/P/C/S aaS | Hybrid
Big Data | Fast Data | SQL | NoSQL | Open Data
cloudhispanoI consider myself a proactive person with strong technical skills (DevOps, BigData, Cloud, Java, Hybrid Apps),
as well as team management, always focused on Agile methodology.
Passionate about the implementation of new software architectures and / or methodologies, trying to keep
abreast of the trends in software development, but always trying to make the best decisions to solve the
problems raised in the different projects and / or clients.
![Page 3: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/3.jpg)
Introducción
![Page 4: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/4.jpg)
![Page 5: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/5.jpg)
Componentes
![Page 6: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/6.jpg)
Microservicios
API Manager
Aplicaciones Front
InfraestructuraMemoria CPU
Dev
Ops
Sec
NEG
MKT
Tribus /
Gremios/
Squads…
Cloud
Orquestadores
Service Mesh CI / CDCI / CD
DIS
PO
SIT
IVO
SD
ISP
OS
ITIV
OS
User
Admin
Lap
top
Mó
vil
IoT
QAPública Privada Híbrida
Swarm Kubernetes
Proxy
Manager Gateway Portal
UXNetwork
Sidecar
Co
ntr
ol
Co
ntr
ol
Tra
cin
gLo
gg
inM
on
ito
rin
gGe
stió
n d
e l
os
da
tos
Ge
stió
n d
e l
os
da
tos
![Page 7: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/7.jpg)
I. Código base (Codebase)Un código base sobre el que hacer el control de versiones y multiples despliegues
II. DependenciasDeclarar y aislar explícitamente las dependencias
III. ConfiguracionesGuardar la configuración en el entorno
IV. Backing servicesTratar a los “backing services” como recursos conectables
V. Construir, desplegar, ejecutarSeparar completamente la etapa de construcción de la etapa de ejecución
VI. ProcesosEjecutar la aplicación como uno o más procesos sin estado
VII. Asignación de puertosPublicar servicios mediante asignación de puertos
VIII. ConcurrenciaEscalar mediante el modelo de procesos
IX. DesechabilidadHacer el sistema más robusto intentando conseguir inicios rápidos y finalizaciones seguras
X. Paridad en desarrollo y producciónMantener desarrollo, preproducción y producción tan parecidos como sea posible
XI. HistorialesTratar los historiales como una transmisión de eventos
XII. Administración de procesosEjecutar las tareas de gestión/administración como procesos que solo se ejecutan una vez
Twelve Factors
![Page 8: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/8.jpg)
![Page 9: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/9.jpg)
Microprofile
![Page 10: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/10.jpg)
ROADMAP
MicroProfile 1.0
•Dic 2016
MicroProfile 1.1
•Agosto 2017
MicroProfile 1.2
•Septiembre 2017
MicroProfile1.3
•Diciembre 2017
MicroProfile 1.4
•Junio 2018
MicroProfile 2.0
•Julio 2018
MicroProfile 2.1
•Octubre 2018
MicroProfile 2.2
•Febrero 2019
MicroProfile especifica una colección de APIs y tecnologías Java EE que juntas forman la línea de
base para crear Microservicios, que tiene como objetivo proporcionar la portabilidad de la
aplicación en múltiples entornos de ejecución.
https://microprofile.io/
MicroProfile
3.2
(11/11/2019)
![Page 11: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/11.jpg)
• Red Hat - Thorntail
• Red Hat - Red Hat Application Runtimes
• IBM - WebSphere Liberty
• IBM - Open Liberty
• Payara Foundation - Payara Micro
• Payara Foundation - Payara Server
• Tomitribe - TomEE
• Oracle - Helidon
• Fujitsu - Launcher
• SmallRye
• Hammock
• KumuluzEE
MicroProfile implementations & open source projects
![Page 12: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/12.jpg)
PROYECTOS
![Page 13: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/13.jpg)
CDI
• Contexto e Inyección de dependencias
• Ciclo de Vida y Inyección de Tipos
• Productores
• Interceptores
• Observadores
![Page 14: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/14.jpg)
JSON-P
• Parseado, generación, transformación, búsquedas sobre JSON
• Streaming API
• Object Model API
![Page 15: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/15.jpg)
JAX-RS
• Servicios web REST
• Basado en anotaciones
• HTTP
![Page 16: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/16.jpg)
JSON-B
• Convierte un objeto Java en json y viceversa
public void printJson() {
Item item = new Item(1, "calculator");
Jsonb jsonb = JsonBuilder.create();
String jsonString = jsonb.toJson(item);
System.out.println(jsonString);
}
![Page 17: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/17.jpg)
CONFIG
Gestión de variable de configuración:
• META-INF/microprofile-config.prop
• Variables de entorno
• Propiedades de sistema
![Page 18: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/18.jpg)
FAULT TOLERANCE
La propuesta de Fault Tolerance continene los aspectos: TimeOut, RetryPolicy, Fallback, Bulkhead y
CircuitBreaker.
• TimeOut: define una duración para el tiempo de espera
• RetryPolicy: define un criterio sobre cuándo reintentar
• Fallback: proporciona una solución alternativa para una ejecución fallida.
• Bulkhead: limita el numero de llamadas concurrentes a un servicio.
• CircuitBreaker: ofrece una manera de fallar rápidamente fallando automáticamente en la ejecución
para evitar la sobrecarga del sistema y la espera indefinida o el tiempo de espera de los clientes.
![Page 19: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/19.jpg)
METRICS
Diferentes tipos de métricas:
• Base
• Vendor
• Aplicación
![Page 20: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/20.jpg)
JWT PROPAGATION
JWT se compone de:
• Header: el encabezado contiene metadatos como el
tipo de algoritmo utilizado para firmar el token
(HS256, RS256, ES256,etc), el tipo de token (OpenID
Connect, OAuth2, Microprofile JWT), etc.
• Claim: la información que desea almacenar en el
token.
• Firma
https://jwt.io/
![Page 21: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/21.jpg)
HEALTH CHECK
Health checks se utiliza para probar el estado de un servicio desde otro servicio (por ejemplo, el
controlador de servicio de Kubernetes).
![Page 22: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/22.jpg)
OPEN TRACING
• Permite gestionar la trazabilidad
de las peticiones entre microservicios
• Basado en anotaciones
![Page 23: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/23.jpg)
OPEN API
• Open API v3 esta basado
en Swagger v2
• Basado en anotaciones
• Incluido en el servidor
![Page 24: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/24.jpg)
REST CLIENT
• Cliente de Servicios web REST
• Basado en tipos (type-safe)
![Page 25: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/25.jpg)
DEMO
![Page 26: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/26.jpg)
https://start.microprofile.io/
![Page 27: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/27.jpg)
https://start.spring.io/
![Page 28: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/28.jpg)
https://www.jhipster.tech/jdl-studio/
![Page 29: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/29.jpg)
¿Preguntas?
![Page 30: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/30.jpg)
Conclusiones
![Page 31: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/31.jpg)
PLAN DE INTEGRACIÓN
31
BK2! es el plan de Iniciación profesional
que proporciona Altran a estudiantes
universitarios, de master, recién titulados
y de Formación Profesional.
El objetivo principal del Programa BK2!
es ofrecer una visión profesional y
práctica de la formación que reciben los
estudiantes o recién graduados, durante
sus estudios, con el fin de favorecer su
inserción profesional en el mercado
laboral.
UNIRTE AL PROGRAMA DE
BECAS BK2! ES
1. Sumergirte en Tecnología
2. Hacer amigos
3. Aprender
4. Colaborar y participar
![Page 32: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/32.jpg)
32Presentation title
![Page 33: MicroProfileen Arquitecturas de MicroServicios”](https://reader031.vdocument.in/reader031/viewer/2022012102/6169f85411a7b741a34d62f4/html5/thumbnails/33.jpg)