31

Desarrollo de Microservicios con Spring Boot

Embed Size (px)

Citation preview

2008 2009-2010 2011-...

@vfdiaz

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?

¿De dónde venimos?

@vfdiazMicroservicios y Spring Boot

Desarrollo de Microservicios con Spring Boot

Hace ¿mucho? tiempo, en un entorno muy muy lejano...

@vfdiazAplicaciones “Monolito”

https://www.slideshare.net/Codemotion/refactor-microservices

Tipos de arquitectura: Layered

@vfdiazHay muchas “arquitecturas”

Tipos de arquitectura: Onion

@vfdiazHay muchas “arquitecturas”

Tipos de arquitectura: Hexagon

@vfdiazHay muchas “arquitecturas”

http://fideloper.com

Tipos de arquitectura: EDA (Event-Driven Arch.)

@vfdiazHay muchas “arquitecturas”

Tipos de arquitectura: SEDA (Staged EDA)

@vfdiazHay muchas “arquitecturas”

Tipos de arquitectura: SOA

@vfdiazVamos acercándonos...

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

Introducción a Spring Boot

https://projects.spring.io/spring-boot/

@vfdiazVersiones

Spring Boot Initializr

https://projects.spring.io/spring-boot/

@vfdiazCrear esqueleto

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?

Práctica

@vfdiazMicroservicios y Spring Boot

Desarrollo de Microservicios con Spring Boot

@vfdiaz

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

¿Por qué Spring Boot?

vs $ java -jar myapp.jar

No necesito mantener servidores @vfdiaz

¿Por qué Spring Boot?

Ágil @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

@vfdiazMicroservicios y Spring Boot

Desarrollo de Microservicios con Spring Boot

@vfdiaz