SlideShare una empresa de Scribd logo
ARQUITECTURA MICROSERVICIOS
SOBRE NOSOTROS
 Julio Palma
 Twitter: @restalion
 GitHub: github.com/restalion
 Technology Architect en
Tecnilógica
 Juanma Cintas
 Twitter: @juanmacintas
 GitHub: github.com/juanmacintas
 Senior Analyst en Tecnilógica
OTRAS CHARLAS DE ACCENTURE TECHNOLOGY
Spring Cloud Microservices 101
01 Junio 02 Junio
Open Source Code Inspection, Security and
Testing Power Tools
Integrando Machine Learning en Microservicios
Selenium 1:1Desarrolla aplicaciones web sin usar HTML ni
JavaScript
Accenture Technology Stand
@juanmacintas, @restalion
Sala Colmenar, 11:00
@oscuroweb, @restalion
Sala 1, 16:00
@cloud4dev
Sala Colmenar, 12:00
@_deors
Sala 2, 17:30
@viarellano,
@thetechoddbug
Sala 2, 17:30
Podéis visitarnos en nuestro
stand a lo largo de toda la
conferencia
Introducción a Lagom y primeros pasos
@oscuroweb, David Urdiales
Sala Riogordo 1, 18:00
OBJETIVOS DE LA SESIÓN
 Entender las diferencias entre una arquitectura monolítica y otra basada en microservicios.
 Crear un mapa de todos los servicios que necesitaremos de la outer architecture que nos
permita “montar” una solución completa.
 Identificar algunas alternativas para cubrir cada una de las áreas de la outer architecture.
MONOLITO
Servicios
DAO
Monolito
EIS
Presentación
Un único .war
representa una
“Solución”
MONOLITO
EISEIS
Métricas
Gestión de errores
Inversión del
Control
Configuración
Logs
Auditoría
Seguridad
Servicios
DAO
Presentación
MONOLITO
EIS EIS EIS
DAO DAO DAO
Servicio Servicio Servicio
Servicio
Configuración
Logs
Auditoría
Seguridad
Métricas
Gestión de errores
Inversión del
Control
Presentación
MONOLITO
1. Una única aplicación para implementar toda la funcionalidad.
2. Un ecosistema común para todas las piezas de la aplicación.
3. Reutilización basada en los componentes (importación).
4. Sencillez de despliegue.
5. Una única versión de los componentes.
6. Aplicaciones complejas cuya responsabilidad es implementar todo
el negocio.
7. Fragilidad: un error en cualquier pieza tumba todo el monolito.
MICROSERVICIOS
Métricas
Gestión de errores
Configuración
Logs
Auditoría
Inversión del
Control
Seguridad
EIS EIS EIS
DAO DAO DAO
Servicio Servicio Servicio
Servicio
Presentación
MICROSERVICIOS
Métricas
Gestión de errores
Presentación
Configuración
Logs
Auditoría
Inversión del
Control
Seguridad
EIS EIS EIS
DAO DAO DAO
Servicio Servicio Servicio
Servicio
MICROSERVICIOS
Métricas
Gestión de errores
Presentación
Configuración
Logs
Auditoría
Inversión del
Control
Seguridad
EIS EIS EIS
DAO DAO DAO
Servicio Servicio Servicio
Servicio
*HTTP
MICROSERVICIOS
Métricas
Presentación
Auditoría
EIS EIS EIS
DAO DAO DAO
Servicio Servicio Servicio
ServicioSeguridad
(MMI y M2M)
Logs distribuidos
Configuración
centralizada
Resistencia
a errores
Localización de
servicios
MICROSERVICIOS
1. Muchas aplicaciones que implementan la funcionalidad completa.
2. Ecosistema políglota dentro de una misma solución.
3. Reutilización basada en uso (llamada a interfaces).
4. Despliegue sencillo de cada aplicación, complejo en la solución
completa.
5. Varias versiones de la misma aplicación pueden convivir en
ejecución.
6. Cada aplicación tiene la responsabilidad (y exclusiva) en un área
concreta de la solución.
7. Se pueden desplegar de forma independiente.
8. Se incrementa la latencia y el tráfico de red.
MICROSERVICIOS
Métricas
Presentación
Auditoría
EIS EIS EIS
DAO DAO DAO
Servicio Servicio Servicio
ServicioSeguridad
(MMI y M2M)
Logs distribuidos
Configuración
centralizada
Resistencia
a errores
Localización de
servicios
OUTER ARCHITECTURE
Métricas
Auditoría
Seguridad
(MMI y M2M)
Logs distribuidos
Configuración
centralizada
Resistencia
a errores
Localización de
servicios
Composición
de la solución
Gestión de
la carga
Documentación de
interfaces
OUTER ARCHITECTURE - MONOLITO
 En una aplicación monolítica la configuración de la aplicación se puede realizar mediante
