Está en la página 1de 37

Introducción a la

Arquitectura de
Microservicios

PONENTE: CARLOS DIAZ VALVERDE


De la arquitectura monolítica
a microservicios
De la arquitectura monolítica a
microservicios

Monolitos Microservicios
De la arquitectura monolítica a
microservicios
De la arquitectura monolítica a
microservicios
Piensa en Multigraneado, no en “Micro”
Menor acomplamiento, mayor agilidad

Menor complejidad, más facil de ejecutar

FRASE: La tecnología no te va llevar al éxito sino su uso correcto

Fuente: Gartner
De la arquitectura monolítica a
microservicios
Patrón de arquitectura Monolítica
Concepto
• La aplicación software se estructura de forma que todos los aspectos
funcionales quedan acoplados y sujetos en un mismo programa.
Ventejas
• Fácil de construir, desplegar, y ejecutar
• La aplicación se ejecuta en un único servidor (scaling-up manual)
• Baja latencia para comunicarse entre procesos internos (dominos
funcionales)
• Fácil para pruebas y monitoreo de logs
• Fácil para la gestión de transaccionabilidad y base de datos
Desventajas
• Demasiado código fuente en un solo lugar
• Escalamiento de nodos manuales (cluster) y demasiados personas para
realizarlo y mantener los servidores
• Si se realiza un cambio, se tiene que bajar el servicio y volver a desplegar
toda la aplicación
• Mientras mas crece la aplicación con mas funcionalidades, mas costoso es
el mantenimiento y genera sobretiempo de trabajo
• Saturación de base de datos si es una aplicación altamente transaccionable
con usuarios concurrentes
De la arquitectura monolítica a
microservicios
Patrón de arquitectura de Microservicios
Concepto
• La aplicación software no es un solo producto sino cada una de sus
funciones responde de forma autónoma a las demás. (funcionalidades
agrupadas por dominio de negocio)

Ventejas
• Autoescalamiento y tolerancia a fallos, ya que no tiene un punto único de
falla
• Funcionalidades distribuidas en aplicaciones pequeñas, la cual hace fácil de
mantener y reescribir (Desarrollo escalable)
• Despliegue de forma más continua y de una forma más ágil (Despliegue
independiente)

Desventajas
• Mientras mas granulado mas difícil de orquestar los aplicativos
• La latencia de red
• Desarrollo y pruebas mas complejas por sistema distribuido
• Manejo mas complejo de transacciones distribuidas por múltiples servicios
• Manejo mas complejo en monitoreo y gestión
Principales componentes
de microservicios
Principales componentes de
microservicios

Engine
Database
Principales componentes de
microservicios

Clientes
Principales componentes de
microservicios
Clientes
Principales componentes de
microservicios
Clientes

Desktop + Laptop + Tablet + Mobile IOT

Omnicanalidad: Ofrecer multiples canales de atención conectados con


el objetivo de garantizar una experiencia satisfactoria al consumidor
Principales componentes de
microservicios

API Gateway + IAM (Identity and


Access Management)
Principales componentes de
microservicios
API Gateway + IAM (Identity and Access Management)
Principales componentes de
microservicios
API Gateway + IAM (Identity and Access Management)

DMZ API Gateway INTERNA


• Se usa como proxy-inverso, que intercepta todo el • Utiliza patrones de reintenos en caso de falla del API
tráfico de solicitudes de APIs entrantes y aplica origen
directivas para determiner si las solicitudes cuentan • Rate Limit (limita la cantidad de peticiones)
con autorización para enrutarse a la API real. • Suscribe IPs de confianza clientes para determinadas
• Oculta la IP real del API origen APIs
• Mejora la latencia de respuesta por mensaje puesto
en cache
Principales componentes de
microservicios
API Gateway + IAM (Identity and Access Management)

• Administra y gestiona los accesos para los recursos de la organización


• Reduce redundancia de datos, centraliza el control y reduce las llamadas a
helpdesk
• Los beneficios que se gana: Mayor eficiencia y flexibilidad, baja los costos
operativos y mejora la experiencia de usuario
• Existe un gran porcentaje de empresas que usan IAM como un servicio SaaS
Principales componentes de
microservicios

Arquetipo de microservicios
Principales componentes de
microservicios
Arquetipo de microservicios
Principales componentes de
microservicios
Arquetipo de Microservicios

Spring boot y Spring cloud


para Microservicios
NET Core
Principales componentes de
microservicios

Gestión de microservicios
Principales componentes de
microservicios
Gestión de microservicios
Principales componentes de
microservicios
Gestión de microservicios

Logs y Monitoreo Gestión de configuración (Config Server)

• Gestión de logs distribuido que no este • Gestionar las configuraciones de la aplicación fuera
a nivel aplicación (grayLog, Logstash) de la aplicación, por medio de un Config Server
• Monitoreo por medio de un APM • Las configuraciones pueden ser conexión base de
(Application Performance Management) datos, third-parties, etc.
como Prometheus, Dynatrace, NewRelic
Principales componentes de
microservicios
Gestión de microservicios

Balanceador de carga y Tolerancia a fallos Escalabilidad y Elasticidad

• Balancear la carga por medio de un • Buscan soluciones que garanticen soportar altas
orquestador de microservicios que cargas de procesamiento paralelo (scaling-up)
cubra la coreografía (kubernetes) • Soluciones end-to-end que permitan aumentar ante
• Saber a que nodo se va ir, del API que alta carga y disminuir ante la usencia de ésta manera
deseo llamar y este prendido (Health automática (scaling-out y scaling-down)
check)
Principales componentes de
microservicios

Gestión de persistencia
Principales componentes de
microservicios
Gestión de persistencia
Principales componentes de
microservicios
Gestión de persistencia
Diferencias de Microservicios
On-Premise y Cloud
Diferencias de Microservicios
On-Premise y Cloud

ON-PREMISE CLOUD
Diferencias de Microservicios
On-Premise y Cloud
Serverless el Presente o
Futuro
Serverless el Presente o Futuro
Tradicional vs Serverless

TRADICIONAL

SERVERLESS
Serverless el Presente o Futuro
Por qué construir Aplicaciones Serverless?

Beneficios de servicios Escala flexiblemente Solo paga por recursos


gestionados al 100% (elasticidiad) que usas
(SaaS)

Mejora la productividad Desarrollar aplicaciones


Conexiones perfectas
de los desarrolladores inteligentes
Serverless el Presente o Futuro
Limites de Serverless (Caso de Uso con AWS)

Mas información:
https://docs.aws.amazon.com/es_es/lambda/latest/dg/gettingstarted-
limits.html
Serverless el Presente o Futuro
Casos de Uso

Tipos de Eventos Funciones Servicios destinos

Cambio en
estado de datos

Peticiones a
endpoints
Cambios en
estado de
recursos
Serverless el Presente o Futuro
Casos de Uso
Serverless el Presente o Futuro
Casos de Uso
GRACIAS

También podría gustarte