Sunteți pe pagina 1din 50

Arquitectura de

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

El estilo de arquitectura de microservicios


es una forma de desarrollar una aplicación
como un conjunto de pequeños servicios,
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed
cada uno de los cuales
do eiusmod ejecuta en su propio
tempor incididunt

proceso y comunicándose con


mecanismos ligeros, generalmente una
API HTTP …

James Lewis & Martin Fowler


Microservicios

La arquitectura de microservicios consiste en


una colección de servicios livianos y poco
acoplados. Cada servicio implementa una
capacidad de negocio única. Idealmente, estos
servicios deberían ser lo suficientemente
cohesivo como para desarrollar, probar,
liberar, implementar, escalar, integrar y
mantener de forma independiente.
Características

Reduce tiempo de salida al Ciclo de vida CI/CD Protocolos (HTTP) REST para
mercado. (Time to Market) automatizado exponer servicios y
comunicarse (Mensajeria)

Productos, no proyectos Servicios con alta Organizado alrededor de las


disponibilidad y rendimiento capacidades de negocio
Características

Equipos funcionales cross


Equipos funcionales en silo
MONOLITOS VS MICROSERVICIOS
MONOLITOS VS MICROSERVICIOS
Evolución
Beneficios

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

REST determina cómo se ve la API. Es un conjunto de


reglas que los desarrolladores siguen cuando crean una.
Una de estas reglas establece que debe poder obtener un
dato (llamado recurso) cuando se vincula a una URL
específica
Elementos: Request

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

API ENDPOINT : Usar sustantivos en plural y no verbos

/products /getAllProducts

/products/1

/products?name=CocaCola
Principios de Diseño: Métodos HTTP

GET POST PUT/PATCH DELETE

• Obtener • Para crear • Para • Para


un un actualizar eliminar
recurso o recurso. un recurso un recurso
una de forma
colección total o
parcial
Principios de Diseño: Http Status

CODIGO ¿Cuándo usarlo? ¿Dónde usarlo?

200 Respuesta correcta y se devuelve el contenido del recurso GET, PUT, PATCH

201 Respuesta correcta y el recurso se ha creado POST

204 Respuesta correcta y no se devuelve el contenido del recurso GET, DELETE, PUT, PATCH

400 Peticion incorrecta: Todos


- Los parámetros indicados en la petición son incorrectos.
- Se produce un error funcional
401 No Autorizado. La petición incluye clave/token caducado o Todos
incorrectos.
403 No se tienen permisos para ejecutar esta operación Todos

404 Recurso no encontrado, el identificador de la petición no GET, PUT, PATCH, DELETE


existe.
500 Error interno en el servidor. Se envía al producirse un error en Todos.
el backend que el cliente no puede solucionar.
Microservicios
Con Spring Boot
SPRING PROJECTS
SPRING BOOT : CARACTERÍSTICAS

• Crear aplicaciones de Spring independientes


• Tomcat, Jetty or Undertow embebidos
• Proporciona dependencias 'starter' para simplificar la configuración del build.
• Configura automáticamente las librerías de Spring y de terceros siempre que
sea posible
• Proporciona features de producción como metricas, health checks y
configuración externalizada.
• No requiere configuración XML
SPRING BOOT : ANOTACIONES
SPRING BOOT : ANOTACIONES

@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

S-ar putea să vă placă și