Tema 2 Microservicios Vídeo visto Flashcards
(33 cards)
¿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.
Productos Service Mesh (MIPJEGEK):
MIPJEGEK
- MAISTRA- Engloba a Kiali, Jaeger y Prometheus
- ISTIO- Centralización
- ENVOY- Abstracción SIDECAR/PROXY
- ELASTICSEARCH- Trazabilidad (Motor de búsqueda)
- JAEGER- Trazabilidad
- GRAFANA- Observabilidad
- PROMETHEUS- Observabilidad
- KIALI- Consola de administración para Istio
Frameworks Microservicios:
- Java: Spring Cloud (Spring Boot), Quarkus, Micronaut, Helidon
- Python: Flask, Nameko, CherryPy
- NodeJS (V8)
- .NET
- Microprofile (Jakarta)
Características de Microservicios:
- Independientemente Desplegables
- Independientemente Escalables.
- Se distribuye la responsabilidad.
- Mezclan tecnologías(Java, .net, etc).
- DDD. Domain Driven Design
- Gobernanza, gestión, versiones.
- Acoplamiento y Cohesión.
- Usa diferentes lenguajes
- Cada servicio puede tener su propia BBDD.
Service Registry Pattern
- Es un registro o base de datos de los servicios, sus instancias y su localización, que están en el momento de la consulta, vivos y funcionando en el sistema.
- Netflix Eureka, es una implementación de Service Registry
¿Qué es Circuit Breaker?
- Protege cuando hay algún servicio caído.
- Lo cierra y lo aisla para que no falle el resto de servicios.
- Sigue los siguientes pasos:
- Lo detecta
- Deja de enviar peticiones
- Se recupera
- Lo vuelve a enviar
Comunicación asíncrona
- Por Broker de mensajes
- Por Topics
Bounded Contexts
Es una técnica que se usa para dividir un modelo muy grande de negocio, en partes más pequeñas enfocadas a su propio trabajo y más manejables. Que se convierten en Microservicios.
¿Qué mecanismos de comunicación hay en Microservicios?
- Síncrona, con peticiones REST o RPC y SOAP.
- Asíncrona, con Broker de mensajes (Dirigidas a Eventos, con TOPIC) y con datos compartidos, que hace uso de un fichero al que acceden varios.
¿Qué relevancia tiene Netflix en Microservicios?
Fué la primera empresa que sacó software para Microservicios.