2. Esta presentación no sugiere
lenguajes particulares ni se
sumerge en detalles técnicos.
2
3. 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
4. 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
27. 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
28. 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
29. 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
31. La modularidad es esencial
cuando se desarrollan
aplicaciones grandes y
complejas.
31
32. La arquitectura de microservicio
utiliza servicios como la unidad
de modularidad.
32
33. El objetivo principal de los
microservicios es tener
pequeños servicios
independientes que estén
desacoplados lo más posible.
33
34. 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
35. Incluso dicta la estructura del
equipo y los roles de TI: los equipos
de desarrollo estarán separados por
los servicios que construyen.
35
36. Microservicio es tanto una
arquitectura de infraestructura
como una aplicación de software.
36
37. 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
38. La desventaja es bastante seria, la
sobrecarga adicional sobre el
equipo de TI es enorme. Requiere
un monitoreo más sólido.
38
39. Es extremadamente difícil encontrar buenos
arquitectos para crear la arquitectura
Microservice de manera correcta.
39
41. 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
45. 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
52. 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
53. 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
55. 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
56. Así se ve un Token de seguridad.
Tokens de seguridad.
56
62. 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
63. 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
64. 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
65. 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