Fundamentos de microservicios


Características de microservicios
  • Autónomos
  • Especializados
  • Registro y auto-descubrimiento de servicios
  • Escalado flexible
  • Tolerancia a fallos
  • Balanceo de cargas
  • Configuración centralizadas
  • Libertad tecnológica
  • Agilidad y equipos mas pequeños
  • Ciclo de desarrollo mas cortos
  • Código reutilizable

Herramientas
  • Spring Boot
  • Spring IoC
  • Spring Data JPA e Hibernate
  • API REST
  • Spring Cloud
  • Servidor Eureka Netflix (Servidor de nombre)
  • Eureka Client (Cada microservicio tiene que ser un cliente del Servidor de nombre)
  • RestTemplate (Cliente HTTP)
  • Feign (Cliente HTTP)
  • Ribbon (balanceador de carga)
  • Hystrix (Tolerancia a fallos)
  • Gateway Zuul (Es la puerta de enlace o Puerta de entrada principal : Utiliza Ribbon, Hystrix)
  • Spring Cloud Server Config (para centralizar todas las configuraciones)
  • Spring Security OAuth2
  • JWT

¿Que son los microservicios?
Los microservicios son un conjunto de componentes pequeños y autónomos que colaboran entre sí.
Características:
  • Función única
  • Independientes (No conocen la implementación de los demás servicios)
  • Registro y auto-descubrimiento de servicios (Eureka Netflix)
  • Auto escalado y agilidad
  • Confiabilidad y tolerancia a fallos (Herramienta Hystrix - Si ocurre un timeout ejecutar otra instancia de ese servicio).
  • Balanceo de cargas (Herramienta Ribbon)
  • Configuración centralizada (Spring cloud config – utiliza GIT)

Ventajas
  • Nueva tecnología y adopción de procesos
  • Reducción de costo
  • Ciclo de liberación más rápidos
  • Equipos de desarrollo mas pequeños