múltiples formas:
 Fichero de propiedades
 Parámetros de configuración en la ejecución
 La configuración no suele ser un gran problema podemos tener varios tipos de ficheros,
perfiles… que se seleccionan en el momento de “levantar” la aplicación.
 Tenemos un número limitado de instancias (desarrollo, preproducción, producción,…) cada
una con su configuración específica.
 Normalmente es el equipo de operaciones el encargado de configurar y mantener la
configuración de los distintos entornos.
Configuración
OUTER ARCHITECTURE - MICROSERVICIOS
Configuración
centralizada
 En un esquema de microservicios la operación se complica:
 Múltiples instancias de la misma aplicación con el mismo perfil, o distinto.
 Versiones distintas del mismo servicio en el mismo entorno.
 El mantenimiento de las aplicaciones en ejecución se puede llevar desde una plataforma
(sin intervención humana directa).
 Rolling updates, de los servicios
OUTER ARCHITECTURE - MICROSERVICIOS
Configuración
centralizada
 Ejemplo: Config server
 Distintos tipos de clientes dependiendo de la naturaleza de la aplicación.
OUTER ARCHITECTURE - MONOLITO
Seguridad
 El control de acceso a la aplicación se realiza una vez.
 Si tienes acceso mientras dure tu sesión podrás ejecutar todos los servicios que te permita tu perfil.
 El acceso al frontal y a los servicios está unificado.
OUTER ARCHITECTURE - MICROSERVICIOS
Seguridad
(H2M y M2M)
 Podemos tener esquemas de seguridad independientes por cada servicio o frontal.
 Hay que diferenciar entre la seguridad para el acceso a la aplicación por parte de
humanos y las llamadas entre máquinas.
 Nos permite granularidad a la hora de definir quién tiene acceso a qué servicio o
funcionalidad.
 Podemos establecer criterios como cuotas de uso.
 Permite monetizar el consumo de servicios.
OUTER ARCHITECTURE - MICROSERVICIOS
Seguridad
(H2M y M2M)
IAM
Presentación
Authorization Server
µServices
1
2
3
4
5
6
78
9
10
Acceso a la aplicación de presentación (SAML)
1. El usuario accede a la aplicación de presentación.
2. Se comprueba si está presente el token SAML. Si no redirigimos al
IAM.
3. El IAM muestra la pantalla de login.
4. El usuario introduce sus credenciales.
5. Si son válidas, el IAM genera el token SAML y redirige a la
aplicación de presentación.
Acceso a la aplicación de backend (OAuth2)
6. Se solicita el token al authorization server con las credenciales del
consumidor.
7. Si son válidas genera un token y lo devuelve.
8. Se realiza la llamada al servicio.
9. El resource server captura el token y comprueba contra el
authorization server que sea correcto.
10. Si lo es se realiza la llamada al servicio.
Resource
Server
OUTER ARCHITECTURE - MONOLITO
Logs
 Los logs se escriben en ficheros directamente desde la aplicación.
 Utilizamos distintos niveles de log dependiendo del entorno (para no penalizar los entornos
productivos).
 Se pueden consultar los ficheros físicos en el servidor.
 Utilizamos herramientas como PERL para facilitar el trabajo de análisis de los ficheros de log.
OUTER ARCHITECTURE - MICROSERVICIOS
Logs distribuidos
 Las instancias de los microservicios son desechables, cuando dejan de tener utilidad se
destruyen.
 Los ficheros físicos pueden dejar de existir cuando se destruyen los servicios.
 Incluso en el mejor de los casos podríamos tener muchos ficheros distintos en distintas
localizaciones.
 El planteamiento en estos casos es la creación de un servicio de logs que los guarda de
forma unificada en una BBDD que nos permite una consulta sencilla de los mismos.
 También el uso de herramientas que nos permite trazar la ejecución completa de la
