Tema 2 Microservicios Vídeo visto Flashcards
¿Qué son MICROSERVICIOS?
Arquitectura de aplicaciones independientes especializada en un área concreta de nuestro negocio.
Orientada a servicios SOA (Service Oriented Architecture)
Domain Driven Design (DDD)
- Término relacionado con Microservicios.
- Enfocado a que la estructura y el lenguaje del servicio (Clases, métodos, variables, etc..), se parezcan más al contexto del dominio de negocio en el que se ejecutan.
Cada Microservicio, se comunica con otro Microservicio, por medio de..
API’S
Nuevos problemas de Microservicios:
- Latencia
- La red puede fallar y VA A FALLAR
- Consistencia de datos
- Sobrecarga de operaciones
- Resolución de problemas
- Demasiadas opciones para elegir
¿Qué es un TOPIC?
- Es una herramienta de suscripción, para enviar mensajes a varios nodos.
- Se usa en microservicios.
- Para trabajar de forma asíncrona.
¿Que son Protocol Buffers en gRPC?
- Son lo que define la estructura del servicio gRPC
- Son equivalentes a WSDL en SOAP u Open API para REST.
- Es un formato binario.
- Tienen extensión .proto
- Google ha creado el programa protoc, para generar el código para el cliente y para el servidor.
Métodos para comunicar Microservicios de forma Síncrona:
- RPC - Serialización (en Binario) por el protocolo gRPC. Es REST
- SOAP - Muy usado en la AGE por el ENI
GraphQL
Se usa para hacer “Queries”, y que nos devuelvan solo los datos que pedimos, no todo lo demás.
Primitivas:
- Resolver: Para hacer las consultas
- Mutation: Para modificaciones
- Suscriptions
Broker de Mensajes.
Es como una base de datos.
Son intermediarios entre Microservicios para comunicación asíncrona.
Tenemos dos conceptos:
- Colas, que son más relaciones de uno a uno 1:1
- Topics que son más de uno a muchos 1:N
Es transaccional. Se hace o si no, se deshace, por lo que se garantiza la entrega y la confianza.
Productos de brokers (KRAG) de mensajes:
BROKERS KRAG
- KAFKA (APACHE)
- RABBITMQ
- ACTIVEMQ (APACHE)
- GOOGLE CLOUD PUB/SUB
¿Qué es SAGA?
- Es un patrón de compensación, por que en Microservicios no tenemos ACID.
- Permite hacer una transacción inversa, para hacer una especie de Rollback. Que es por ejemplo: Si hacemos una transacción con el valor +5, con SAGA podemos hacer otra transacción con el valor -5, de ahí lo de inversa.
CQRS
Command Query Responsibility Segregation
Para separar queries o consultas, de Create, Update y Delete..
Porque el número de queries que se hacen normalmente son muy altas.
API GATEWAY
Es un patrón al que primero accedemos con nuestro dispositivo o app. También hace la autentificación.
Puerta de entrada a los Microservicios, pero aislándolos del exterior.
Centraliza las peticiones.
Productos de Netflix (ZHER):
ZHER
- Spring Cloud Netflix ZUUL-> API GATEWAY
- Spring Cloud Netflix HYSTRIX-> Patrón Circuit Breaker
- Spring Cloud Netflix EUREKA-> Directorio de servicios
- Spring Cloud Netflix RIBBON-> Balanceo de carga
Service Mesh
- Compuesta por Envoy e Istio.
- Abstrae de todo el trabajo duro.