Microservicios APIGW 20250112-1 Flashcards

1
Q

¿Qué son los microservicios y cuál es su principal característica?

A

Los microservicios son una arquitectura de desarrollo de software donde una aplicación se divide en servicios pequeños, independientes y desplegables de forma autónoma. Su principal característica es la independencia en el desarrollo, despliegue y escalado de cada servicio.

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

¿Cuáles son las principales ventajas de utilizar una arquitectura de microservicios?

A

Las principales ventajas incluyen:
1. Escalabilidad independiente de cada servicio.
2. Desarrollo paralelo por diferentes equipos.
3. Mayor resiliencia al aislar fallos en servicios individuales.
4. Facilidad de adopción de nuevas tecnologías para cada servicio.
5. Mejor mantenimiento y actualización debido a la modularidad.

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

¿Cuáles son las desventajas de una arquitectura de microservicios?

A

Las desventajas incluyen:
1. Complejidad en la gestión de múltiples servicios.
2. Sobrecarga en la comunicación entre servicios.
3. Dificultad en la depuración y monitoreo de sistemas distribuidos.
4. Gestión de transacciones distribuidas más compleja.
5. Mayor demanda de infraestructura y automatización.

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

¿Cómo se comunican los microservicios entre sí?

A

Los microservicios pueden comunicarse de manera sincrónica (HTTP/REST, gRPC) o asincrónica (mensajería basada en eventos, colas como RabbitMQ o Kafka). La elección depende de los requisitos de latencia, acoplamiento y resiliencia.

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

¿Qué es un API Gateway y cuál es su función en una arquitectura de microservicios?

A

Un API Gateway es un servidor que actúa como punto de entrada único para todas las solicitudes de clientes hacia los microservicios. Su función incluye rutear solicitudes, gestionar autenticación y autorización, agregar respuestas, aplicar políticas de seguridad y monitorear el tráfico.

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

¿Qué es el descubrimiento de servicios (Service Discovery) y por qué es importante en microservicios?

A

El descubrimiento de servicios es un mecanismo que permite a los microservicios localizar y comunicarse con otros servicios dinámicamente. Es importante porque facilita la escalabilidad, la alta disponibilidad y la resiliencia al manejar servicios que pueden cambiar de ubicación o disponibilidad.

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

Describe el patrón de diseño Circuit Breaker y su propósito.

A

El patrón Circuit Breaker es una técnica de resiliencia que previene que un servicio defectuoso cause fallos en cascada. Actúa como un interruptor que abre después de un número determinado de fallos, bloqueando temporalmente las llamadas al servicio defectuoso y permitiendo recuperación gradual.

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

¿Qué es una base de datos por servicio (Database per Service) y cuáles son sus beneficios?

A

Una base de datos por servicio es una práctica donde cada microservicio tiene su propia base de datos independiente. Los beneficios incluyen desacoplamiento de servicios, mejor autonomía en la gestión de datos y escala individual según las necesidades específicas de cada servicio.

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

¿Qué es Docker y cómo facilita el despliegue de microservicios?

A

Docker es una plataforma de contenedores que permite empaquetar aplicaciones y sus dependencias en contenedores ligeros y portátiles. Facilita el despliegue de microservicios al garantizar consistencia entre entornos, aislamiento de servicios y eficiencia en el uso de recursos.

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

¿Qué es Kubernetes y cuál es su papel en la gestión de microservicios?

A

Kubernetes es una plataforma de orquestación de contenedores que automatiza el despliegue, escalado y gestión de aplicaciones en contenedores. Su papel en la gestión de microservicios incluye gestión de contenedores, balanceo de carga, autorreparación y escala automática de los servicios.

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

¿Cómo se asegura la seguridad en una arquitectura de microservicios?

A

La seguridad en microservicios se asegura mediante:
1. Autenticación y autorización centralizadas (OAuth2, JWT).
2. API Gateway para aplicar políticas de seguridad.
3. Cifrado de datos en tránsito y en reposo.
4. Seguridad de red mediante firewalls y redes segmentadas.
5. Monitoreo y auditoría continua de accesos y actividades.

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

