Skip to main content

Virtualización en la Nube

Uno de los ejemplos más famosos de virtualización en la nube es Amazon EC2 (Elastic Compute Cloud).

Amazon EC2

Amazon EC2 permite a los usuarios alquilar computadores virtuales en los cuales pueden ejecutar sus propias aplicaciones.

Características del Modelo Cloud

Este tipo de servicio supone un cambio en el modelo informático:

Capacidad Modificable

Recursos escalables según demanda

Pago por Uso

Solo pagas por la capacidad utilizada

Elasticidad

Ajuste automático de recursos

Disponibilidad

Alquiler por horas en lugar de meses/años
Ventaja clave: En lugar de comprar o alquilar un procesador durante meses o años, en EC2 se alquila la capacidad por horas.

Docker

¿Qué son los Contenedores?

Los contenedores proporcionan un entorno de ejecución aislado y coherente para las aplicaciones.
Docker es el proyecto de código abierto más importante para la administración de contenedores.

Características de los Contenedores Docker

1

Enfoque Eficaz y Ligero

Menor overhead que las máquinas virtuales tradicionales
2

Implementación Independiente

Diferentes componentes de la aplicación se implementan en contenedores distintos
3

Múltiples Contenedores

Varios contenedores pueden coexistir en una única máquina
4

Portabilidad

Los contenedores se pueden mover fácilmente entre equipos

Ventaja Principal: Portabilidad

La portabilidad de los contenedores facilita la implementación de aplicaciones en múltiples entornos (locales o en la nube), a menudo sin modificar la aplicación.

Contenedores vs Máquinas Virtuales

Diferencias Clave

AspectoMáquinas VirtualesContenedores Docker
Sistema OperativoSO completo por VMComparten kernel del host
TamañoGBsMBs
InicioMinutosSegundos
RecursosMayor overheadMenor overhead
AislamientoCompletoA nivel de proceso
PortabilidadMenos portableMuy portable
Máquinas Virtuales:
  • Necesitas aislamiento completo
  • Diferentes sistemas operativos
  • Aplicaciones legacy
Contenedores:
  • Microservicios
  • Aplicaciones cloud-native
  • CI/CD pipelines
  • Rápido despliegue y escalado

Escalabilidad

Escalabilidad es la capacidad de aumentar o disminuir recursos y servicios según la demanda o carga de trabajo.
La informática en la nube admite dos tipos de escalado:

Escalado Vertical

Proceso de agregar recursos para aumentar la potencia de un servidor existente.

Ejemplos de Escalado Vertical

  • Añadir una CPU más rápida
  • Agregar CPUs adicionales
  • Aumentar la memoria RAM
  • Mejorar el almacenamiento
Servidor: 4 cores, 8GB RAM

Escalado Horizontal

Proceso de agregar más servidores que funcionen juntos como una unidad.

Ejemplos de Escalado Horizontal

En lugar de tener un servidor procesando solicitudes, tienes dos o más trabajando en paralelo.
1 Servidor procesando 1000 req/s

Escalado Manual vs Automático

El administrador decide cuándo agregar o quitar recursos manualmente.
Se basa en desencadenadores específicos:
  • Uso de CPU > 80%
  • Número de solicitudes
  • Latencia de respuesta
  • Horarios predefinidos
Los recursos se pueden asignar o desasignar en cuestión de minutos con herramientas como Kubernetes.

Elasticidad

Elasticidad es la capacidad del sistema de compensar automáticamente los cambios en la carga de trabajo mediante incorporación o retirada de recursos.

Ejemplo Práctico: Sitio Web de Noticias

1

Situación Inicial

Sitio web con tráfico normal y recursos asignados estándar
2

Pico de Tráfico

El sitio aparece en un artículo viral, aumentando el tráfico de la noche a la mañana
3

Respuesta Elástica

La nube asigna automáticamente más recursos informáticos para controlar el incremento
4

Normalización

Cuando el tráfico se asienta, la nube retira automáticamente los recursos extras

Ejemplo Empresarial: Aplicación de Empleados

Configuración típica para una aplicación corporativa:
Horario Laboral
08:00 - 18:00: Alta demanda
➜ La nube agrega recursos automáticamente

18:00 - 08:00: Baja demanda
➜ La nube reduce recursos automáticamente
La elasticidad optimiza costos al evitar pagar por recursos que no se están utilizando.

Kubernetes y Orquestación

Kubernetes es una plataforma de código abierto para automatizar el despliegue, escalado y gestión de aplicaciones en contenedores.

Funcionalidades de Kubernetes

Auto-escalado

Escala aplicaciones automáticamente según demanda

Auto-recuperación

Reinicia contenedores que fallan

Balanceo de Carga

Distribuye tráfico entre contenedores

Actualizaciones

Despliegues y rollbacks automáticos
Kubernetes facilita el escalado horizontal de contenedores de manera mucho más sencilla que con máquinas virtuales tradicionales.

Conceptos Clave de Docker

Imagen

Plantilla de solo lectura con instrucciones para crear un contenedor.

Contenedor

Instancia ejecutable de una imagen.

Dockerfile

Archivo de texto con instrucciones para construir una imagen.

Registro (Registry)

Servicio que almacena imágenes Docker (ej: Docker Hub).

Comandos Básicos de Docker

# Descargar imagen
docker pull ubuntu:latest

# Listar imágenes
docker images

# Eliminar imagen
docker rmi ubuntu:latest

IaaS (Infraestructura como Servicio)

IaaS proporciona infraestructura de computación virtualizada a través de Internet.

Componentes de IaaS

  • Servidores virtuales
  • Almacenamiento
  • Redes
  • Sistemas operativos

Proveedores Principales

Amazon AWS

Líder del mercado

Microsoft Azure

Integración con servicios Microsoft

Google Cloud

Fortaleza en IA y Big Data

Próximos Pasos

Teoría

Repasa los conceptos fundamentales

VirtualBox

Aprende sobre VirtualBox

Tareas

Practica con ejercicios

Overview

Vuelve a la visión general

Build docs developers (and LLMs) love