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.