Documente Academic
Documente Profesional
Documente Cultură
Microservicios
Abel Martell
Java Cloud Developer
everis Peru
amartellram@gmail.com
Agenda
Teoría de Microservicios
Modelado y Diseño de Microservicios
Diseño de REST APIs
Microservicios con Spring Boot
Teoría de
Microservicios
TRANSFORMACION DIGITAL
SITUACION 2019
Microservicios
Reduce tiempo de salida al Ciclo de vida CI/CD Protocolos (HTTP) REST para
mercado. (Time to Market) automatizado exponer servicios y
comunicarse (Mensajeria)
Agilidad
Los microservicios fomentan una organización de equipos pequeños e independientes que se apropian de los
servicios. Los equipos actúan en un contexto pequeño y bien comprendido, y están facultados para trabajar de
forma más independiente y más rápida. Esto acorta los tiempos del ciclo de desarrollo. Usted se beneficia
significativamente del aumento de rendimiento de la organización.
Beneficios
Escalamiento
De forma independiente para satisfacer la demanda de la característica de la aplicación que respalda.
Beneficios
Libertad tecnológica
Los equipos tienen la libertad de elegir la mejor herramienta para resolver sus problemas
específicos.
Beneficios
Resiliencia
Si hay un error en todo el servicio, las aplicaciones lo manejan degradando la funcionalidad sin bloquear
toda la aplicación.
Beneficios
Facilidad de despliegue
Modelado y Diseño de
Microservicios
ARQUITECTURA Y COMPONENTES
DATOS Y COMUNICACIÓN
ESCALABILIDAD DE SERVICIOS
API GATEWAY
MONITOREO
BALANCEO DE CARGA
TRATAMIENTO DE LOGS
TRAZABILIDAD DE TRANSACCIONES
CICLO DE VIDA CI/CD
Diseño de REST APIs
REST APIs
ENDPOINT
PARAMETROS
REQUEST BODY
Elementos: Response
HTTP STATUS
RESPONSE BODY
Richardson Maturity Model (RMM)
RMM: Level 0
RMM: Level 1 - Resources
RMM: Level 2 - HTTP Verbs
RMM: Level 3 - Hypermedia Controls
Principios de Diseño: Endpoints
/products /getAllProducts
/products/1
/products?name=CocaCola
Principios de Diseño: Métodos HTTP
200 Respuesta correcta y se devuelve el contenido del recurso GET, PUT, PATCH
204 Respuesta correcta y no se devuelve el contenido del recurso GET, DELETE, PUT, PATCH
@RestController
SPRING BOOT : ANOTACIONES
@RequestMapping
@ResponseStatus
@GetMapping
@PostMapping
@DeleteMapping
@PutMapping
Práctica
Requerimientos
• Java 8 o 11
(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-
downloads-2133151.html)
• Maven 3 (https://maven.apache.org/download.cgi)
• Intellij IDEA (https://www.jetbrains.com/idea/download/)
• Spring Tool Suite (STS) (https://spring.io/tools)
• Postman (https://www.getpostman.com/downloads/)
Ejercicio
• Desarrollar un API REST para registrar, consultar, actualizar y
eliminar un empleado- datos básicos (nombres, apellidos, email).
• Utilizar HTTP Status