¿Qué es el versionado de APIs y por qué es importante?

A

El versionado de APIs es la práctica de gestionar diferentes versiones de una API para permitir cambios sin afectar a los clientes existentes. Es importante porque facilita la evolución de la API, mantiene la compatibilidad y minimiza interrupciones para los usuarios.

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

Describe el patrón de diseño Saga y su uso en microservicios.

A

El patrón Saga es una estrategia para gestionar transacciones distribuidas en microservicios. Consiste en una serie de transacciones locales coordinadas por eventos o comandos, con pasos compensatorios para revertir acciones en caso de fallos, asegurando la consistencia eventual.

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

¿Qué es un contrato de API y cuál es su propósito?

A

Un contrato de API es un acuerdo formal que define cómo los clientes pueden interactuar con una API, incluyendo los endpoints, métodos HTTP, parámetros, formatos de respuesta y códigos de estado. Su propósito es asegurar que tanto los desarrolladores de la API como los consumidores tengan una comprensión común de cómo usarla.

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

¿Qué es un Service Mesh y cómo beneficia a una arquitectura de microservicios?

A

Un Service Mesh es una infraestructura dedicada que gestiona la comunicación entre microservicios. Beneficia a la arquitectura proporcionando balanceo de carga, circuit breaking, seguridad y observabilidad de manera transparente para los servicios, sin necesidad de modificar el código de la aplicación.

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

¿Qué es la resiliencia en el contexto de microservicios y cómo se puede implementar?

A

La resiliencia en microservicios es la capacidad de un sistema para recuperarse rápidamente de fallos y mantener el funcionamiento. Se puede implementar mediante:
1. Patrones de diseño como Circuit Breaker y Retry.
2. Despliegues redundantes y balanceo de carga.
3. Monitoreo y alertas continuas.
4. Desacoplamiento de servicios.

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

¿Qué es el escalado horizontal y cómo se aplica en microservicios?

A

El escalado horizontal es la técnica de añadir más instancias de un servicio para manejar un aumento en la carga. En microservicios, se aplica desplegando múltiples instancias de cada microservicio y utilizando un balanceador de carga para distribuir las solicitudes entre ellas, mejorando la capacidad de respuesta y la resiliencia.

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

¿Cómo se gestiona el estado en una arquitectura de microservicios?

A

En una arquitectura de microservicios, el estado se gestiona de manera desacoplada:
1. Estado en el cliente: Mantener el estado en el cliente cuando sea posible.
2. Almacenamiento externo: Utilizar bases de datos o caches externas para almacenar el estado.
3. Microservicios stateful: Diseñar algunos microservicios para manejar el estado, aunque esto aumenta la complejidad.

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

¿Qué es una API RESTful y cuáles son sus principios básicos?

A

Una API RESTful es una interfaz de programación que sigue los principios de la arquitectura REST (Representational State Transfer). Sus principios básicos incluyen:
1. Cliente-servidor: Separación de la interfaz de usuario y la gestión de datos.
2. Sin estado: Cada solicitud del cliente al servidor debe contener toda la información necesaria.
3. Cacheable: Las respuestas deben ser etiquetadas como cacheables o no.
4. Interfaz uniforme: Uso de recursos identificados por URIs y operaciones estándar (GET, POST, PUT, DELETE).

20
Q

¿Qué es GraphQL y cómo difiere de REST en la gestión de APIs?

A

GraphQL es un lenguaje de consulta para APIs que permite a los clientes solicitar exactamente los datos que necesitan. A diferencia de REST, donde los endpoints están predefinidos y las respuestas son fijas, GraphQL ofrece flexibilidad y eficiencia al permitir a los clientes definir la estructura de las respuestas y evitar la sobrecarga o subcarga de datos.

21
Q

