Cuestionario Tres de Distribuidos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE CÓMPUTO

Ingeniería en Sistemas Computacionales


Academia de Sistemas Distribuidos
Alumno: Carbajal Velazquez Alejandro
Boleta: 2021630177
Sistemas Distribuidos

Cuestionario Tres

2025/1

Docente:

Ojeda Santillán Rodrigo


1. ¿Qué es una máquina virtual y cuál es su importancia en los servicios en la nube?

Una máquina virtual (VM) es una emulación de un sistema informático que se ejecuta en un
entorno virtualizado. Su importancia en la nube radica en que permite a los usuarios acceder
a recursos informáticos flexibles y escalables sin necesidad de hardware físico.

2. Explique cómo se gestionan las máquinas virtuales (VMs) en un entorno de computación


en la nube.

Las VMs en la nube se gestionan a través de un hipervisor, que es una capa de software que
permite la creación, ejecución y administración de múltiples VMs en un solo servidor físico.
Los proveedores de la nube ofrecen herramientas e interfaces para que los usuarios puedan
controlar sus VMs, como iniciar, detener, redimensionar y configurar las máquinas.

3. ¿Cuáles son las mejores prácticas para la creación y eliminación de máquinas virtuales
(VMs) en la nube?

• Creación: Utilizar imágenes preconfiguradas, automatizar el proceso con scripts,


asignar recursos adecuados, configurar el acceso seguro y documentar la
configuración.
• Eliminación: Asegurar la eliminación completa de todos los datos, liberar las
direcciones IP asociadas y eliminar las reglas de firewall relacionadas.

4. ¿Cómo se establece la comunicación entre máquinas virtuales (VMs) en la nube?

Las VMs se comunican entre sí a través de redes virtuales, que son redes lógicas aisladas
dentro de la infraestructura de la nube. Se pueden utilizar diferentes mecanismos de
comunicación, como direcciones IP privadas, VLANs y firewalls para controlar el tráfico
entre las VMs.

5. Describa los métodos para configurar redes virtuales que conecten múltiples máquinas
virtuales (VMs).

• VLANs: Permiten segmentar la red en subredes aisladas.


• VPN: Conexiones seguras entre VMs a través de internet.
• SDN: Redes definidas por software que ofrecen flexibilidad y control programático.

6. ¿Qué protocolos de red son más comunes en la comunicación entre máquinas virtuales
(VMs)?

• TCP/IP: Protocolo base para la comunicación en internet.


• HTTP/HTTPS: Para la comunicación web.
• SSH: Para acceso remoto seguro.

7. ¿En qué consisten los respaldos en la nube y por qué son esenciales para las máquinas
virtuales (VMs)?
Los respaldos en la nube son copias de seguridad de los datos de las VMs que se almacenan
en la infraestructura del proveedor de la nube. Son esenciales para proteger la información
ante fallos de hardware, errores de software, desastres naturales o ataques cibernéticos.

8. Explique las diferentes estrategias de respaldo disponibles para máquinas virtuales (VMs)
en la nube.

• Respaldos completos: Copia completa de todos los datos.


• Respaldos incrementales: Copia solo de los datos modificados desde el último
respaldo.
• Respaldos diferenciales: Copia de los datos modificados desde el último respaldo
completo.
• Snapshots: Captura del estado de la VM en un momento determinado.

9. ¿Cómo se automatiza el proceso de respaldo y recuperación de máquinas virtuales (VMs)


en la nube?

Se puede automatizar el proceso utilizando herramientas y servicios de respaldo ofrecidos


por el proveedor de la nube o soluciones de terceros. Estas herramientas permiten programar
respaldos periódicos, configurar políticas de retención y automatizar la recuperación de VMs
en caso de desastre.

10. Defina las arquitecturas de almacenamiento en la nube y sus componentes principales.

Las arquitecturas de almacenamiento en la nube se refieren a la forma en que se organizan y


gestionan los datos en la nube. Los componentes principales incluyen:

• Almacenamiento de objetos: Almacena datos como objetos individuales con


