Post on 29-Jul-2015
Arquitecturas web escalables y de alta disponibilidad en la nube
Guillermo Antonio Alvarado Mejía Jornada Académica de Ingenieria 2015 | Universidad del Pedregal
Agenda
● ¿Que es la nube?○ Virtualización○ Tipos de nube○ Mito○ Ventajas
● Arquitecturas de software○ ¿Que hace un arquitecto de software?○ Escalabilidad○ Alta disponibilidad○ Aplicaciones cloud○ ¿Cómo hago todo esto? Tecnologías
● Aterrizando en la vida real○ Ejemplo de portal web concurrente
● Casos de éxito○ Netflix
¿Qué es la nube?
¿Que es la nube?
Es un paradigma que permite ofrecer servicios TI a través de Internet.
Virtualización
Creación a través de software de una versión virtual de algún recurso tecnológico.
La virtualización nos permite optimizar recursos y reducir gastos mediante consolidación
Pilares de la nube
InfraestructuraServidores - Almacenamiento - Red
IaaS
InfraestructuraServidores - Almacenamiento - Red
InfraestructuraServidores - Almacenamiento - Red
PlataformaSistema Operativo - Stack aplicación
PlataformaSistema Operativo - Stack aplicación
AplicaciónSoftware empaquetado
PaaS
SaaS
Pilares de la nube
SaaS
PaaS
IaaS
Pilares de la nube
Mesa
Bebida
Horno
Fuego
Masa
Salsa
Queso
TI Tradicional
Hecho en casa
Mesa
Bebida
Horno
Fuego
Masa
Salsa
Queso
IaaS
Comprada para calentar
Mesa
Bebida
Horno
Fuego
Masa
Salsa
Queso
PaaS
A domicilio
Mesa
Bebida
Horno
Fuego
Masa
Salsa
Queso
SaaS
Restaurant
El gran mito
No existe una sola nube.
El gran mito
En la vida real
Ventajas de la nube
Mejora las capacidades de los productos TI, otorga continuidad del negocio y la recuperación ante desastres de infraestructura.
❏Flexibilidad
❏Escalabilidad
❏Costos
❏Rentabilidad
Arquitectuas de Software
Arquitecturas de software
Al igual que los planos de un edificio o construcción, estas indican la estructura, funcionamiento e interacción entre las partes del software.
Arquitecturas de software
Una arquitectura de software se selecciona y diseña con base en objetivos y restricciones.
Arquitecto de software
A diferencia de un programador, el arquitecto de Software debe dominar la mayor cantidad de tecnologías de software y prácticas de diseño, para así poder tomar decisiones adecuadas
Arquitecto de software
El arquitecto de software es el líder técnico del equipo, el rol natural al que debe aspirar un programador experimentado que desea tomar decisiones técnicas relevantes en el desarrollo de un sistema y el negocio
Negocio
Tecnología
Director
Arquitecto de software
Ingeniero/Desarrollador
Escalabilidad
Es la habilidad de un sistema para reaccionar y adaptarse sin perder calidad, es decir estar preparado para hacerse más grande sin perder calidad en los servicios ofrecidos.
Scale up
Cuando al añadir más recursos a un nodo particular para que el sistema mejore en conjunto. Por ejemplo, añadir memoria o un disco duro más rápido.
Scale out
Un sistema escala horizontalmente si al agregar más nodos al mismo. Por ejemplo, al añadir un nuevo nodo de base de datos, el sistema tendrá más capacidad.
El problema
El principal problema de escalar un sistema informático es estimar cuánta carga deberá soportar el sistema.
Exacto, la nube...
¿Recuerdan la flexibilidad?
Alta disponibilidad
El concepto de alta disponibilidad de un sistema informático consiste en que el servicio ofrecido esté el mayor tiempo posible funcionando.
Lo ideal es que un servicio esté disponible 24 horas al día, 7 días a la semana, los 365 días del año, ofreciendo un 100% de disponibilidad.
Alta disponibilidad
99,9% = 43.8 minutos/mes u 8,76 horas/año ("tres nueves")
99,99% = 4.38 minutos/mes o 52.6 minutos/año ("cuatro nueves")
99,999% = 0.44 minutos/mes o 5.26 minutos/año ("cinco nueves")
Aplicaciones cloud
Aplicación tradicional
Aplicación cloud
Escalabilidad Scale up Scale out, autoescalamiento
Redundancia En hardware En la aplicación
Despliegue Lento, rígido Continuo, automatizado
Operación Tradicional, rígida DevOps, SLAS altos
Infraestructura Hardware IaaS, PaaS, SaaS
Aplicaciones cloud
Frontend
Message
Business
Data
DB
Web UI
Workers
ampq
AMPQ
Resumen de conceptos
Nube + arquitectura de software + escalabilidad + alta disponibilidad + aplicaciones cloud
Arquitecturas web escalables y de alta disponibilidad en la nube
Tecnologías
Resumen de conceptos + tecnologías
Nube + arquitectura de software + escalabilidad + alta disponibilidad
Arquitecturas web escalables y de alta disponibilidad en la nube
Aplicaciones cloud
Frontend
Message
Business
Data
Aterrizando en la vida real
Portal web concurrente
Caso de éxito
Netflix
Netflix
Netflix
Netflix
¿Dudas, preguntas? @galvarado89 galvarado.com.mx
¡Gracias!