Tema 2 Microservicios Vídeo visto Flashcards

1
Q

¿Qué son MICROSERVICIOS?

A

Arquitectura de aplicaciones independientes especializada en un área concreta de nuestro negocio.
Orientada a servicios SOA (Service Oriented Architecture)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Domain Driven Design (DDD)

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cada Microservicio, se comunica con otro Microservicio, por medio de..

A

API’S

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Nuevos problemas de Microservicios:

A

- Latencia
- La red puede fallar y VA A FALLAR
- Consistencia de datos
- Sobrecarga de operaciones
- Resolución de problemas
- Demasiadas opciones para elegir

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué es un TOPIC?

A
  • Es una herramienta de suscripción, para enviar mensajes a varios nodos.
  • Se usa en microservicios.
  • Para trabajar de forma asíncrona.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Que son Protocol Buffers en gRPC?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Métodos para comunicar Microservicios de forma Síncrona:

A
  • RPC - Serialización (en Binario) por el protocolo gRPC. Es REST
  • SOAP - Muy usado en la AGE por el ENI
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

GraphQL

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Broker de Mensajes.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Productos de brokers (KRAG) de mensajes:

A

BROKERS KRAG

  • KAFKA (APACHE)
  • RABBITMQ
  • ACTIVEMQ (APACHE)
  • GOOGLE CLOUD PUB/SUB
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué es SAGA?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

CQRS

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

API GATEWAY

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Productos de Netflix (ZHER):

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Service Mesh

A
  • Compuesta por Envoy e Istio.
  • Abstrae de todo el trabajo duro.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Productos Service Mesh (MIPJEGEK):

A

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
17
Q

Frameworks Microservicios:

A
  • Java: Spring Cloud (Spring Boot), Quarkus, Micronaut, Helidon
  • Python: Flask, Nameko, CherryPy
  • NodeJS (V8)
  • .NET
  • Microprofile (Jakarta)
18
Q

Características de Microservicios:

A
  • 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.
19
Q

Service Registry Pattern

A
  • 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
20
Q

¿Qué es Circuit Breaker?

A
  • 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
21
Q

Comunicación asíncrona

A
  • Por Broker de mensajes
  • Por Topics
22
Q

Bounded Contexts

A

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.

23
Q

¿Qué mecanismos de comunicación hay en Microservicios?

A
  • 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.
24
Q

¿Qué relevancia tiene Netflix en Microservicios?

A

Fué la primera empresa que sacó software para Microservicios.

25
Q

Parecido a Circuit Breaker, tenemos..

A

Bulkheads, que son como cámaras estancas en un barco. Se usa para separar componentes y aislarlos, para que los errores no se propagen.

26
Q

Cosas de gRPC:

A
  • Request/Response basado en HTTP/2, que permite Streaming y Bidirección
  • Protocol Buffer
27
Q

ENVOY

A
  • AKA SIDECAR/PROXY
  • SE COLOCA JUNTO AL MICROSERVICIO, PARA ABSTRAERLO DEL TRABAJO DE BAJO NIVEL.
  • TRABAJA JUNTO CON ISTIO, QUE ESTÁ EN LA PARTE DEL PANEL DE CONTROL.
28
Q

ISTIO

A
  • CENTRALIZA TODAS LAS PETICIONES DE LOS SIDECARS.
29
Q

¿Qué alternativas tenemos en Microservicios, para transacciones ACID?

A
  • CQRS - Consulta vs Create, Update y Delete
  • 2PC - 2 Phase Commit
  • SAGA - Transacciones de compensación o inversas
30
Q

Principios de despliegue de Microservicios:

A
  • Ejecución aislada
    – Ejecuta los microservicios de manera aislada, con sus propios recursos computacionales, y que su ejecución no impacte a otros microservicios que se ejecuten cerca.
  • Automatización
    – Según crezca el número de microservicios, la automatización cobra mayor importancia (CI/CD, DevOps)
  • IaC
    – Representa la configuración de tu infraestructura para facilitar los despliegues. Almacénalo en un control de versiones para que todo pueda ser recreado
  • Despliegues Zero-Downtime
    – Intenta desplegar microservicios sin tener downtime para los usuarios o para tu servicio
  • Estados deseados (declarativo)
    – Usa una plataforma que mantenga tu(s) microservicio en un estado definido, lanzando nuevas instancias si es necesario
31
Q

Modos de despliegue de Microservicios:

A

1- Máquina física
a. La instancia del microservicio se ejecuta en una máquina física directamente, sin virtualización
2- Máquina virtual
a. Se ejecuta en una máquina virtual
3- Contenedor
a. Se ejecuta en un contenedor separado, en un host físico o virtual. La ejecución puede ser gestionada por un orquestador como k8s
4- Contenedor de Aplicaciones
a. El microservicio se ejecuta dentro de un contenedor de aplicaciones que administra otras aplicaciones, normalmente del mismo runtime. Tomcat, WebLogic.
5- PaaS
a. Instancias administradas, abstrayéndonos de toda la gestión inferior y que corren nuestros microservicios. Heroku, Google AppGengine, AWS Beanstalk
6- FaaS
a. La instancia del microservicio se despliega como una función como AWS Lambda (Plataforma sin servidor), Google Cloud Functions o Azure Functions

32
Q

Resiliencia

A

Ante un fallo, podemos tomar dos decisiones:
- TIMEOUTS
- REINTENTOS

33
Q

IDEMPOTENCIA

A

También se observa la idempotencia en Microservicios, para que los cambios se sincronizen y no afecten al funcionamiento.