metadatos.
• Almacenamiento de bloques: Divide los datos en bloques de tamaño fijo que se
almacenan en diferentes dispositivos.
• Almacenamiento de archivos: Almacena datos en forma de archivos y directorios.
• Sistemas de gestión de almacenamiento: Software que controla y gestiona el
almacenamiento en la nube.

11. ¿Qué es el almacenamiento de blobs (blob storage) y para qué tipo de datos es más
adecuado?

El almacenamiento de blobs es un tipo de almacenamiento en la nube que almacena datos no


estructurados como objetos individuales. Es ideal para almacenar archivos multimedia
(imágenes, videos, audio), backups, logs y datos científicos.

12. Compare el almacenamiento de blobs (blob storage) con el almacenamiento de discos


(disk storage) en términos de rendimiento y casos de uso.
• Rendimiento: El almacenamiento de blobs suele ser más escalable y económico para
grandes volúmenes de datos, pero puede tener una latencia mayor que el
almacenamiento de discos.
• Casos de uso: Blobs para datos no estructurados y acceso infrecuente; discos para
datos estructurados, aplicaciones que requieren alto rendimiento y acceso frecuente.

13. Explique cómo funciona el almacenamiento de discos (disk storage) en la nube.

El almacenamiento de discos en la nube funciona de forma similar a los discos duros físicos,
ofreciendo un volumen de almacenamiento que se puede conectar a una VM. Estos discos
virtuales se almacenan en la infraestructura del proveedor de la nube y se pueden configurar
con diferentes niveles de rendimiento y disponibilidad.

14. ¿Qué es el almacenamiento de archivos (file storage) y cómo se utiliza en aplicaciones


empresariales?

El almacenamiento de archivos ofrece un sistema de archivos jerárquico accesible a través


de protocolos de red como NFS o SMB. En aplicaciones empresariales se utiliza para
compartir archivos entre diferentes VMs, almacenar datos de aplicaciones, y como
repositorio centralizado para colaboración.

15. Describa las ventajas y desventajas de utilizar almacenamiento de archivos (file storage)
en comparación con otros tipos de almacenamiento.

Ventajas:

• Familiaridad y compatibilidad con sistemas operativos.


• Fácil de compartir y acceder a los archivos.

Desventajas:

• Escalabilidad limitada en comparación con el almacenamiento de blobs.


• Puede ser más costoso para grandes volúmenes de datos.

16. ¿Cómo se elige el tipo de arquitectura de almacenamiento adecuada para una aplicación
específica?

La elección depende de varios factores, como:

• Tipo de datos (estructurados, no estructurados).


• Requisitos de rendimiento (latencia, throughput).
• Frecuencia de acceso.
• Presupuesto.
• Necesidades de escalabilidad.

17. Explique el proceso de implementación de bases de datos (BDs) en la nube.


1. Elegir el proveedor y el servicio de base de datos: (AWS RDS, Azure SQL Database,
Google Cloud SQL).
2. Seleccionar el tipo de base de datos: (relacional, NoSQL).
3. Configurar la instancia de la base de datos: tamaño, rendimiento, seguridad.
4. Migrar los datos existentes (si es necesario).
5. Conectar la aplicación a la base de datos.
6. Monitorear y optimizar el rendimiento.

18. ¿Cuáles son los beneficios de alojar bases de datos (BDs) en la nube frente a soluciones
locales?

• Escalabilidad y flexibilidad: Adaptar los recursos a la demanda.


• Alta disponibilidad: Minimizar el tiempo de inactividad.
• Reducción de costos: Eliminar la necesidad de invertir en hardware y mantenimiento.
• Seguridad: Proveedores de la nube ofrecen medidas de seguridad robustas.

19. Describa los desafíos comunes en la gestión de bases de datos (BDs) en la nube y cómo
superarlos.

• Seguridad: Implementar controles de acceso y cifrado.


• Latencia: Optimizar la ubicación de la base de datos y la red.
• Costos: Monitorear el consumo de recursos y optimizar el uso.
• Vendor lock-in: Elegir proveedores con opciones de portabilidad.