¿Qué es una plataforma de gestión de APIs y cuáles son sus funcionalidades principales?

A

Una plataforma de gestión de APIs es un conjunto de herramientas que facilitan la creación, publicación, seguridad, monitoreo y análisis de APIs. Sus funcionalidades principales incluyen:
1. Diseño y desarrollo de APIs.
2. Publicación y versionado de APIs.
3. Seguridad (autenticación, autorización).
4. Monitoreo y análisis del uso de APIs.
5. Gestión de tráfico y limites de uso.
6. Documentación automatizada y portal de desarrolladores.

22
Q

¿Cuáles son algunos ejemplos populares de plataformas de gestión de APIs?

A

Algunos ejemplos populares incluyen:
1. Apigee (Google)
2. Kong
3. AWS API Gateway
4. Azure API Management
5. MuleSoft Anypoint Platform
6. IBM API Connect

23
Q

¿Qué es rate limiting en la gestión de APIs y por qué es importante?

A

Rate limiting es una técnica utilizada para controlar la cantidad de solicitudes que un cliente puede hacer a una API en un período de tiempo determinado. Es importante para proteger los recursos del servidor, evitar abuso y mantener la disponibilidad y rendimiento de la API para todos los usuarios.

24
Q

¿Cómo se implementa la autenticación en una plataforma de gestión de APIs?

A

La autenticación en una plataforma de gestión de APIs se implementa mediante:
1. Tokens de acceso (JWT, OAuth2).
2. API Keys asignadas a los desarrolladores o aplicaciones.
3. Autenticación basada en certificados.
4. Integración con sistemas de identidad (LDAP, Active Directory).
Esto asegura que solo los usuarios autorizados puedan acceder a las APIs.

25
Q

¿Qué es la documentación automática de APIs y cuáles son sus beneficios?

A

La documentación automática de APIs genera documentación detallada y actualizada de manera automática a partir del código y las definiciones de las APIs. Sus beneficios incluyen mejorar la comprensión de las APIs por parte de los desarrolladores, reducir el esfuerzo manual de mantener la documentación y asegurar la precisión de la información proporcionada.

26
Q

¿Qué es la gestión del ciclo de vida de una API y cuáles son sus etapas?

A

La gestión del ciclo de vida de una API implica todas las fases desde su creación hasta su retiro. Las etapas incluyen:
1. Diseño: Definir los recursos, endpoints y contratos.
2. Desarrollo: Implementar la lógica de la API.
3. Pruebas: Validar el funcionamiento y la seguridad.
4. Publicación: Hacer la API disponible para los consumidores.
5. Monitoreo: Supervisar el uso y el rendimiento.
6. Versionado: Gestionar cambios y actualizaciones.
7. Retiro: Desactivar la API cuando ya no es necesaria.

27
Q

¿Qué es un contrato de API y cuál es su importancia?

A

Un contrato de API es un acuerdo que define cómo los clientes pueden interactuar con una API, incluyendo los endpoints, métodos HTTP, parámetros, formatos de respuesta y códigos de estado. Es importante porque asegura que tanto los desarrolladores de la API como los consumidores tengan una comprensión común de cómo usarla, facilitando la interoperabilidad y evitando malentendidos.

28
Q

¿Cómo se asegura la versionabilidad de una API en una plataforma de gestión de APIs?

A

La versionabilidad de una API se asegura mediante:
1. Numeración de versiones en los endpoints (ej. /v1/resource).
2. Documentación clara sobre cambios y versiones.
3. Soporte para múltiples versiones simultáneamente.
4. Políticas de depreciación y comunicación efectiva con los usuarios.
Esto permite a los clientes migrar gradualmente a nuevas versiones sin interrumpir el servicio existente.

29
Q

¿Qué es un API Developer Portal y qué funcionalidades ofrece?

A