solución por las distintas aplicaciones.
OUTER ARCHITECTURE - MICROSERVICIOS
Logs distribuidos
 Ejemplo: Servcio custom + ElasticSearch + Kibana
 Ejemplo: Sleuth + Zipkin + ElasticSearch + Kibana
OUTER ARCHITECTURE - MONOLITO
Gestión de errores
 Desarrollamos nuestro código para responder correctamente ante los errores.
 Cuando se produce una excepción la tratamos si es posible de forma que la aplicación siga funcionando.
 Si se produce un error catastrófico toda la solución deja de funcionar.
OUTER ARCHITECTURE - MICROSERVICIOS
Resistencia a
errores
 Cuando un microservicio falla de forma catastrófica se cae pero su rol puede ser cubierto
por otra instancia del mismo.
 Además de los errores propios de la aplicación tenemos que ser capaces de responder
ante los errores de los servicios que consumimos.
 Tenemos que ser capaces de responder ante el caso de que un servicio al que llamamos no
responda, o devuelva un error.
 Definimos mecanismos que nos permiten responder ante este tipo de errores.
OUTER ARCHITECTURE - MICROSERVICIOS
Resistencia a
errores
 Ejemplo: Hystrix
OUTER ARCHITECTURE - MONOLITO
Inversión del
Control
 Mecanismo para localizar los servicios a los que llamamos.
 Evitamos el mecanismo “clásico” de instanciar los servicios para poder utilizarlos.
 Se optimizan los recursos utilizados ya que sólo utilizamos el número de instancias realmente
necesarias.
OUTER ARCHITECTURE - MICROSERVICIOS
Localización de
servicios
 Es la extensión del modelo de inversión de control al mundo de microservicios.
 Cuando un servicio se arranca se “registra” para que sus consumidores puedan localizarlo.
 Los consumidores solicitan al registro la forma de llamar al servicio.
 Una vez localizado el servicio puede ser consumido.
OUTER ARCHITECTURE - MICROSERVICIOS
Localización de
servicios
 Ejemplo: Eureka + Feign
OUTER ARCHITECTURE - MICROSERVICIOS
Documentación de
los interfaces
 Una nueva necesidad del modelo de microservicios.
 Debido a la gran cantidad de servicios necesitamos un mecanismo que nos permita
documentar todos los interfaces disponibles.
 En el código indicamos esta información y un servicio lo publica y permite su consumo.
OUTER ARCHITECTURE - MICROSERVICIOS
Documentación de
los interfaces
 Ejemplo: Swagger
OUTER ARCHITECTURE - MICROSERVICIOS
Composición de la
solución
 Una nueva necesidad del modelo de microservicios.
 Ya no disponemos de “un war” que nos permite desplegar la solución.
 Es necesario definir la forma completa de la misma para que el montaje sea repetible.
 Se puede realizar a varios niveles y apoyándonos en diversas tecnologías.
OUTER ARCHITECTURE - MICROSERVICIOS
Composición de la
solución
 Ejemplo: Docker compose
OUTER ARCHITECTURE - MICROSERVICIOS
Gestión de la carga
 Los servicios se consumen desde distintos orígenes.
 No podemos controlar cuántas solicitudes vamos a tener en un momento determinado.
 ¿Qué hacer cuando el servicio puede empezar a no responder?
 Establecemos límites de carga a partir de los cuales crecemos horizontalmente.
OUTER ARCHITECTURE - MICROSERVICIOS
Gestión de la carga
 Zuul + Ribbon
+ Eureka
CONCLUSIONES
 Los microservicios no son la respuesta a todos los problemas.
 Las arquitecturas basadas en microservicios complican el despliegue frente a las
monolíticas.
 Proporcionan elasticidad ante cargas inesperadas.
 La definición de los servicios de arquitectura tiene que adaptarse al modelo
seleccionado para la solución.
TO TAKE AWAY
https://github.com/juanmacintas/ejercicioMircroserviciosSpringCloud
 Ejemplo Outer Architecture en Github:

Más contenido relacionado

PPTX
Reestructuración y Optimización de una de una Aplicación Monolítica.
PPTX
Arquitectura de microservicios
PDF
Microservicios - RabbitMQ
PDF
An evening with... Microservices - Session 1
PPTX
arquitectura de microservicios en el diseño de aplicaciones.pptx
PDF
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
PPTX
Microservicios.pptx
Reestructuración y Optimización de una de una Aplicación Monolítica.
Arquitectura de microservicios
Microservicios - RabbitMQ
An evening with... Microservices - Session 1
arquitectura de microservicios en el diseño de aplicaciones.pptx
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
Microservicios.pptx