20. ¿Qué son las estrategias de partición de datos y por qué son importantes en bases de datos
distribuidas?

Las estrategias de partición de datos dividen una base de datos en partes más pequeñas
llamadas particiones. Esto es crucial en bases de datos distribuidas para:

• Mejorar la escalabilidad: Distribuir la carga de trabajo entre múltiples servidores.


• Aumentar la disponibilidad: Reducir el impacto de fallos.
• Optimizar el rendimiento: Permitir consultas más eficientes.

21. Explica la diferencia entre partición horizontal y vertical en bases de datos

• Partición horizontal (Sharding): Divide la base de datos en filas, distribuyendo


diferentes filas en diferentes servidores. Imagina una tabla de "clientes" donde cada
servidor almacena clientes de una región geográfica específica.
• Partición vertical: Divide la base de datos en columnas, almacenando diferentes
columnas en diferentes servidores. Por ejemplo, en una tabla de "productos", un
servidor podría almacenar información básica del producto (nombre, precio) y otro
servidor almacenar descripciones detalladas y reseñas.

22. Cómo afectan las estrategias de partición al rendimiento y la escalabilidad de una base
de datos en la nube
• Rendimiento: La partición puede mejorar el rendimiento al distribuir la carga de
trabajo, permitiendo que las consultas se ejecuten en paralelo en diferentes servidores.
• Escalabilidad: Facilita el escalado horizontal de la base de datos, agregando más
servidores a medida que crece el volumen de datos y la demanda.

23. Defina elasticidad en el contexto de servicios en la nube y proporcione ejemplos

La elasticidad se refiere a la capacidad de un sistema en la nube de ajustar automáticamente


los recursos (CPU, memoria, almacenamiento) en respuesta a cambios en la demanda.

Ejemplos:

• Un sitio web de comercio electrónico que aumenta automáticamente los recursos del
servidor durante períodos de alta tráfico (como el Black Friday) y los reduce durante
períodos de baja demanda.
• Una aplicación de streaming que ajusta dinámicamente la capacidad de
procesamiento para manejar picos de usuarios en horas pico.

24. Que es escalabilidad y como difiere de la elasticidad en sistemas distribuidos

• Escalabilidad: La capacidad de un sistema para manejar un aumento en la carga de


trabajo (usuarios, datos, transacciones) sin afectar el rendimiento.
• Elasticidad: Va un paso más allá, ajustando automáticamente los recursos para
satisfacer la demanda cambiante.

La escalabilidad es la base para la elasticidad. Un sistema elástico debe ser escalable, pero
un sistema escalable no necesariamente es elástico.

25. Expliqué como el balanceo de carga contribuye a la escalabilidad de los servicios en la


nube

El balanceo de carga distribuye el tráfico de red entre múltiples servidores, evitando la


sobrecarga de un solo servidor y asegurando que ningún servidor se convierta en un punto
único de fallo. Esto permite a los servicios en la nube manejar un mayor volumen de
solicitudes y mejorar la escalabilidad.

26. Describa las técnicas comunes del balanceo de carga y su administración en la nube

• Round Robin: Distribuye las solicitudes de forma secuencial entre los servidores.
• Least Connections: Dirige las solicitudes al servidor con menos conexiones activas.
• IP Hash: Dirige las solicitudes al mismo servidor en función de la dirección IP del
cliente.

Los proveedores de la nube ofrecen servicios de balanceo de carga que facilitan la


configuración y administración de estas técnicas.
27. Que es la tolerancia a fallas y cómo se implementa en sistemas distribuidos

La tolerancia a fallas es la capacidad de un sistema de seguir funcionando incluso cuando


uno o más componentes fallan.

Implementación:

• Redundancia: Tener múltiples instancias de componentes críticos.


• Replicación: Mantener copias de datos en diferentes ubicaciones.
• Failover: Cambiar automáticamente a una instancia de respaldo en caso de fallo.

28. Defina resiliencia en servicios en la nube y su importancia para la confiabilidad del


sistema

La resiliencia es la capacidad de un sistema en la nube de recuperarse rápidamente de fallas


