¿Como se construye una aplicación web segura, que siempre está disponible y atiende a miles de usuarios? En esta charla hablaré de como construir aplicaciones web concurrentes que son capaces de atender miles de usuarios a la vez. Hablare del uso de a nube y las bases de datos, sistemas de archivos, servidores web, lenguajes de programación, balanceadores de carga y como colaboran e intervienen para lograr crear arquitecturas web robustas.
Arquitecturas web escalables y de alta disponibilidad en la nube
1. Arquitecturas web escalables y de alta disponibilidad en la nube
Guillermo Antonio Alvarado Mejía Jornada Académica de Ingenieria 2015 | Universidad del
Pedregal
2. 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
4. ¿Que es la nube?
Es un paradigma que permite ofrecer servicios TI a través de Internet.
5. 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
6. Pilares de la nube
Infraestructura
Servidores - Almacenamiento - Red
IaaS
Infraestructura
Servidores - Almacenamiento - Red
Infraestructura
Servidores - Almacenamiento - Red
Plataforma
Sistema Operativo - Stack aplicación
Plataforma
Sistema Operativo - Stack aplicación
Aplicación
Software empaquetado
PaaS
SaaS
8. 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
12. 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
14. 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.
15. Arquitecturas de software
Una arquitectura de software se selecciona y diseña con base en objetivos y
restricciones.
16. 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
17. 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
18. 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.
19. 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.
20. 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.
21. El problema
El principal problema de escalar un sistema informático es estimar cuánta carga
deberá soportar el sistema.
23. 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.
24. 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")
25. 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
27. Resumen de conceptos
Nube + arquitectura de software + escalabilidad + alta disponibilidad + aplicaciones cloud
Arquitecturas web escalables y de alta disponibilidad en la nube
29. Resumen de conceptos + tecnologías
Nube + arquitectura de software + escalabilidad + alta disponibilidad
Arquitecturas web escalables y de alta disponibilidad en la nube