SlideShare una empresa de Scribd logo
1 de 65
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

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

Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosMecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosSoftware Guru
 
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)Larry Magallanes
 
Microservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMwareMicroservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMwareAntonio Gallego
 
MuleSoft y las arquitecturas orientadas a microservicios
MuleSoft y las arquitecturas orientadas a microserviciosMuleSoft y las arquitecturas orientadas a microservicios
MuleSoft y las arquitecturas orientadas a microserviciosCarlos Reinoza
 
Microservicios, un nuevo enfoque para arquitecturas orientas a servicios.
Microservicios, un nuevo enfoque para arquitecturas orientas a servicios.Microservicios, un nuevo enfoque para arquitecturas orientas a servicios.
Microservicios, un nuevo enfoque para arquitecturas orientas a servicios.Jose Manuel Ortega Candel
 
SOA y Microservices Diferencias y Aplicaciones
SOA y Microservices Diferencias y AplicacionesSOA y Microservices Diferencias y Aplicaciones
SOA y Microservices Diferencias y AplicacionesGuatemala User Group
 
Arquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadasArquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadasTensor
 
TFG - Gesteira Minarro, Roberto.pdf
TFG - Gesteira Minarro, Roberto.pdfTFG - Gesteira Minarro, Roberto.pdf
TFG - Gesteira Minarro, Roberto.pdfRalMoreno42
 
Microservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricMicroservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricBelatrix Software
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESJesus Caceres Tello
 
PASSARELLO ESPEDITO Clase cloud computing__6__mayo_uba
PASSARELLO ESPEDITO Clase cloud computing__6__mayo_ubaPASSARELLO ESPEDITO Clase cloud computing__6__mayo_uba
PASSARELLO ESPEDITO Clase cloud computing__6__mayo_ubaEspedito Passarello
 
Colaboración con Telefónica e IpT Perú
Colaboración con Telefónica e IpT PerúColaboración con Telefónica e IpT Perú
Colaboración con Telefónica e IpT Perúeveris
 
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...MongoDB
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayPlain Concepts
 

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

Microservicios - RabbitMQ
Microservicios - RabbitMQMicroservicios - RabbitMQ
Microservicios - RabbitMQ
 
M vs m
M vs mM vs m
M vs m
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosMecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
 
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
 
Microservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMwareMicroservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMware
 
MuleSoft y las arquitecturas orientadas a microservicios
MuleSoft y las arquitecturas orientadas a microserviciosMuleSoft y las arquitecturas orientadas a microservicios
MuleSoft y las arquitecturas orientadas a microservicios
 
GraphQL Reactivo
GraphQL ReactivoGraphQL Reactivo
GraphQL Reactivo
 
Microservicios, un nuevo enfoque para arquitecturas orientas a servicios.
Microservicios, un nuevo enfoque para arquitecturas orientas a servicios.Microservicios, un nuevo enfoque para arquitecturas orientas a servicios.
Microservicios, un nuevo enfoque para arquitecturas orientas a servicios.
 
Microservicios.pptx
Microservicios.pptxMicroservicios.pptx
Microservicios.pptx
 
SOA y Microservices Diferencias y Aplicaciones
SOA y Microservices Diferencias y AplicacionesSOA y Microservices Diferencias y Aplicaciones
SOA y Microservices Diferencias y Aplicaciones
 
Arquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadasArquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadas
 
Informe acerca de la tecnología cloud computing
Informe acerca de la tecnología cloud computingInforme acerca de la tecnología cloud computing
Informe acerca de la tecnología cloud computing
 
TFG - Gesteira Minarro, Roberto.pdf
TFG - Gesteira Minarro, Roberto.pdfTFG - Gesteira Minarro, Roberto.pdf
TFG - Gesteira Minarro, Roberto.pdf
 
Microservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricMicroservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service Fabric
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITES
 
PASSARELLO ESPEDITO Clase cloud computing__6__mayo_uba
PASSARELLO ESPEDITO Clase cloud computing__6__mayo_ubaPASSARELLO ESPEDITO Clase cloud computing__6__mayo_uba
PASSARELLO ESPEDITO Clase cloud computing__6__mayo_uba
 
Colaboración con Telefónica e IpT Perú
Colaboración con Telefónica e IpT PerúColaboración con Telefónica e IpT Perú
Colaboración con Telefónica e IpT Perú
 
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev Day
 

Último

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.pptxMiguelAtencio10
 
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.pptxAlan779941
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
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 estossgonzalezp1
 
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...JohnRamos830530
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
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 eyvanamcerpam
 
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.FlorenciaCattelani
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
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 JUNITMaricarmen Sánchez Ruiz
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 

Último (12)

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
 
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
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
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
 
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...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
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.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
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
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 

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