y mantener la funcionalidad. Es crucial para la confiabilidad del sistema, garantizando que
los servicios estén disponibles incluso en situaciones adversas.

29. Expliqué como la replicación mejora la tolerancia a fallas y la disponibilidad de datos

La replicación crea copias de datos en diferentes ubicaciones. Si un servidor falla, las


aplicaciones pueden acceder a los datos desde una réplica, mejorando la tolerancia a fallas y
la disponibilidad de datos.

30. Describa los diferentes métodos de replicación utilizados en bases de datos en la nube

• Replicación maestro-esclavo: Un servidor maestro (escritura) replica los datos a uno


o más servidores esclavos (lectura).
• Replicación maestro-maestro: Múltiples servidores actúan como maestros,
permitiendo la escritura en cualquier servidor.
• Replicación basada en la nube: Servicios de replicación gestionados por el proveedor
de la nube.

31. ¿Qué es el procesamiento (pensamiento) distribuido y cómo se aplica a entornos de


computación en la nube?

El procesamiento distribuido es un modelo donde una tarea se divide en subtareas que se


ejecutan simultáneamente en múltiples computadoras. En la nube, esto permite procesar
grandes volúmenes de datos y ejecutar aplicaciones complejas de forma eficiente al
distribuir la carga de trabajo entre varias máquinas virtuales.
Aplicaciones:

• Análisis de big data: Procesar grandes conjuntos de datos en paralelo.


• Aprendizaje automático: Entrenar modelos de machine learning distribuyendo el
proceso de entrenamiento.
• Aplicaciones web escalables: Distribuir el tráfico web entre múltiples servidores.

32. Explique el modelo de programación MapReduce y sus componentes principales

MapReduce es un modelo de programación para procesar grandes conjuntos de datos en


paralelo.

Componentes:

• Map: Divide los datos en pares clave-valor.

• Shuffle: Agrupa los pares clave-valor con la misma clave.

• Reduce: Procesa los valores agrupados para producir el resultado final.

33. ¿Cómo funciona MapReduce para procesar grandes conjuntos de datos en paralelo?

MapReduce funciona distribuyendo los datos entre múltiples nodos de procesamiento. Cada
nodo ejecuta las funciones Map y Reduce en una porción de los datos. El framework
MapReduce se encarga de la coordinación, la comunicación entre nodos y la agregación de
los resultados.

34. Proporcione un ejemplo práctico de cómo MapReduce se utiliza en el análisis de datos


masivos

Conteo de palabras en un conjunto de documentos:

1. Map: Cada nodo mapea las palabras de un documento y cuenta las ocurrencias de
cada palabra.

2. Shuffle: Las palabras iguales se agrupan.

3. Reduce: Se suman las ocurrencias de cada palabra para obtener el conteo total.
35. ¿Cuáles son las consideraciones clave al gestionar máquinas virtuales para optimizar
recursos y costos?

• Dimensionamiento correcto: Elegir el tamaño adecuado de la VM (CPU, memoria,


almacenamiento) para la carga de trabajo.

• Monitoreo: Supervisar el uso de recursos para identificar ineficiencias.

• Optimización: Ajustar la configuración de la VM y la aplicación para mejorar el


rendimiento.

• Apagado automático: Apagar las VMs cuando no se utilizan.

• Uso de instancias reservadas o spot: Aprovechar opciones de precios más


económicos.
36. Explique cómo puede asegurar la comunicación segura entre máquinas virtuales en la
nube
• Grupos de seguridad: Controlar el tráfico de red entrante y saliente de las VMs.

• VPN: Crear conexiones seguras entre VMs.

• Cifrado: Cifrar los datos en tránsito y en reposo.

• Autenticación: Utilizar mecanismos de autenticación para verificar la identidad de


las VMs.

37. ¿Qué herramientas o servicios ofrecen los proveedores de nube para los respaldos
automatizados?

• AWS: AWS Backup, Amazon S3.

• Azure: Azure Backup, Azure Blob Storage.

• Google Cloud: Google Cloud Backup and DR, Google Cloud Storage.

