Fundamentos de Infraestructura: Docker, Almacenamiento RAID y Virtualización

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,4 KB

Configuración de Entorno con Docker

FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY ./src .
EXPOSE 8085
CMD ["python3", "app.py"]

Organización y Gestión de Archivos

La organización de archivos se puede clasificar de la siguiente manera:

  • Secuencial: Se coloca la información en orden físico.
  • Directo: Acceso directo a los registros por su dirección en el propio dispositivo.
  • Secuencial indexado: Se aplica un orden lógico mediante índices.
  • De partición: Organización basada en directorios.

Métodos de Asignación de Espacio

  • Asignación contigua: Los archivos se asignan en zonas contiguas del almacenamiento secundario. Esto genera fragmentación y requiere reubicación constante.
  • Fragmentación: Este fenómeno degrada la performance del sistema; es fundamental evitarla haciendo uso de garbage collectors y procesos de compactación.
  • Asignación no contigua: Es un método más eficiente que resuelve el crecimiento dinámico de los archivos y reduce la fragmentación. No obstante, presenta desventajas: los punteros utilizados ocupan espacio en los bloques, la pérdida de una referencia ocasiona la pérdida de gran parte de la información, no es redundante ante fallos y no soporta permisos de seguridad avanzados.

Implementación de Tecnologías RAID

Los sistemas RAID permiten mejorar el rendimiento y la disponibilidad de los datos:

  • RAID 0: Los discos trabajan en paralelo, aumentando el rendimiento y la velocidad de transferencia mediante el paralelismo, aunque no ofrece redundancia.
  • RAID 1: Datos espejados (mirroring). Reduce la capacidad total a la mitad; no se gana rendimiento, pero permite la pérdida de un disco entero sin pérdida de datos.
  • RAID 3: Evolución del RAID 0 con tolerancia a la pérdida de un máximo de un disco. Puede restaurar la información a través de un disco de paridad, utilizando stripping a nivel de bytes.
  • RAID 4: Utiliza stripping a nivel de bloques con paridad dedicada. Permite reconstruir los datos cuando falla un disco, aunque genera una sobrecarga en el disco de paridad.
  • RAID 5: Requiere un mínimo de 3 discos (comúnmente implementado con más). Incrementa el rendimiento de lectura y optimiza el espacio para backup. Soporta la pérdida de un disco, pero ante fallos de múltiples discos se pierde la información.
  • RAID 6: Similar al RAID 5 pero con tolerancia a la rotura de dos discos simultáneos, manteniendo una buena performance.

Virtualización y Contenedores

Conceptos fundamentales en entornos virtuales:

  • Host: Equipo físico que aloja a las máquinas virtuales (VM).
  • Guest: Máquina virtual que se ejecuta sobre el equipo físico.
  • Hipervisor: Software que permite la creación y gestión de máquinas virtuales en un equipo físico.
  • Imagen: Archivo que contiene la configuración y el sistema operativo base de una VM.
  • Snapshot: Captura del estado de una VM en un momento específico.
  • Docker: Plataforma de código abierto que permite la creación, el despliegue y la ejecución de aplicaciones dentro de contenedores.

Estrategias de Escalado de Aplicaciones

Existen diferentes formas de gestionar el crecimiento de una aplicación:

  • Escalado funcional: Consiste en dividir internamente la aplicación monolítica en módulos lógicos separados, sin llegar a convertirla en microservicios.
  • Escalado horizontal: Consiste en crear varias instancias de la aplicación y repartir las solicitudes mediante un balanceador de carga.
  • Escalado vertical: Consiste en aumentar la potencia del servidor donde corre la aplicación monolítica (por ejemplo, más CPU o más memoria RAM). En este caso, la aplicación no cambia, solo aumenta el tamaño de la máquina.

Entradas relacionadas: