Infraestructura Global en la Nube: Regiones y Zonas de Disponibilidad
Clase 10 de 27 • Curso de Introducción a la Nube
Resumen
¿Qué es la infraestructura global en la nube?
La infraestructura global es la base sobre la que operan todos los proveedores de servicios en la nube. Permite a estos proveedores desplegar servicios a nivel mundial, garantizando una excelente calidad de servicio sin importar la ubicación geográfica del usuario. Este concepto incluye servidores distribuidos globalmente, conexiones a internet de alta velocidad, y tecnología de vanguardia. Todo esto permite a las aplicaciones funcionar desde cualquier parte del mundo.
¿Cómo se distribuyen las regiones del cloud?
En la estructura de la nube, las regiones son ubicaciones grandes y físicas donde se agrupan múltiples centros de datos. Estos están estratégicamente distribuidos para ofrecer una amplia cobertura de servicio. Por ejemplo, un usuario en Argentina podría utilizar un centro de datos en Sao Paulo o Estados Unidos, y una empresa en Europa podría desplegar servicios desde Londres, Milán o París. Los criterios para seleccionar una región incluyen:
- Latencia: Buscar una región cercana para minimizar el tiempo de respuesta.
- Precio: Los costos pueden variar según la región debido a diferencias legales y fiscales.
- Catálogo de servicios: Revisar la disponibilidad del servicio en las regiones específicas, ya que nuevos servicios suelen estar limitados inicialmente a ciertas áreas.
Código de ejemplo para selección de región
# Ejemplo de un código sencillo en Python para elegir una región
def seleccionar_region(criterio):
regiones = {
'latencia': 'Virginia',
'precio': 'Ohio',
'servicio': 'Virginia'
}
return regiones.get(criterio, 'Virginia')
region_elegida = seleccionar_region('precio')
print(f"Región seleccionada: {region_elegida}") # Output: Región seleccionada: Ohio
¿Qué es una zona de disponibilidad?
Las zonas de disponibilidad, o AZ (Availability Zones), son grupos de centros de datos totalmente aislados dentro de una región. Estas zonas están interconectadas a través de conexiones de alta velocidad, garantizando así alta disponibilidad. Cada zona es independiente, lo que significa que una interrupción en una zona no afectará a las otras.
Ejemplo de arquitectura multizona
Imagina que quieres desplegar un servicio llamado Platzi Wallet. Puedes tener servidores en diferentes zonas para distribuir el tráfico y garantizar la continuidad del servicio:
- Usuario A es dirigido a la zona 1.
- Usuario B es enviado a la zona 2.
Código de ejemplo para balanceo de carga
# Ejemplo de un balanceador de carga simple
def balanceador_de_carga(usuarios):
zonas = ['zona 1', 'zona 2']
distribucion = {}
for i, usuario in enumerate(usuarios):
zona = zonas[i % len(zonas)]
distribucion[usuario] = zona
return distribucion
usuarios = ['Pedro', 'Camila']
distribucion = balanceador_de_carga(usuarios)
print(distribucion) # Output: {'Pedro': 'zona 1', 'Camila': 'zona 2'}
Importancia de arquitecturas multizona
Diseñar aplicaciones para funcionar en múltiples zonas es crucial. Si una de las zonas falla, el servicio puede continuar operando desde la otra zona, asegurando así alta disponibilidad. Esto se logra mediante la implementación de arquitecturas multizona, permitiendo que las aplicaciones mantengan su funcionamiento incluso ante fallos en una parte de la infraestructura.