SlideShare a Scribd company logo
1 of 24
Download to read offline
Introducción a arquitecturas basadas en microservicios
Introducción a arquitecturas
basadas 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
Ribbon
Ribbon
Microservicio
Configuración
Logging
Circuit Breaker
Introducción a arquitecturas basadas en microservicios
Vista general en una arquitectura basada en microservicios: Netflix
Zuul
Eureka
Server
Ribbon
Ribbon
Ribbon
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
@RestController
public class EurekaClientApplication {
@RequestMapping("/")
public String home() {
return "Hello World" ;
}
public static void main(String[] args) {
SpringApplication .run(EurekaClientApplication.class, args);
}
}
Cliente Eureka
@SpringBootApplication
@EnableEurekaServer
@EnableDiscoveryClient
public 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
Eureka
Server
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 :)

More Related Content

Viewers also liked

Zookeeper: Wait-free Coordination for Internet-scale Systems
Zookeeper: Wait-free Coordination for Internet-scale SystemsZookeeper: Wait-free Coordination for Internet-scale Systems
Zookeeper: Wait-free Coordination for Internet-scale Systems
Leandro Lera Romero
 

Viewers also liked (20)

Analysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEOAnalysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEO
 
Use Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projectsUse Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projects
 
ECMAScript 6
ECMAScript 6ECMAScript 6
ECMAScript 6
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
 
Cómo usar google analytics
Cómo usar google analyticsCómo usar google analytics
Cómo usar google analytics
 
Kafka y python
Kafka y pythonKafka y python
Kafka y python
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJava
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Google Analytics for Developers
Google Analytics for DevelopersGoogle Analytics for Developers
Google Analytics for Developers
 
Aplicaciones Serverless
Aplicaciones ServerlessAplicaciones Serverless
Aplicaciones Serverless
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?
 
Python y Flink
Python y FlinkPython y Flink
Python y Flink
 
HTML5 Web Components
HTML5 Web ComponentsHTML5 Web Components
HTML5 Web Components
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 
Divide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los MicroserviciosDivide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los Microservicios
 
Zookeeper: Wait-free Coordination for Internet-scale Systems
Zookeeper: Wait-free Coordination for Internet-scale SystemsZookeeper: Wait-free Coordination for Internet-scale Systems
Zookeeper: Wait-free Coordination for Internet-scale Systems
 
Kaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + StompKaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + Stomp
 
Transformación digital y el nuevo paradigma de TI
Transformación digital y el nuevo paradigma de TI Transformación digital y el nuevo paradigma de TI
Transformación digital y el nuevo paradigma de TI
 
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa
 
Monitorización
MonitorizaciónMonitorización
Monitorización
 

More from Paradigma Digital

More from Paradigma Digital (14)

Ddd + ah + microservicios
Ddd + ah + microserviciosDdd + ah + microservicios
Ddd + ah + microservicios
 
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
 
Have you met Istio?
Have you met Istio?Have you met Istio?
Have you met Istio?
 
Linkerd a fondo
Linkerd a fondoLinkerd a fondo
Linkerd a fondo
 
Horneando apis
Horneando apisHorneando apis
Horneando apis
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the future
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFlux
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API Management
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microservicios
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma Digital
 
Cultura Digital Paradigma
Cultura Digital ParadigmaCultura Digital Paradigma
Cultura Digital Paradigma
 

Recently uploaded

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Recently uploaded (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Introducción a arquitecturas basadas en microservicios.

  • 1. Introducción a arquitecturas basadas en microservicios Introducción a arquitecturas basadas en microservicios
  • 2. 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.”
  • 3. Introducción a arquitecturas basadas en microservicios Arquitecturas monolíticas vs arquitecturas de microservicios Arquitecturas monolíticas (pre-SOA) Arquitecturas SOA Microservicios
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. Introducción a arquitecturas basadas en microservicios Despliegue independiente de cada microservicio. Beneficios de arquitecturas basadas en microservicios “VS” MicroserviciosMonolítica
  • 9. Introducción a arquitecturas basadas en microservicios Casos de uso
  • 10. Introducción a arquitecturas basadas en microservicios Desafíos derivados de una arquitectura de microservicios
  • 11. Introducción a arquitecturas basadas en microservicios ¿Qué necesitamos en una arquitectura basada en microservicios?
  • 12. Introducción a arquitecturas basadas en microservicios Arquitectura de microservicios Edge Service Registry Load Balancer Ribbon Ribbon Microservicio Configuración Logging Circuit Breaker
  • 13. Introducción a arquitecturas basadas en microservicios Vista general en una arquitectura basada en microservicios: Netflix Zuul Eureka Server Ribbon Ribbon Ribbon Microservicio Configuración Logging Hystrix (Spring, Cloud, Config, etc.) (Log4, Blitz4J, ELK, etc.)
  • 14. Introducción a arquitecturas basadas en microservicios Registry: Autodescubrimiento con Eureka @Configuration @EnableAutoConfiguration @EnableEurekaClient @RestController public class EurekaClientApplication { @RequestMapping("/") public String home() { return "Hello World" ; } public static void main(String[] args) { SpringApplication .run(EurekaClientApplication.class, args); } } Cliente Eureka @SpringBootApplication @EnableEurekaServer @EnableDiscoveryClient public class EurekaServerApplication { public static void main(String[] args) { SpringApplication .run(EurekaServerApplication. class, args); } } Servidor Eureka
  • 15. Introducción a arquitecturas basadas en microservicios Load Balancer: Ribbon Instancia 2 Instancia n Instancia 1 Eureka Server Ribbon ...
  • 16. Introducción a arquitecturas basadas en microservicios Edge Service: Zuul ● ●
  • 17. Introducción a arquitecturas basadas en microservicios Circuit Breaker: Hystrix
  • 18. Introducción a arquitecturas basadas en microservicios Circuit Breaker: Hystrix
  • 19. Introducción a arquitecturas basadas en microservicios Circuit Breaker: Hystrix Ejemplo de monitorización en tiempo real de un microservicio utilizando Hystrix
  • 20. Introducción a arquitecturas basadas en microservicios Monitorización: Turbine y Graffite Ejemplo de dashboard en tiempo real de varios microservicios utilizando Turbine
  • 21. Introducción a arquitecturas basadas en microservicios Configuración: Spring Cloud Config y/o Archaius
  • 22. Introducción a arquitecturas basadas en microservicios Logging: Log4J 2.0 + RSyslog
  • 23. Introducción a arquitecturas basadas en microservicios ¡A programar! "Lo que tenemos que aprender lo aprendemos haciéndolo" Aristóteles
  • 24. Introducción a arquitecturas basadas en microservicios Muchas gracias :)