Desarrollo de Microservicios con Spring Boot
@vfdiazMicroservicios y Spring Boot
- ¿De dónde venimos?
- Conceptos sobre Microservicios
- Introducción a Spring Boot
- Práctica
- ¿Por qué Spring Boot?
Hace ¿mucho? tiempo, en un entorno muy muy lejano...
@vfdiazAplicaciones “Monolito”
https://www.slideshare.net/Codemotion/refactor-microservices
Conceptos sobre Microservicios
@vfdiazMicroservicios y Spring Boot
Desarrollo de Microservicios con Spring Boot
@vfdiaz
Arquitectura de Microservicios
● Aplicación como conjunto de pequeños servicios● Cada servicio implementa una parte de funcionalidad
Clientes Productos
DAO Clientes DAO Productos
Lógico de negocio
Presentación
Aplicación “monolito”
Servidor
Clientes Productos
DAO Clientes
Serv. Clientes
Presentación
Servidor
DAO Product
Serv. Product
@vfdiazRompiendo el monolito
Arquitectura de Microservicios
● Cada servicio se ejecuta en su propio proceso● Despliegue independiente
Clientes Productos
DAO Clientes
Serv. Clientes
Presentación
DAO Product
Serv. Product
Clientes Productos
DAO Clientes
Serv. Clientes
Presentación
Servidor
DAO Product
Serv. Product
@vfdiazUna aplicación, un servidor/proceso
Arquitectura de Microservicios
● Comunicación ligera (HTTP, Queues)
Clientes Productos
DAO Clientes
Serv. Clientes
Presentación (Framework MVC JS)
DAO Product
Serv. Product
Clientes Productos
DAO Clientes
Serv. Clientes
Presentación
DAO Product
Serv. Product
API REST Clientes
API REST Productos
@vfdiazExponer servicios como APIs REST
Arquitectura de Microservicios
API REST Clientes
API REST Productos
@vfdiazCada microservicio, un equipo, tecnologías heterogéneas
Arquitectura de Microservicios
API REST ProductosAPI REST Clientes
API Gateway / Balanceador
API REST ProductosAPI REST Productos
@vfdiazEscalabilidad
Introducción a Spring Boot
@vfdiazMicroservicios y Spring Boot
Desarrollo de Microservicios con Spring Boot
@vfdiaz
Introducción a Spring Boot
https://projects.spring.io/spring-boot/
● Create stand-alone Spring applications
● Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
● Provide opinionated 'starter' POMs to simplify your Maven configuration
● Automatically configure Spring whenever possible
● Provide production-ready features such as metrics, health checks and externalized configuration
● Absolutely no code generation and no requirement for XML configuration
@vfdiazIntroducción
Introducción a Spring Boot
https://spring.io/
@vfdiazSpring Boot como base del nuevo Spring Framework
Spring Boot Starters
https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-build-systems.html#using-boot-starter
- Utilidad para montar proyectos rápidamente- Conjuntos de dependencias
spring-boot-starter-*● compile('org.springframework.boot:spring-boot-starter')● compile('org.springframework.boot:spring-boot-starter-data-jpa')● compile('org.springframework.boot:spring-boot-starter-data-rest')● compile('org.springframework.boot:spring-boot-starter-web')● compile('org.springframework.boot:spring-boot-starter-actuator')
@vfdiazDesarrollo ágil
Hello World
https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-build-systems.html#using-boot-starter
JavaSE vs
SpringBoot
@vfdiaz¿Dónde está mi Tomcat?
JPA + APIs REST en 10 minutos
Probando..
H2
API REST (Spring Data Rest)
Acceso BD (Spring Data JPA) M
onito
rizac
ión
(Act
uato
rs)
Con
sola
Ser
vici
os (S
wag
ger)
@vfdiaz
¿Por qué Spring Boot?
@vfdiazMicroservicios y Spring Boot
Desarrollo de Microservicios con Spring Boot
@vfdiaz
JPA + APIs REST en 10 minutos
Herramientas arquitectura microservicios
https://www.slideshare.net/BenWilcock1/microservices-java-ee-vs-spring-boot-and-spring-cloud
@vfdiaz