SlideShare una empresa de Scribd logo
Refactorización
Progresiva de una
Aplicación Monolítica.
Por Matías Cappato.
1
Esta presentación no sugiere
lenguajes particulares ni se
sumerge en detalles técnicos.
2
A veces es necesario escalar una aplicación
monolítica, lanzar actualizaciones más rápido
o administrar grandes equipos de diversas
habilidades. Un enfoque es rediseñar su
aplicación en un conjunto de microservicios
que se implementan en la nube.
3
Esta refactorización puede ser un proceso
largo para un producto complejo. También
puede ser desalentador para gente nueva en
la arquitectura de microservicios.
4
Repaso del patrón MVC. Expectativa...
5
...Realidad...
6
Sus alteraciones en el tiempo...
7
Repaso de una
Arquitectura
Monolítica.
8
9
10
Front & Back
Una Arquitectura
Moderna.
11
API Service
Arquitectura Front & Back
12
Otra vista de la Arquitectura
Front & Back.
13
ApplicationAPI GATEWAY
14
FRONTEND.
15
ARQUITECTURA
SPA.
16
BACKEND.
Una Arquitectura basada en Servicios
API.
17
¿Qué son Las API Web?.
18
Una API es un contrato que proporciona una
guía para que un consumidor use el servicio
subyacente.
19
Son Interfaces que
permiten
interacciones entre
la empresa
proveedora
y las apps que
utilizan sus
activos.
20
Otras representaciones de la arquitectura de
Servicio API
21
Backend Monolítico
vs
Backend de servicios API.
22
Monolítico Basado en APIs
23
¿Son las APIs sólo otro nombre
para los Servicios?.
24
Los Servicios tienen foco en las
necesidades del proveedor.
Las APIs tienen foco en las necesidades
de los consumidores.
25
Proveedores de Servicios y
Consumidores de APIs.
Tres verdades.
26
Para un proveedor de servicios, la
reutilización se trata de un esfuerzo de
entrega.
Para un consumidor de API, reutilizar se
trata de velocidad de entrega, sin
importar el costo para el proveedor.
1
27
Para un proveedor de servicios,
compartir es cuestión de eficacia.
Para un consumidor de API, si no es
conveniente no se utilizará la API.
2
28
Para un proveedor de servicios, la
encapsulación es menos para cambiar.
Para un consumidor de API, si la interfaz
es compleja no se utilizará la API.
3
29
En Resumen, todo apunta a Microservicios...
30
La modularidad es esencial
cuando se desarrollan
aplicaciones grandes y
complejas.
31
La arquitectura de microservicio
utiliza servicios como la unidad
de modularidad.
32
El objetivo principal de los
microservicios es tener
pequeños servicios
independientes que estén
desacoplados lo más posible.
33
Pero la Arquitectura de
microservicios extiende la
implementación de estas unidades
más pequeñas y las técnicas de
aislamiento a la infraestructura del
servidor.
34
Incluso dicta la estructura del
equipo y los roles de TI: los equipos
de desarrollo estarán separados por
los servicios que construyen.
35
Microservicio es tanto una
arquitectura de infraestructura
como una aplicación de software.
36
La ventaja es que la infraestructura
en la que se ejecuta cada servicio
es independiente entre sí, por lo
que mantiene su autonomía tanto
en la capa del servidor como en el
código.
37
La desventaja es bastante seria, la
sobrecarga adicional sobre el
equipo de TI es enorme. Requiere
un monitoreo más sólido.
38
Es extremadamente difícil encontrar buenos
arquitectos para crear la arquitectura
Microservice de manera correcta.
39
40
Múltiples solicitudes del cliente al backend para
crear la interfaz de usuario, puede resultar
ineficaz a través de Internet y poco práctico a
través de una red móvil.
41
Los Microservicios son
expuestos a través de APIS.
Relación API Microservicio
42
Las APIS utilizan el Protocolo
HTTP (Rest) para exponer
servicios y comunicarse.
Relación API Microservicio
43
Gateway API
44
Una forma de abordar este problema es ocultar
estos servicios detrás de una nueva capa de
servicio y proporcionar una API que se adapte a
cada cliente.
Esta capa de servicio agregador también se
conoce como una puerta de enlace API.
45
Comunicación HTTP Rest cliente-servicio a
través de puertas de enlace o Gateway API.
46
47
48
49
50
Principales Funciones de un servicio de API Gateway
Enrutamiento
Seguridad
Limitación de velocidad
Vigilancia
Configuración de Alertas.
¿Cuando son ideales los
Microservicios?.
51
Tienen varios equipos de desarrollo centrados en
diferentes áreas de negocio de la aplicación.
La aplicación debe ser capaz de implementarse en
varios entornos de infraestructura (varias nubes
públicas y locales)
Debe ser multiplataforma, capaz de cambiar con
facilidad de Linux a Windows (o viceversa).
52
Por último, también hay que tener en cuenta
problemas de seguridad.
Se deben proteger tanto las acciones del
usuario como las interacciones entre los
servicios.
53
54
Seguridad
JWT es un estándar abierto basado en JSON
propuesto por IETF para la creación de tokens
de acceso que permiten la propagación de
identidad y privilegios o claims en inglés.
Tokens de seguridad.
55
Así se ve un Token de seguridad.
Tokens de seguridad.
56
Uso de tokens
¿Cómo se implementan?
57
58
59
Ver más recomendaciones de seguridad para API por
RedHat en
https://www.redhat.com/es/topics/security/api-security
Tokens de seguridad.
60
FIN.
61
Conclusión.
MVC, SOA, MICROSERVICIOS comparten una misma idea,
dividir las aplicaciones en componentes más pequeños, más
discretos y más fáciles de administrar.
62
Conclusión.
Las Arquitecturas o patrones de diseño pueden sufrir
modificaciones a fin de adaptarse según su caso de uso,
concurrencia, Número de servicios, Equipos de desarrollo
involucrados, etc.
63
Conclusión.
Es una buena estrategia escoger dentro de nuestra
aplicación monolítica una funcionalidad finita, bien
definida, que no sea crítica y extraerle en su propio
microservicio.
64
Conclusión.
Una vez alcanzada esta arquitectura será mucho más fácil
“reescribir” una aplicación en lenguajes más modernos y
posteriormente tomar decisiones a nivel servidor o incluso
el uso de tecnologías FaaS sin servidor.
65