Estos servicios permiten programar respaldos periódicos, configurar políticas de retención


y automatizar la recuperación de VMs.

38. Analice cómo las arquitecturas de almacenamiento afectan el rendimiento de las


aplicaciones en la nube

• Latencia: El tipo de almacenamiento (blobs, discos, archivos) afecta la velocidad de


acceso a los datos.

• Throughput: La capacidad del almacenamiento para manejar solicitudes de


lectura/escritura.

• Escalabilidad: La capacidad de escalar el almacenamiento a medida que crece la


demanda.

• Costo: Diferentes arquitecturas de almacenamiento tienen diferentes costos.

39. ¿Cómo se garantiza la integridad y seguridad de los datos en Blob Storage?

• Control de acceso: Permisos granulares para controlar el acceso a los blobs.

• Cifrado: Cifrado de datos en tránsito y en reposo.

• Redundancia: Almacenamiento de múltiples copias de los datos en diferentes


ubicaciones.

• Checksums: Verificación de la integridad de los datos.


40. Describa las mejores prácticas para la gestión eficiente de bases de datos en la nube
• Elegir el servicio adecuado: Seleccionar el tipo de base de datos y el servicio en la
nube que mejor se adapte a las necesidades de la aplicación.
• Optimizar el rendimiento: Ajustar la configuración de la base de datos, utilizar
caching y optimizar las consultas.

• Monitorear: Supervisar el rendimiento y la salud de la base de datos.


• Seguridad: Implementar medidas de seguridad robustas, como el cifrado y el control
de acceso.
• Automatizar: Automatizar tareas de administración, como respaldos y
actualizaciones.

41. ¿Qué es el sharding y cómo se relaciona con las estrategias de partición de datos?
El sharding, también conocido como partición horizontal, es una técnica que divide una
base de datos en fragmentos más pequeños llamados shards. Cada shard contiene un
subconjunto de los datos, y los shards se distribuyen entre múltiples servidores.

Relación con las estrategias de partición:

El sharding es una estrategia de partición horizontal que se utiliza para mejorar la


escalabilidad y el rendimiento de las bases de datos. Al distribuir los datos entre varios
servidores, se reduce la carga en cada servidor individual y se permite que las consultas se
ejecuten en paralelo.

42. Explique cómo la elasticidad ayuda a manejar fluctuaciones en la carga de trabajo de


una aplicación

La elasticidad permite a las aplicaciones escalar automáticamente los recursos (CPU,


memoria, almacenamiento) en respuesta a cambios en la demanda.

Manejo de fluctuaciones:

• Aumento de la demanda: Si la carga de trabajo aumenta, la aplicación puede escalar


automáticamente para agregar más recursos y mantener el rendimiento.

• Disminución de la demanda: Cuando la carga de trabajo disminuye, la aplicación


puede liberar recursos para reducir los costos.

43. ¿Qué soluciones de balanceo de carga ofrecen los principales proveedores en la nube?

• AWS: Elastic Load Balancing (ELB).

• Azure: Azure Load Balancer.


• Google Cloud: Cloud Load Balancing.
Estas soluciones ofrecen diferentes tipos de balanceo de carga (HTTP(S), TCP, UDP) y
permiten configurar reglas de enrutamiento, monitoreo de la salud de los servidores y
escalado automático.

44. Analice el papel de la replicación en la mejora de la resiliencia y confiabilidad de


sistemas distribuidos

La replicación crea copias de datos o servicios en diferentes ubicaciones.

Beneficios:
• Tolerancia a fallos: Si un servidor falla, el sistema puede continuar funcionando con
las réplicas.

• Disponibilidad: Los datos están disponibles incluso si una ubicación falla.


• Rendimiento: Las réplicas pueden servir solicitudes desde ubicaciones más cercanas
a los usuarios, reduciendo la latencia.
45. ¿Cómo se puede diseñar un sistema tolerante a fallas utilizando replicación y balanceo
de carga?

1. Replicar los servidores: Crear múltiples instancias de cada servidor en diferentes


zonas de disponibilidad.

