Introducción a arquitecturas basadas en microservicios.
-
Upload
paradigma-digital -
Category
Technology
-
view
948 -
download
1
Transcript of Introducción a arquitecturas basadas en microservicios.
Introducción a arquitecturas basadas en microservicios
Introducción a arquitecturasbasadas en microservicios
Introducción a arquitecturas basadas en microservicios
¿Qué son los microservicios?
“Microservices is a software architecture style, in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs. These services are small, highly decoupled and focus on doing a small task.”
Introducción a arquitecturas basadas en microservicios
Arquitecturas monolíticas vs arquitecturas de microservicios
Arquitecturas monolíticas (pre-SOA) Arquitecturas SOA Microservicios
Introducción a arquitecturas basadas en microservicios
Beneficios de arquitecturas basadas en microservicios
Principio de responsabilidad única: Cada microservicio hará una cosa, pero la hará bien.
“VS”
MicroserviciosMonolítica
Introducción a arquitecturas basadas en microservicios
Desarrollo más eficiente al ser servicios más pequeños y especializados.
Beneficios de arquitecturas basadas en microservicios
“VS”
MicroserviciosMonolítica
Introducción a arquitecturas basadas en microservicios
Escalado eficiente, elástico y horizontal en función de la demanda.
Beneficios de arquitecturas basadas en microservicios
“VS”
MicroserviciosMonolítica
Introducción a arquitecturas basadas en microservicios
Beneficios de arquitecturas basadas en microservicios
Políglota, cada servicio puede estar desarrollado con una tecnología diferente.
Beneficios de arquitecturas basadas en microservicios
“VS”
MicroserviciosMonolítica
Introducción a arquitecturas basadas en microservicios
Despliegue independiente de cada microservicio.
Beneficios de arquitecturas basadas en microservicios
“VS”
MicroserviciosMonolítica
Introducción a arquitecturas basadas en microservicios
Casos de uso
Introducción a arquitecturas basadas en microservicios
Desafíos derivados de una arquitectura de microservicios
Introducción a arquitecturas basadas en microservicios
¿Qué necesitamos en una arquitectura basada en microservicios?
Introducción a arquitecturas basadas en microservicios
Arquitectura de microservicios
Edge Service
Registry
Load Balancer
RibbonRibbon
Microservicio
Configuración
Logging
Circuit Breaker
Introducción a arquitecturas basadas en microservicios
Vista general en una arquitectura basada en microservicios: Netflix
Zuul
EurekaServer
Ribbon
RibbonRibbon
Microservicio
Configuración
Logging
Hystrix
(Spring, Cloud, Config, etc.)
(Log4, Blitz4J, ELK, etc.)
Introducción a arquitecturas basadas en microservicios
Registry: Autodescubrimiento con Eureka
@Configuration@EnableAutoConfiguration@EnableEurekaClient@RestControllerpublic class EurekaClientApplication {
@RequestMapping("/") public String home() { return "Hello World" ; }
public static void main(String[] args) { SpringApplication .run(EurekaClientApplication.class, args); }
}
Cliente Eureka
@SpringBootApplication@EnableEurekaServer@EnableDiscoveryClientpublic class EurekaServerApplication {
public static void main(String[] args) { SpringApplication .run(EurekaServerApplication.class, args); }
}
Servidor Eureka
Introducción a arquitecturas basadas en microservicios
Load Balancer: Ribbon
Instancia 2
Instancia n
Instancia 1
EurekaServer
Ribbon
...
Introducción a arquitecturas basadas en microservicios
Edge Service: Zuul
●
●
Introducción a arquitecturas basadas en microservicios
Circuit Breaker: Hystrix
Introducción a arquitecturas basadas en microservicios
Circuit Breaker: Hystrix
Introducción a arquitecturas basadas en microservicios
Circuit Breaker: Hystrix
Ejemplo de monitorización en tiempo real de un microservicio utilizando Hystrix
Introducción a arquitecturas basadas en microservicios
Monitorización: Turbine y Graffite
Ejemplo de dashboard en tiempo real de varios microservicios utilizando Turbine
Introducción a arquitecturas basadas en microservicios
Configuración: Spring Cloud Config y/o Archaius
Introducción a arquitecturas basadas en microservicios
Logging: Log4J 2.0 + RSyslog
Introducción a arquitecturas basadas en microservicios
¡A programar!
"Lo que tenemos que aprender lo aprendemos haciéndolo"
Aristóteles
Introducción a arquitecturas basadas en microservicios
Muchas gracias :)