Más contenido relacionado

PPTX
diapositivas melissa primero basico
PPTX
PDF
atSistemas - Presentacion Hybreed
PPTX
Programacion
PDF
Hybreed. Plataforma de desarrollo de aplicaciones móviles híbridas. Descripci...
PPTX
Servidor linux enterprise red hat
PPTX
¿Que son los microservicios?
PPTX
Open southcode arquitectura microservicios
diapositivas melissa primero basico
atSistemas - Presentacion Hybreed
Programacion
Hybreed. Plataforma de desarrollo de aplicaciones móviles híbridas. Descripci...
Servidor linux enterprise red hat
¿Que son los microservicios?
Open southcode arquitectura microservicios

Similar a Reestructuración y Optimización de una de una Aplicación Monolítica. (20)

PDF
Microservicios, un nuevo enfoque para arquitecturas orientas a servicios.
PDF
SGCE 2014 micro services
PDF
Microservicios - RabbitMQ
PDF
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
PDF
An evening with... Microservices - Session 1
PPTX
MuleSoft y las arquitecturas orientadas a microservicios
PDF
Micro vs Nano (servicios)
PDF
Tecnologías para microservicios
PPTX
Introducción a desarrollo de micro servicios
PPTX
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
PDF
Arquitectura_de_microservicios.pdf
PPTX
M vs m
PDF
Arquitectura de microservicios
PPTX
Arquitectura de microservicios
PPTX
Arquitectura de Apis & GRPC | #JCONFPERU
PDF
Divide y Vencerás: introducción a los Microservicios
PDF
Microservicios y Gestion de APIs
PPTX
Microservicios.pptx
PPTX
Microservicios.pptx
Microservicios, un nuevo enfoque para arquitecturas orientas a servicios.
SGCE 2014 micro services
Microservicios - RabbitMQ
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
An evening with... Microservices - Session 1
MuleSoft y las arquitecturas orientadas a microservicios
Micro vs Nano (servicios)
Tecnologías para microservicios
Introducción a desarrollo de micro servicios
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
Arquitectura_de_microservicios.pdf
M vs m
Arquitectura de microservicios
Arquitectura de microservicios
Arquitectura de Apis & GRPC | #JCONFPERU
Divide y Vencerás: introducción a los Microservicios
Microservicios y Gestion de APIs
Microservicios.pptx
Microservicios.pptx
Publicidad

Último (20)

PPTX
ccna: redes de nat ipv4 stharlling cande
PPTX
la-historia-de-la-medicina Edna Silva.pptx
DOCX
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
PDF
Estrategia de Apoyo de Daylin Castaño (5).pdf
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
Teoría de estadística descriptiva y aplicaciones .pdf
DOCX
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
DOCX
Trabajo informatica joel torres 10-.....................
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
Curso de generación de energía mediante sistemas solares
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PPTX
modulo seguimiento 1 para iniciantes del
PPTX
ccna: redes de nat ipv4 stharlling cande
PDF
Taller tecnológico Michelle lobo Velasquez
PPTX
El uso de las TIC en la vida cotidiana..
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
DOCX
Guía 5. Test de orientación Vocacional 2.docx
PDF
MANUAL de recursos humanos para ODOO.pdf
PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PDF
Diapositiva proyecto de vida, materia catedra
ccna: redes de nat ipv4 stharlling cande
la-historia-de-la-medicina Edna Silva.pptx
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
Estrategia de Apoyo de Daylin Castaño (5).pdf
Propuesta BKP servidores con Acronis1.pptx
Teoría de estadística descriptiva y aplicaciones .pdf
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
Trabajo informatica joel torres 10-.....................
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Curso de generación de energía mediante sistemas solares
Presentacion de Alba Curso Auditores Internos ISO 19011
modulo seguimiento 1 para iniciantes del
ccna: redes de nat ipv4 stharlling cande
Taller tecnológico Michelle lobo Velasquez
El uso de las TIC en la vida cotidiana..
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
Guía 5. Test de orientación Vocacional 2.docx
MANUAL de recursos humanos para ODOO.pdf
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
Diapositiva proyecto de vida, materia catedra
Publicidad

Reestructuración y Optimización de una de una Aplicación Monolítica.