Similar a Open southcode arquitectura microservicios (20)

PDF
Arquitectura_de_microservicios.pdf
PDF
Arquitectura de microservicios
PPTX
Trabajo de microservicios
PPTX
ADR - Introducción a Microservicios - Incluye notas del presentador (1).pptx
PPTX
ADR - Introducción a Microservicios - Incluye notas del presentador (1).pptx
PPTX
Microservicios.pptx
PDF
Microservicios, un nuevo enfoque para arquitecturas orientas a servicios.
PPTX
arquitectura de......Microservicios.pptx
PPTX
¿Que son los microservicios?
PDF
Divide y Vencerás: introducción a los Microservicios
PDF
PPT PARA EXPONER LUNES 7 EERDE ABRIL .pdf
PPTX
Trabajo de microservicios
PPTX
MuleSoft y las arquitecturas orientadas a microservicios
PPTX
Microservicios con Net Core y Azure Service Fabric
PDF
Microservicios y Gestion de APIs
PDF
Microservicios
PDF
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
PPTX
CP_TRABAJO2_GRUPO2__Arquitect073117.pptx
PPTX
Estilos arquitectónicos de Software.pptx
PDF
Micro vs Nano (servicios)
Arquitectura_de_microservicios.pdf
Arquitectura de microservicios
Trabajo de microservicios
ADR - Introducción a Microservicios - Incluye notas del presentador (1).pptx
ADR - Introducción a Microservicios - Incluye notas del presentador (1).pptx
Microservicios.pptx
Microservicios, un nuevo enfoque para arquitecturas orientas a servicios.
arquitectura de......Microservicios.pptx
¿Que son los microservicios?
Divide y Vencerás: introducción a los Microservicios
PPT PARA EXPONER LUNES 7 EERDE ABRIL .pdf
Trabajo de microservicios
MuleSoft y las arquitecturas orientadas a microservicios
Microservicios con Net Core y Azure Service Fabric
Microservicios y Gestion de APIs
Microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
CP_TRABAJO2_GRUPO2__Arquitect073117.pptx
Estilos arquitectónicos de Software.pptx
Micro vs Nano (servicios)
Publicidad

Último (20)

PPTX
Alta presión en productos de la carne de cerdo
PPTX
PRESENTACIONES CHAPA PARA TESIS SECUNDARIA.pptx
PPTX
Difusión Empresa Protocolo TMERT V2.pptx
PPTX
NOM 019 STPS Conformación de la comision mixta
PPTX
Teología 1 - Unidad 1. Introducción.pptx
PPTX
2. RUBRICA PROBLEMA DE INVESTIGACIÓN (4).pptx
PPTX
NORMA 029 STPS INSTALACIONES ELECTRICAS.
PDF
La castidad nos hace libres para amar (Jovenes).pdf
PDF
CIENCIAS SOCIALES HISTORIA identificamos las características de la independen...
PDF
Las finanzas Bíblicas, dando un mejor resultado
PDF
evaluacion de riesgos conceptos y herram
PPTX
Psicologia politica: Antecedentes e Hisotoria.
PDF
2. Análisis Visión-Misión-Valores,OEI y PEND Ministerio Público.pdf
PDF
HISTORIA DE LA ARQUITECTURA ANALIS DE CATEDRAL
PPTX
Sectas Protestantes y la Iglesia que fundó Cristo
PPTX
OIDO histoembriologi, resumen corto de la clase
PDF
7.3 Audiencias de Reforma y Revisión en el Proceso.pdf
PDF
Estructura del Plan Estratégico Institucional del Ministerio Público de Perú_...
PPTX
Casa de Boyacá informe de actividades 2024
PPTX
Paradigmas de la psicopedagogía UGD presentacion de clase
Alta presión en productos de la carne de cerdo
PRESENTACIONES CHAPA PARA TESIS SECUNDARIA.pptx
Difusión Empresa Protocolo TMERT V2.pptx
NOM 019 STPS Conformación de la comision mixta
Teología 1 - Unidad 1. Introducción.pptx
2. RUBRICA PROBLEMA DE INVESTIGACIÓN (4).pptx
NORMA 029 STPS INSTALACIONES ELECTRICAS.
La castidad nos hace libres para amar (Jovenes).pdf
CIENCIAS SOCIALES HISTORIA identificamos las características de la independen...
Las finanzas Bíblicas, dando un mejor resultado
evaluacion de riesgos conceptos y herram
Psicologia politica: Antecedentes e Hisotoria.
2. Análisis Visión-Misión-Valores,OEI y PEND Ministerio Público.pdf
HISTORIA DE LA ARQUITECTURA ANALIS DE CATEDRAL
Sectas Protestantes y la Iglesia que fundó Cristo
OIDO histoembriologi, resumen corto de la clase
7.3 Audiencias de Reforma y Revisión en el Proceso.pdf
Estructura del Plan Estratégico Institucional del Ministerio Público de Perú_...
Casa de Boyacá informe de actividades 2024
Paradigmas de la psicopedagogía UGD presentacion de clase
Publicidad