Un API Developer Portal es una plataforma que facilita a los desarrolladores el acceso y uso de APIs. Ofrece funcionalidades como:
1. Documentación interactiva.
2. Registro y gestión de claves de API.
3. Sandbox para pruebas.
4. Foros y soporte.
5. Herramientas de análisis y monitoreo.
Esto mejora la experiencia del desarrollador y promueve la adopción de las APIs.

30
Q

¿Qué es el throttling en la gestión de APIs y cómo se implementa?

A

El throttling es una técnica para limitar la tasa de solicitudes que un cliente puede hacer a una API en un período de tiempo específico. Se implementa definiendo políticas de límite en la plataforma de gestión de APIs, que aplican restricciones basadas en roles, planes de suscripción o identidades de los clientes. Esto ayuda a proteger los recursos y asegurar un rendimiento consistente.

31
Q

¿Qué es un endpoint en el contexto de APIs y cuál es su importancia?

A

Un endpoint es una URL específica donde una API puede ser accedida por los clientes para realizar operaciones. Es importante porque define puntos de interacción claros entre los clientes y los servicios, permitiendo que los usuarios conozcan dónde y cómo pueden acceder a las funcionalidades proporcionadas por la API.

32
Q

¿Cómo se gestiona la seguridad de las APIs en una plataforma de gestión de APIs?

A

La seguridad de las APIs se gestiona mediante:
1. Autenticación y autorización robustas (OAuth2, JWT).
2. Encriptación de datos en tránsito y en reposo.
3. Políticas de CORS para controlar el acceso desde diferentes dominios.
4. Firewalls de APIs para proteger contra ataques comunes (inyección, DDoS).
5. Monitoreo y auditoría continua de accesos y actividades.

33
Q

¿Qué es el logging y monitoreo de APIs y por qué es importante?

A

El logging y monitoreo de APIs implica registrar y supervisar las solicitudes, respuestas y el rendimiento de las APIs. Es importante porque permite:
1. Detectar y resolver problemas rápidamente.
2. Analizar el uso y patrones de tráfico.
3. Mejorar la seguridad mediante la identificación de actividades sospechosas.
4. Optimizar el rendimiento y la escalabilidad de las APIs.

34
Q

¿Qué es un contrato de API y cómo se puede gestionar?

A

Un contrato de API es un documento que define cómo los clientes pueden interactuar con una API, incluyendo endpoints, métodos, parámetros y formatos de respuesta. Se puede gestionar mediante:
1. Herramientas de documentación como Swagger/OpenAPI.
2. Versionado de APIs.
3. Automatización de pruebas para asegurar la conformidad.
4. Revisión y aprobación de cambios en el contrato.

35
Q

¿Qué es Swagger/OpenAPI y cómo se utiliza en la gestión de APIs?

A

Swagger/OpenAPI es un estándar para describir APIs RESTful de manera estructurada y legible por máquinas. Se utiliza en la gestión de APIs para:
1. Documentar las APIs de forma interactiva.
2. Generar código cliente y servidor automáticamente.
3. Validar contratos de APIs.
4. Facilitar el testing y la integración continua.

36
Q

¿Cómo se implementa la resiliencia en una arquitectura de microservicios?

A

La resiliencia se implementa mediante:
1. Patrones de diseño como Circuit Breaker, Retry y Timeout.
2. Despliegue redundante de servicios.
3. Monitoreo y alertas continuas.
4. Uso de Service Mesh para gestionar la comunicación entre servicios.
5. Implementación de estrategias de fallback y graceful degradation.

37
Q

¿Qué es el API Rate Limiting y cómo ayuda en la gestión de APIs?

A

El API Rate Limiting es una técnica para limitar la cantidad de solicitudes que un cliente puede hacer a una API en un período de tiempo específico. Ayuda a:
1. Proteger los recursos de la API contra abusos.
2. Mantener la disponibilidad y el rendimiento.
3. Garantizar una distribución justa del uso entre los usuarios.
4. Prevenir ataques de denegación de servicio (DoS).

38
Q

¿Qué es el API Monetization y cómo se implementa?

A

