![Page 1: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/1.jpg)
Introducción a Microservicios30 de Agosto 2019Versión para el área de ingeniería
![Page 2: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/2.jpg)
¿Qué no es microservicios?
MONOLÍTICA
![Page 3: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/3.jpg)
¿Qué no es microservicios?
MONOLÍTICAMICROSERVICIO
![Page 4: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/4.jpg)
¿Cómo escalan?
¿Qué pasa si detecto que la mayoría de mis usuarios utilizan una funcionalidad más que otras (prefieren pizza) ?
![Page 5: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/5.jpg)
¿Cómo escalan? - Monolítico
![Page 6: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/6.jpg)
¿Cómo escalan? - Microservicios
Puedo levantarla cantidad de instanciasque se requieren.
![Page 7: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/7.jpg)
Lo primero...
Usar y mantenermicroservicios es difícil!
![Page 8: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/8.jpg)
¿Qué es un microservicio?
A DUMB PIPE!!
![Page 9: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/9.jpg)
¿Qué es un microservicio?
A DUMP PIPE!!
![Page 10: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/10.jpg)
¿Qué es un microservicio?
Ejemplos de MS
CONVERTIR SHAPEFILE A TABLA POSTGIS
RECIBIR POSICIÓN DE UN CARRO (GPS) Y ALMACENARLO EN DB
RECIBIR POSICIÓN DE UN CARRO (GPS) Y ALMACENARLO EN DB
RECIBIR REGISTRO DEL RECOLECTOR, Y ALMACENARLO EN DB
![Page 11: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/11.jpg)
¿Qué es un microservicio?
¿Ejemplos de MS?
![Page 12: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/12.jpg)
¿Cómo se comunican los MS?
?
![Page 13: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/13.jpg)
¿Cómo se comunican los MS?
Exponen APIConsumen API
Por lo tanto, se pueden comportar como servidor, como cliente, O ÁMBAS!
![Page 14: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/14.jpg)
Existen 3 mantras
Si no respetamos estos 3 mantras, no podemos concebir una arquitectura orientada a Microservicios.
![Page 15: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/15.jpg)
Existen 3 mantras
Deben serRÁPIDOS
El 57% de los usuarios abandona una web si tarda más de 3 segundos en cargar
![Page 16: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/16.jpg)
Existen 3 mantras
Deben serESCALABLES
Si, tenemos 20 hijos, no podemos permitir que todos compartan la misma habitación.
![Page 17: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/17.jpg)
Existen 3 mantras
Deben soportarRESILIENCIA
Siempre debe haberpisco sour.
![Page 18: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/18.jpg)
Entorno de desarrollo para microservicios
Hay muchas herramientas, pero para entender las características de los MS. Nos enfocaremos en herramientas para el lenguaje de programación
K̶O̶T̶I̶L̶N̶ JAVA
![Page 19: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/19.jpg)
¿Qué es SPRING IO?
Spring es un framework para el desarrollo de aplicaciones y contenedor de inversión
de control de código abierto para la plataforma Java.
![Page 20: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/20.jpg)
¿Qué es SPRING IO?
![Page 21: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/21.jpg)
¿Qué es SPRING IO?
![Page 22: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/22.jpg)
¿Qué es NETFLIX OSS?
Netflix Open Source Software Center
Conjunto de herramientas para libro uso, utilizadas por netflix para Big Data, Delivery Tools, Security, User Interface...
https://netflix.github.io/
![Page 23: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/23.jpg)
STACK - ¿Cómo podemos administrar los +20 hijos?
SPRING IOSPRING CLOUD
SPRING CLOUD CONFIGNETFLIX OSS
● EUREKA● RIBBON● HISTRIX● ZUUL
SPRING CLOUD BUS
![Page 24: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/24.jpg)
CONFIGURACIÓN
Si no utilizamos una configuración (.env), es fácil arruinar la arquitectura.
Si no definimos que esta sala iba a tener 4 paredes, un suelo, un techo y un monitor, probablemente no estaríamos en un lugar apto para realizar esta presentación.
![Page 25: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/25.jpg)
CONFIGURACIÓN
En un sistema monolítico, tener un archivo de configuración está bien.
Pero para 20 hijos, ¿vamos a tener 20 archivos de configuración?
![Page 26: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/26.jpg)
CONFIGURACIÓN | SPRING CLOUD CONFIG
Spring Cloud Config proporciona soporte del lado del cliente y del servidor para la configuración externa en un sistema distribuido. Con el Servidor de configuración, tiene un lugar central para administrar las propiedades externas de las aplicaciones en todos los entornos
https://spring.io/projects/spring-cloud-config
SPRING CLOUDCONFIG SERVER
![Page 27: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/27.jpg)
CONFIGURACIÓN | SPRING CLOUD CONFIG
● Cuando usamos MS, la conf va afuera de los proyectos
● Los programas usan y modifican el archivo de configuración en tiempo de ejecución
● Podemos utilizar una configuración alojada en GIT, permitiendo manejar diferentes versiones de la misma.
![Page 28: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/28.jpg)
MICROSERVICES DISCOVERY
Dada la gran cantidad de servicios ejecutándose, debemos monitorearlos, detectando su estado, su localización y otros datos relevantes.
![Page 29: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/29.jpg)
MICROSERVICES DISCOVERY | EUREKA
NETFLIX OSS nos proporciona a EUREKA para realizar este trabajo, el cual es un servicio basado en REST y es muy utilizado en la nube de AWS.
![Page 30: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/30.jpg)
BALANCEO DE CARGA
Si un microservicio responde a muchas solicitudes, es posible desplegar varias instancias del mismo, distribuyendo las peticiones que reciben.
![Page 31: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/31.jpg)
BALANCEO DE CARGA | RIBBON
Ribbon es un equilibrador de carga del lado del cliente que brinda mucho control sobre el comportamiento de los clientes HTTP y TCP.
![Page 32: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/32.jpg)
BALANCEO DE CARGA | RIBBON
Ribbon permite distribuir las cargas de los microservicios, distribuyendo las solicitudes entre diferentes instancias de un servicio.
![Page 33: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/33.jpg)
BALANCEO DE CARGA | RIBBON
El balanceo entre instancias, se realiza bajo ciertos parámetros
RIBBON
CLIENT1
CLIENT2
CLIENT3
INSTANCE1
INSTANCE1
INSTANCE1
![Page 34: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/34.jpg)
BALANCEO DE CARGA | RIBBON
Ej: si el servidor que contiene una instancia sobrepasa el 50% de su capacidad, deriva los request a otra instancia. RIBBON
CLIENT1
CLIENT2
CLIENT3
INSTANCE1
INSTANCE1
INSTANCE1
CAPACIDAD > 50%
![Page 35: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/35.jpg)
BALANCEO DE CARGA | RIBBON
El balanceador de carga, finalmente es un programa que rutea los request, es decir, distribuye las peticiones en rutas que referencian a diferentes instancias de la aplicación en diferentes servidores.
RIBBON
CLIENT1
CLIENT2
CLIENT3
INSTANCE1
INSTANCE1
INSTANCE1
![Page 36: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/36.jpg)
TOLERANCIA A FALLOS
Debido a la gran cantidad de servicios a desplegar, es obligatorio gestionar y mitigar los fallos que siempre van a ocurrir.
![Page 37: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/37.jpg)
TOLERANCIA A FALLOS | HISTRIX Hystrix es una biblioteca de latencia y tolerancia a fallas diseñada para aislar puntos de acceso a sistemas remotos, servicios y bibliotecas de terceros, detener la falla en cascada y permitir la resistencia en sistemas distribuidos complejos donde la falla es inevitable.
![Page 38: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/38.jpg)
TOLERANCIA A FALLOS | HISTRIX
¿Qué es la falla en cascada?
Un fallo en un microservicio, puede generar un fallo en microservicios que dependen de él, y por lo tanto, de otros microservicios que dependen de esos microservicios generando un fallo en cascada.
HISTRIX = STOP CASCADE
![Page 39: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/39.jpg)
TOLERANCIA A FALLOS | HISTRIX
HISTRIX, por medio de EUREKA, detecta cuando un microservicio ha fallado, y ejecuta procesos automatizados para levantarlo inmediatamente. Además dispone de un dashboard con detalles de cada uno de los microservicios.
![Page 40: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/40.jpg)
SPRING CLOUD BUS
Si realizamos un cambio en nuestros microservicios, o en la configuración de estos, necesitamos hacer un reboot para actualizar los cambios. ¿Qué pasa con los request que recibe ese microservicio en el momento del reboot?
![Page 41: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/41.jpg)
SPRING CLOUD BUS
Como no necesitamos tener un microservicio que deje de responder a las solicitudes de nuestros usuarios, debemos implementar una entidad encargada de resolver los request que quedaron pendientes (mientras se realiza el reboot).
![Page 42: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/42.jpg)
SPRING CLOUD BUS
SPRING CLOUD BUS NOS PERMITE CREAR UN PROXY PARA TRATAR LOS REQUEST PENDIENTES MIENTRAS SE REALIZAN LAS MODIFICACIONES.
![Page 43: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/43.jpg)
API GATEWAY
Es un sistema intermediario que proporciona una interfaz API REST o WebSocket para hacer de enrutador desde un único punto de entrada, el API Gateway, hacia un grupo de microservicios y/o API de terceros definidos. Interactúa como puerta de enlace “Gateway”.
![Page 44: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/44.jpg)
API GATEWAY
Es especialmente útil para evitar exponer los servicios internos a clientes externos. Una API Gateway separa las API públicas externas de las API internas de microservicio.
![Page 45: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/45.jpg)
API GATEWAY
Seguridad
Permite añadir capas de seguridad que protegen los microservicios; Auth, SSL, Session IP, Session Time Out. Los cuales nos sirven para proteger nuestro entorno de por ejemplo, ataques DoS o inyección de código.
API GATEWAY
![Page 46: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/46.jpg)
API GATEWAY
ZUUL
Es el API GATEWAY que nos provee NETFLIX OSS
![Page 47: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/47.jpg)
Ventajas
Mantenimiento mejorado: cada servicio es relativamente pequeño y, por lo tanto, es más fácil de entender y cambiar.
Mejor capacidad de prueba: los servicios son más pequeños y más rápidos de probar.
Mejor capacidad de implementación: los servicios se pueden implementar de forma independiente.
https://microservices.io/
![Page 48: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/48.jpg)
Ventajas
Políglotas, son independientes del lenguaje y framework, podemos tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad.
Le permite organizar el esfuerzo de desarrollo en torno a múltiples equipos autónomos. Cada equipo (llamado las dos pizzas) posee y es responsable de uno o más servicios.
https://microservices.io/
![Page 49: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/49.jpg)
Ventajas
La aplicación se inicia más rápido, lo que hace que los desarrolladores sean más productivos y agiliza las implementaciones
Aislamiento de fallas mejorado. Por ejemplo, si hay una pérdida de memoria en un servicio, solo ese servicio se verá afectado. Los otros servicios continuarán manejando las solicitudes
https://microservices.io/
![Page 50: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/50.jpg)
Ventajas
Elimina cualquier compromiso a largo plazo con una pila de tecnología. Al desarrollar un nuevo servicio, puede elegir una nueva pila de tecnología. Del mismo modo, al realizar cambios importantes en un servicio existente, puede volver a escribirlo utilizando una nueva pila de tecnología.
https://microservices.io/
![Page 51: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/51.jpg)
Desventajas
Los desarrolladores deben lidiar con la complejidad adicional de crear un sistema distribuido. Los desarrolladores deben implementar el mecanismo de comunicación entre servicios y lidiar con fallas parciales
Las herramientas / IDE para desarrolladores están orientadas a la creación de aplicaciones monolíticas y no brindan soporte explícito para desarrollar aplicaciones distribuidas.
https://microservices.io/
![Page 52: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/52.jpg)
Desventajas
Complejidad de implementación. En la producción, también existe la complejidad operativa de implementar y administrar un sistema compuesto por muchos servicios diferentes.
Las herramientas / IDE para desarrolladores están orientadas a la creación de aplicaciones monolíticas y no brindan soporte explícito para desarrollar aplicaciones distribuidas.
https://microservices.io/
![Page 53: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/53.jpg)
Desventajas
Aumento del consumo de memoria. La arquitectura de microservicio reemplaza las instancias de aplicaciones monolíticas N con instancias de servicios NxM. Si cada servicio se ejecuta en su propia JVM (o equivalente), que generalmente es necesario para aislar las instancias, entonces hay una sobrecarga de M veces el tiempo de ejecución de JVM.
https://microservices.io/
![Page 54: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/54.jpg)
¿QUIÉN USA MICROSERVICIOS?
![Page 55: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/55.jpg)
EJEMPLO MICROSERVICIOS
![Page 56: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/56.jpg)
NETFLIX MICROSERVICESCaptura real del ingeniero de Netflix Bruce Wong de los microservicios que se ejecutan en Netflix, alrededor de 2014. “Por ahora, una imagen similar podría parecerse a una pared azul sólida”.
![Page 57: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/57.jpg)
RECURSOS
https://github.com/mfornos/awesome-microservices
mfornos/awesome-microservices
https://microservices.io/Microservicios IO
![Page 58: Introducción a Microservicios 30 de Agosto 2019 Versión para el … · 2019-09-05 · tener microservicios en Java, PHP, Nodejs, o GO, dependiendo de la necesidad. Le permite organizar](https://reader030.vdocuments.co/reader030/viewer/2022040515/5e71a5e33676011b475ae654/html5/thumbnails/58.jpg)
Introducción a Microservicios30 de Agosto 2019