Open southcode arquitectura microservicios

  • 2. SOBRE NOSOTROS  Julio Palma  Twitter: @restalion  GitHub: github.com/restalion  Technology Architect en Tecnilógica  Juanma Cintas  Twitter: @juanmacintas  GitHub: github.com/juanmacintas  Senior Analyst en Tecnilógica
  • 3. OTRAS CHARLAS DE ACCENTURE TECHNOLOGY Spring Cloud Microservices 101 01 Junio 02 Junio Open Source Code Inspection, Security and Testing Power Tools Integrando Machine Learning en Microservicios Selenium 1:1Desarrolla aplicaciones web sin usar HTML ni JavaScript Accenture Technology Stand @juanmacintas, @restalion Sala Colmenar, 11:00 @oscuroweb, @restalion Sala 1, 16:00 @cloud4dev Sala Colmenar, 12:00 @_deors Sala 2, 17:30 @viarellano, @thetechoddbug Sala 2, 17:30 Podéis visitarnos en nuestro stand a lo largo de toda la conferencia Introducción a Lagom y primeros pasos @oscuroweb, David Urdiales Sala Riogordo 1, 18:00
  • 4. OBJETIVOS DE LA SESIÓN  Entender las diferencias entre una arquitectura monolítica y otra basada en microservicios.  Crear un mapa de todos los servicios que necesitaremos de la outer architecture que nos permita “montar” una solución completa.  Identificar algunas alternativas para cubrir cada una de las áreas de la outer architecture.
  • 6. MONOLITO EISEIS Métricas Gestión de errores Inversión del Control Configuración Logs Auditoría Seguridad Servicios DAO Presentación
  • 7. MONOLITO EIS EIS EIS DAO DAO DAO Servicio Servicio Servicio Servicio Configuración Logs Auditoría Seguridad Métricas Gestión de errores Inversión del Control Presentación
  • 8. MONOLITO 1. Una única aplicación para implementar toda la funcionalidad. 2. Un ecosistema común para todas las piezas de la aplicación. 3. Reutilización basada en los componentes (importación). 4. Sencillez de despliegue. 5. Una única versión de los componentes. 6. Aplicaciones complejas cuya responsabilidad es implementar todo el negocio. 7. Fragilidad: un error en cualquier pieza tumba todo el monolito.
  • 9. MICROSERVICIOS Métricas Gestión de errores Configuración Logs Auditoría Inversión del Control Seguridad EIS EIS EIS DAO DAO DAO Servicio Servicio Servicio Servicio Presentación
  • 10. MICROSERVICIOS Métricas Gestión de errores Presentación Configuración Logs Auditoría Inversión del Control Seguridad EIS EIS EIS DAO DAO DAO Servicio Servicio Servicio Servicio
  • 11. MICROSERVICIOS Métricas Gestión de errores Presentación Configuración Logs Auditoría Inversión del Control Seguridad EIS EIS EIS DAO DAO DAO Servicio Servicio Servicio Servicio *HTTP
  • 12. MICROSERVICIOS Métricas Presentación Auditoría EIS EIS EIS DAO DAO DAO Servicio Servicio Servicio ServicioSeguridad (MMI y M2M) Logs distribuidos Configuración centralizada Resistencia a errores Localización de servicios
  • 13. MICROSERVICIOS 1. Muchas aplicaciones que implementan la funcionalidad completa. 2. Ecosistema políglota dentro de una misma solución. 3. Reutilización basada en uso (llamada a interfaces). 4. Despliegue sencillo de cada aplicación, complejo en la solución completa. 5. Varias versiones de la misma aplicación pueden convivir en ejecución. 6. Cada aplicación tiene la responsabilidad (y exclusiva) en un área concreta de la solución. 7. Se pueden desplegar de forma independiente. 8. Se incrementa la latencia y el tráfico de red.
  • 14. MICROSERVICIOS Métricas Presentación Auditoría EIS EIS EIS DAO DAO DAO Servicio Servicio Servicio ServicioSeguridad (MMI y M2M) Logs distribuidos Configuración centralizada Resistencia a errores Localización de servicios
  • 15. OUTER ARCHITECTURE Métricas Auditoría Seguridad (MMI y M2M) Logs distribuidos Configuración centralizada Resistencia a errores Localización de servicios Composición de la solución Gestión de la carga Documentación de interfaces
  • 16. OUTER ARCHITECTURE - MONOLITO  En una aplicación monolítica la configuración de la aplicación se puede realizar mediante múltiples formas:  Fichero de propiedades  Parámetros de configuración en la ejecución  La configuración no suele ser un gran problema podemos tener varios tipos de ficheros, perfiles… que se seleccionan en el momento de “levantar” la aplicación.  Tenemos un número limitado de instancias (desarrollo, preproducción, producción,…) cada una con su configuración específica.  Normalmente es el equipo de operaciones el encargado de configurar y mantener la configuración de los distintos entornos. Configuración
  • 17. OUTER ARCHITECTURE - MICROSERVICIOS Configuración centralizada  En un esquema de microservicios la operación se complica:  Múltiples instancias de la misma aplicación con el mismo perfil, o distinto.  Versiones distintas del mismo servicio en el mismo entorno.  El mantenimiento de las aplicaciones en ejecución se puede llevar desde una plataforma (sin intervención humana directa).  Rolling updates, de los servicios
  • 18. OUTER ARCHITECTURE - MICROSERVICIOS Configuración centralizada  Ejemplo: Config server  Distintos tipos de clientes dependiendo de la naturaleza de la aplicación.
  • 19. OUTER ARCHITECTURE - MONOLITO Seguridad  El control de acceso a la aplicación se realiza una vez.  Si tienes acceso mientras dure tu sesión podrás ejecutar todos los servicios que te permita tu perfil.  El acceso al frontal y a los servicios está unificado.
  • 20. OUTER ARCHITECTURE - MICROSERVICIOS Seguridad (H2M y M2M)  Podemos tener esquemas de seguridad independientes por cada servicio o frontal.  Hay que diferenciar entre la seguridad para el acceso a la aplicación por parte de humanos y las llamadas entre máquinas.  Nos permite granularidad a la hora de definir quién tiene acceso a qué servicio o funcionalidad.  Podemos establecer criterios como cuotas de uso.  Permite monetizar el consumo de servicios.
  • 21. OUTER ARCHITECTURE - MICROSERVICIOS Seguridad (H2M y M2M) IAM Presentación Authorization Server µServices 1 2 3 4 5 6 78 9 10 Acceso a la aplicación de presentación (SAML) 1. El usuario accede a la aplicación de presentación. 2. Se comprueba si está presente el token SAML. Si no redirigimos al IAM. 3. El IAM muestra la pantalla de login. 4. El usuario introduce sus credenciales. 5. Si son válidas, el IAM genera el token SAML y redirige a la aplicación de presentación. Acceso a la aplicación de backend (OAuth2) 6. Se solicita el token al authorization server con las credenciales del consumidor. 7. Si son válidas genera un token y lo devuelve. 8. Se realiza la llamada al servicio. 9. El resource server captura el token y comprueba contra el authorization server que sea correcto. 10. Si lo es se realiza la llamada al servicio. Resource Server
  • 22. OUTER ARCHITECTURE - MONOLITO Logs  Los logs se escriben en ficheros directamente desde la aplicación.  Utilizamos distintos niveles de log dependiendo del entorno (para no penalizar los entornos productivos).  Se pueden consultar los ficheros físicos en el servidor.  Utilizamos herramientas como PERL para facilitar el trabajo de análisis de los ficheros de log.
  • 23. OUTER ARCHITECTURE - MICROSERVICIOS Logs distribuidos  Las instancias de los microservicios son desechables, cuando dejan de tener utilidad se destruyen.  Los ficheros físicos pueden dejar de existir cuando se destruyen los servicios.  Incluso en el mejor de los casos podríamos tener muchos ficheros distintos en distintas localizaciones.  El planteamiento en estos casos es la creación de un servicio de logs que los guarda de forma unificada en una BBDD que nos permite una consulta sencilla de los mismos.  También el uso de herramientas que nos permite trazar la ejecución completa de la solución por las distintas aplicaciones.
  • 24. OUTER ARCHITECTURE - MICROSERVICIOS Logs distribuidos  Ejemplo: Servcio custom + ElasticSearch + Kibana  Ejemplo: Sleuth + Zipkin + ElasticSearch + Kibana
  • 25. OUTER ARCHITECTURE - MONOLITO Gestión de errores  Desarrollamos nuestro código para responder correctamente ante los errores.  Cuando se produce una excepción la tratamos si es posible de forma que la aplicación siga funcionando.  Si se produce un error catastrófico toda la solución deja de funcionar.
  • 26. OUTER ARCHITECTURE - MICROSERVICIOS Resistencia a errores  Cuando un microservicio falla de forma catastrófica se cae pero su rol puede ser cubierto por otra instancia del mismo.  Además de los errores propios de la aplicación tenemos que ser capaces de responder ante los errores de los servicios que consumimos.  Tenemos que ser capaces de responder ante el caso de que un servicio al que llamamos no responda, o devuelva un error.  Definimos mecanismos que nos permiten responder ante este tipo de errores.
  • 27. OUTER ARCHITECTURE - MICROSERVICIOS Resistencia a errores  Ejemplo: Hystrix
  • 28. OUTER ARCHITECTURE - MONOLITO Inversión del Control  Mecanismo para localizar los servicios a los que llamamos.  Evitamos el mecanismo “clásico” de instanciar los servicios para poder utilizarlos.  Se optimizan los recursos utilizados ya que sólo utilizamos el número de instancias realmente necesarias.
  • 29. OUTER ARCHITECTURE - MICROSERVICIOS Localización de servicios  Es la extensión del modelo de inversión de control al mundo de microservicios.  Cuando un servicio se arranca se “registra” para que sus consumidores puedan localizarlo.  Los consumidores solicitan al registro la forma de llamar al servicio.  Una vez localizado el servicio puede ser consumido.
  • 30. OUTER ARCHITECTURE - MICROSERVICIOS Localización de servicios  Ejemplo: Eureka + Feign
  • 31. OUTER ARCHITECTURE - MICROSERVICIOS Documentación de los interfaces  Una nueva necesidad del modelo de microservicios.  Debido a la gran cantidad de servicios necesitamos un mecanismo que nos permita documentar todos los interfaces disponibles.  En el código indicamos esta información y un servicio lo publica y permite su consumo.
  • 32. OUTER ARCHITECTURE - MICROSERVICIOS Documentación de los interfaces  Ejemplo: Swagger
  • 33. OUTER ARCHITECTURE - MICROSERVICIOS Composición de la solución  Una nueva necesidad del modelo de microservicios.  Ya no disponemos de “un war” que nos permite desplegar la solución.  Es necesario definir la forma completa de la misma para que el montaje sea repetible.  Se puede realizar a varios niveles y apoyándonos en diversas tecnologías.
  • 34. OUTER ARCHITECTURE - MICROSERVICIOS Composición de la solución  Ejemplo: Docker compose
  • 35. OUTER ARCHITECTURE - MICROSERVICIOS Gestión de la carga  Los servicios se consumen desde distintos orígenes.  No podemos controlar cuántas solicitudes vamos a tener en un momento determinado.  ¿Qué hacer cuando el servicio puede empezar a no responder?  Establecemos límites de carga a partir de los cuales crecemos horizontalmente.
  • 36. OUTER ARCHITECTURE - MICROSERVICIOS Gestión de la carga  Zuul + Ribbon + Eureka
  • 37. CONCLUSIONES  Los microservicios no son la respuesta a todos los problemas.  Las arquitecturas basadas en microservicios complican el despliegue frente a las monolíticas.  Proporcionan elasticidad ante cargas inesperadas.  La definición de los servicios de arquitectura tiene que adaptarse al modelo seleccionado para la solución.