El API Monetization es la estrategia de generar ingresos a través de la exposición de APIs. Se implementa mediante:
1. Modelos de precios (por uso, suscripción, freemium).
2. Planes de suscripción para diferentes niveles de acceso.
3. Cobro por llamadas o por volumen de datos.
4. Ofrecer servicios premium con funcionalidades avanzadas.
Esto permite a las organizaciones capitalizar sus servicios y datos a través de las APIs.

39
Q

¿Qué es el versionado semántico y cómo se aplica en APIs?

A

El versionado semántico es una convención para asignar números de versión a APIs de manera que reflejen el impacto de los cambios. Se aplica usando el formato MAJOR.MINOR.PATCH:
1. MAJOR: Cambios incompatibles con versiones anteriores.
2. MINOR: Añadidos compatibles.
3. PATCH: Correcciones de errores sin cambios en la funcionalidad.
Esto facilita la gestión de cambios y la compatibilidad para los consumidores de la API.

40
Q

¿Qué es una política de CORS y cómo se configura en una plataforma de gestión de APIs?

A

Una política de CORS (Cross-Origin Resource Sharing) define qué dominios externos pueden acceder a una API. Se configura en una plataforma de gestión de APIs especificando los orígenes permitidos, métodos HTTP permitidos, y cabeceras permitidas. Esto mejora la seguridad al controlar el acceso a la API desde diferentes dominios.

41
Q

¿Qué es la transformación de mensajes en una API Gateway y por qué es útil?

A

La transformación de mensajes en una API Gateway permite modificar el formato o contenido de las solicitudes y respuestas entre los clientes y los microservicios. Es útil para:
1. Adaptar formatos entre diferentes APIs.
2. Agregar o eliminar datos según sea necesario.
3. Implementar versiones de la API sin afectar a los clientes.
4. Unificar la interfaz para los consumidores de diferentes servicios.

42
Q

¿Qué es el throttling y cómo se diferencia del rate limiting en la gestión de APIs?

A

Throttling es una técnica para regular la velocidad de las solicitudes a una API, limitando el número de solicitudes que se pueden procesar en un período de tiempo. Rate limiting es un tipo específico de throttling que define límites explícitos en la tasa de solicitudes permitidas. Ambos conceptos ayudan a proteger la API contra abusos y mantener el rendimiento.

43
Q

¿Cómo se gestiona el versionado de APIs en una plataforma de gestión de APIs?

A

El versionado de APIs se gestiona mediante:
1. Definición clara de versiones (ej. v1, v2) en los endpoints.
2. Mantener múltiples versiones activas simultáneamente.
3. Automatizar el despliegue de nuevas versiones.
4. Actualizar la documentación para cada versión.
5. Comunicar cambios y deprecaciones a los usuarios de la API.

44
Q

¿Qué es un API Proxy y cuál es su función en la gestión de APIs?

A

Un API Proxy es una capa intermedia que actúa como intermediario entre los clientes y los microservicios. Su función incluye rutear solicitudes, aplicar políticas de seguridad, realizar transformaciones de mensajes, y monitorear el tráfico. Ayuda a centralizar la gestión de APIs y mejorar la seguridad y el rendimiento.

45
Q

¿Qué es la gestión de ciclos de vida de APIs y por qué es importante?

A

La gestión de ciclos de vida de APIs implica supervisar y controlar todas las etapas de una API desde su creación, despliegue, mantenimiento, hasta su retiro. Es importante porque asegura que las APIs evolucionen de manera ordenada, mantengan la compatibilidad, y continúen alineadas con los objetivos del negocio y las necesidades de los usuarios.

46
Q

¿Qué es un API Sandbox y cuál es su utilidad?

A

Un API Sandbox es un entorno controlado donde los desarrolladores pueden probar y experimentar con las APIs sin afectar los sistemas de producción. Es útil para validar funcionalidades, probar nuevas integraciones y entrenar a los desarrolladores en el uso de las APIs de manera segura.