Microservicios Flashcards

1
Q

Consideraciones generales de microservicios

A
  • Micro –> Funcionalidad muy acotada, pero ojo, no tiene porque ser pequeño en tamaño y desarrollo.
  • Cajas negras que tienen una funcionalidad definida y producen un resultado.
  • Arquitecturas Orientada a Servicios SOA/ESB
  • DDD –> Domain Driven Design
  • Acoplamineto (Mal)
  • Cohexión (Bien)
    • Como lo tres mosqueteros, todos a una pero haciendo lo que cada uno sabe hacer bien, sin saber que hace el otro.
    • Eventos/Sincrona, por un lado se lanzan, por otro cada microservicio decide a que eventos suscribirse.
    • Comunicación Asincrona
  • Las comunicaciones pueden ser:
    • Sincronas
    • Asincronas
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué es Nexus? ¿Y Artifactory?

A

Es un repositorio de empresa, con los productos corporativos que se pueden usar.

Ej.: Tienes un Maven de empresa con las librerias que se pueden usar.

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

¿Con qué tecnología se comunican los microservicios

A
  • RPC
  • SOAP (no se usa pero no está prohibida)
  • RMI
  • gRPC
  • GraphQL
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Productos para intercambio de mensajes (Brokers de mensajes)

A
  • Kafka
  • Amazon SQS (simple queue service)
  • RabbitMQ
  • ActiveMQ
  • ZeroMQ
  • Google Cloud Pub/Sub
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Arquitecturas de microservicios

A
  • API Gateway (Clásica)
    • Spring Cloud (recubrimiento de librerias de Netflix)
      • Eureka / Relilience4j –> Services Discovery Pattern / Circuit Breaker
      • Ribbon –> Load Balancing Pattern
      • Zuul –> API Gateway Pattern
      • Hystrisx –> Circuit Braker Pattern
    • Quarkus
    • MicroNaut
    • Spring Boot
  • Service Mesh (Más moderna) –> Para problemas más complejos pero se sigue usando la ‘clasica’ para otros problemas. Solo nos preocupamos de nuestro negocio, el resto de problemas lo soluciona la “malla”. Productos:
    • Envoy (Proxy)/ Istio (malla)
    • LinkedRD
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué es Microprifile?

A

Estandard que implementa Spring boot/Micronaut/Quarkus

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

Lista de frameworks para microservicios

A
  • Spring Boot
  • Flasks (Python)
  • NodeJS ( Javascript)
  • Aspire (.net)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

De que se compone la observabilidad de microservicios

A
  • Cuadro de mando general –> Grafana
  • Centralizar Logs –> ELK (ElasticSearch-Logstash-Kibana)
  • Generación de Metricas –> Prometheus, Datadog
  • Generación de Trazas distribuidas –> Jaeger, Sleuth, Zipkin

NOTA: Libreria java para gestión de observabilidad Apache Lucen

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

¿Qué es ELK?

A

ElasticSearch-Logstash-Kibana

  • ElasticSearch –> Indexa
  • Logstash –> Recoge y agrupa
  • Kibana –> Visualiza
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Patrón SAGA

A
  • SAGA (gestion distribuida de las transacciones locales de cada microservicio)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Patrón CQRS

A

Command Query Responsibility Segregation

De un microservicio que raliza funciones de consulta y modificación –> es separarlos.

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

Qué caso de uso resuleve el patron CQRS

A

Separar en dos microservicios diferentes, la parte de consultas de la parte de modificaciones.

NOTA: Los almacenamientos de ambos tendrán que estar sincronizados

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

Caso de uso del patron Circuit Breaker

A

Desconectar el microservicio que falla, hacer politica de reintentos y volverlo a conectar cuando vuelva a estar activo

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

Uso del producto ELK y Jaeger

A
  • ELK
    • ElasticSerarch (indexador basado en Lucene)
    • Logstash (agregador de logs)
    • Kibana (cuadro de mandos / visualizador)
  • Jaeger–> Generación de trazas distribuidas (patron)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Uso del producto Zuul

A

Implementación del Patron API Gateway (autenticación, enrutado, cache,….)

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

Productos para implementar un modelo Mesh

A
  • Istio + Envoy (proxy)
  • Linkerd