2. Balancear la carga: Distribuir el tráfico entre las réplicas utilizando un balanceador


de carga.

3. Monitoreo de la salud: Supervisar el estado de los servidores y redirigir el tráfico a


las réplicas saludables en caso de fallo.

4. Failover automático: Configurar el balanceador de carga para que redirija el tráfico


automáticamente a las réplicas en caso de fallo.

46. Explique las limitaciones de MapReduce y cuándo no podría ser la mejor opción para el
procesamiento distribuido

• No es adecuado para tareas interactivas o en tiempo real: MapReduce está diseñado


para procesamiento por lotes.

• Puede ser ineficiente para tareas con dependencias complejas: El modelo


MapReduce es simple pero puede ser limitado para flujos de trabajo complejos.

• No es ideal para procesamiento de grafos: Existen otros modelos más adecuados


para este tipo de datos.

Alternativas a MapReduce:
• Spark: Ofrece un procesamiento más rápido y flexible.
• Flink: Especializado en procesamiento de streams en tiempo real.

47. ¿Qué es un clúster de máquinas virtuales y cómo se utiliza en el procesamiento


distribuido?

Un clúster de máquinas virtuales es un conjunto de VMs que trabajan juntas como un único
sistema.
Uso en procesamiento distribuido:

• Escalabilidad: Permite distribuir la carga de trabajo entre múltiples VMs.

• Tolerancia a fallos: Si una VM falla, las otras VMs del clúster pueden continuar
procesando.

• Gestión eficiente: Facilita la administración y el monitoreo de un grupo de VMs.

48. Describa cómo escalar horizontalmente un sistema usando máquinas virtuales


adicionales

1. Agregar nuevas VMs al clúster: Configurar las nuevas VMs con el software y la
configuración necesarios.

2. Balancear la carga: Utilizar un balanceador de carga para distribuir el tráfico entre


las VMs.

3. Ajustar la aplicación: Si es necesario, modificar la aplicación para que pueda


utilizar las nuevas VMs.

4. Monitorear: Supervisar el rendimiento del sistema después del escalado.

49. ¿Cuáles son las implicaciones de costos de elegir entre Disk Storage y File Storage?

• Disk Storage: Generalmente más costoso, pero ofrece un mayor rendimiento y


menor latencia.

• File Storage: Suele ser más económico, pero puede tener un rendimiento menor y
una latencia mayor.

Factores que influyen en el costo:

• Capacidad: Cantidad de almacenamiento.

• Rendimiento: Nivel de IOPS (operaciones de entrada/salida por segundo).

• Disponibilidad: Nivel de redundancia y disponibilidad.

50. Proporcione ejemplos de cómo las técnicas de procesamiento distribuido están


transformando industrias como el comercio electrónico y la salud
Comercio electrónico:

• Recomendaciones personalizadas: Analizar el comportamiento de los usuarios para


recomendar productos.

• Detección de fraudes: Identificar transacciones fraudulentas en tiempo real.

• Optimización de la logística: Planificar rutas de entrega eficientes.

Salud:

• Análisis de imágenes médicas: Procesar grandes volúmenes de imágenes para


diagnosticar enfermedades.

• Investigación genómica: Analizar datos genómicos para desarrollar nuevos


tratamientos.

• Monitoreo de pacientes: Recopilar y analizar datos de dispositivos médicos para


mejorar la atención al paciente.
Referencias

AWS: https://aws.amazon.com/

Azure: https://azure.microsoft.com/es-es/
GCP: https://cloud.google.com/

Oracle Cloud: https://www.oracle.com/cloud/

IBM Cloud: https://www.ibm.com/cloud

Alibaba Cloud: https://www.alibabacloud.com/

Contenedores: https://www.docker.com/resources/what-container/

Microservicios: https://microservices.io/

DevOps: https://aws.amazon.com/devops/what-is-devops/
AWS S3: https://aws.amazon.com/s3/

Azure Blob Storage: https://azure.microsoft.com/es-es/services/storage/blobs/

Google Cloud Storage: https://cloud.google.com/storage/

También podría gustarte