b4t2 - Microservicios Flashcards

1
Q

Cómo definirías un microservicio?

A

Pueden tener tecnologías de desarrollo distintas, incluso bbdd distintas

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

Qué es DDD?

A

Domain Driven Design
Se separan las áreas de negocio, se hace un microservicio (con varias operaciones) por cada área, con su propia bbdd (como el CommercialManager, PolicyManager, UserManager…)

Se puden desplegar en plataformas diferentes e independientes. Por tanto son escalable

Tiene pegas como, latencia, errores de red, sobrecarga de operaciones, trazabilidad de los errores o resolución de incidencias.

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

De qué dos formas se pueden comunicar los microservicios entre sí?

A

Síncrono
- Petición - respuesta

Asíncrono
- Petición - respuesta -> Colas de mensajes
- Dirigido por eventos -> Suscripción a temas
- Datos compartidos -> En una tabla base de datos o un fichero, menos usado

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

Qué tecnologías o protocolos se usan para comunicar microservicios

A

SOAP
REST
gRPC -> Opensource, hecho por Google, basado en HTML2, permite streaming. Usa Protocol Buffer (equivalente al wsdl en soap) que son archivos .proto
RMI

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

Qué es ProtocolBuffer

A

Es el equivalente en el wsdl en soap, pero para gRPC
Usa ficheros .proto, donde se definen las operaciones, los mensajes de entrada y salida, que luego se compila con proto compiler (comando protoc)

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

Qué es un broker de mensajes?
Indica 5 productos

A

Son intermediarios entre los microservicios para comunicación asíncrona (colas de mensajes, topics)

  • Apache Kafka
  • Confluent
  • Apache ActiveMQ
  • Rabbit MQ
  • Google Cloud Pub/Sub
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

En el primer enfoque microservicios 1.0 qué herramientas se usaban y que liberó Netflix

A

Zuul -> Implementación del patrón de diseño Api Gateway
Ribbon -> Balanceo de clientes a los distintos nodos donde están replicados los microservicios
Hystrix -> Para la gestión de errores en cascada, que implementa el patrón CircuitBraker
Eureka -> Catálogo donde se registran los microservicios para encontrarlos

Spring coud -> Es una capa para manejar de forma más facil los anteriores

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

Qué es el patrón CircuitBraker

A

Para gestionar los errores y que no se propaguen en cascada entre los microservicios.
Para implementar las pólíticas de reintentos, políticas de espera ante time out, qué hacer ante fallos.

Tiene tres estados para el circuito de servicios
Cerrado, medio abierto y abierto -> deja pasar las peticiones, porque está todo arriba, cuando hay un error hace política de reintentos pero mientras no deja pasar más peticiones, hasta que esté el circuito cerrado de nuevo

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

En qué se basa el enfoque de microservicios 2.0?

A

Ya no hay que usar las herramientas tipicas del 1.0 como Zuul, Hystrix, Ribbon, Eureka, SpringCloud… sino que se instala Instio, que es una solución basada en Service Mesh

El proxy que hay que meter en los microservicios (el sidecar-proxy) es Envoy

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

Service Mesh, qué es

A

Service Mesh -> Tecnología para abordar las complejidades de las arquitecturas de microservicios, que ya no tienen que hacerla los microservicios (plano de control). En los microservicios se incluye un Proxy que se comunica con el Service Mesh

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

Qué funcionalidades y productos hay en Service Mesh

A
  • Abstracción de complejidad a los desarrolladores -> envoy
  • Centralización de control -> Istio, maistra, linkerd
  • Trazabilidad de una solicitud entre varios servicios, distributed tracing, monitorizar transacciones distribuidas -> JAEGER, Zipkin server
  • Observabilidad de telemetría de los servicios, topología, salud, métricas… -> Elasticsearch, kiali, grafana, prometheus
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

En microservicios, al estar los datos muy distribuidos no se puede garantizar ACID. Qué tres formas se usan para realizar transacciones?

A

CQRS
Transacciones distribuidas 2PC (2 phase commit)
SAGA

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

En qué consiste el patrón CQRS?

A

Command-query separation

Separa del CRUD la R
Es decir, separa las consultas de las escrituras en distintos sevicios, para flexibilidad en la escalabilidad en las lecturas

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

En qué consiste el patrón Two Phase Commit - 2PC

A

Una fase para comunicar las bbdd involucradas para ver si están listas y otra para hacer el commit propiamente dicho

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

En qué consiste el patrón SAGA

A

Se trata de hacer transacciones compensatorias para hacer rollback

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

Nombra fameworks para desarrollo de microservicios de java, phyton y js

A

Java: Spring Cloud/Spring boot, Micronaut, Quarkus, Helidon
Python: Flask
NodeJS

Profile de Jakarta para microservicios -> Microprofile

17
Q

Qué es el concepto de KaaS?

A

Servicio de orquestación (kubernetes) de contentedores en la nube
Amazon AKS
Google GKS
Azure KS

18
Q

Qué es el concepto de FaaS?

A

Function as a service -> Programas funciones directamente en la nube
AWS Lambda
Google Cloud Functions
Azure Functions