Dr. Javier Mijail Espadas Pech
Retos actuales y futuros del Cómputo en la Nube – Un enfoque académico
• Presentar temas relacionados al cómputo
en la nube y desde el punto de vista
académico, tanto actuales como retos y
oportunidades de investigación a futuro.
Objetivo
Agenda
Qué es el Cómputo en la Nube?
Conclusión
Capas del Cómputo en la Nube
Problemáticas Actuales
Ventajas y Desventajas
Cómputo en la Nube y la Academia
Problemáticas Futuras
7
6
5
4
3
2
1
• Cómputo en la Nube (Cloud Computing)
se refiere a las aplicaciones, plataformas e
infraestructuras ofrecidas como servicio ya
sea por Internet o por medio de redes
privadas.
Qué es el cómputo en la nube?
• Compañías importantes (Microsoft, Google,
Amazon, HP, Oracle) han establecido que el
futuro de la tecnología de la información está en
el cómputo en la nube, ya que permite acceder
a sistemas de hardware y software por medio de
servicios bajo demanda y pago-por-uso,
similares a los servicios domésticos (agua,
electricidad).
Qué es el cómputo en la nube?
Qué es el cómputo en la nube?
• Accesibilidad.
• Ambiente distribuido.
• Virtualización.
• Escalabilidad.
• Modelo de negocio.
• “Infinito”
Ventajas
• Localización.
• Seguridad.
• Dependencia.
• Latencia.
Desventajas
Applications
(Software as a Service)
Abstract Services
(Platform as a Service)
Flexible infrastructure
(Infrastructure as a Service)
Service Service ServiceInfrastructure
Interface
Development
DeploymentData Storage
Virtualization
OS
Hardware
Cloud Actors
Service Users Service Providers
Cloud Layers
Salesforce.com
Microsoft Live OfficeCisco Webex
Google Apps
Cloud Services
Amazon S3
Microsoft AzureGoogle SDK
Amazon Elastic Cloud
Masso Hosting Cloud
Virtualization
OS
Hardware
Virtualization
OS
Hardware
Capas del Cómputo en la Nube
* Espadas, Et Al.
• Es de interés global el implementar centros y grupos de
investigación en el área de Cloud Computing.
• Actualmente universidades como Stanford o Berkeley
tienen formalmente cátedras de investigación en el área.
• Centros de Investigación en compañías como Microsoft,
HP, Google, Amazon.
Computo en la Nube y la Academia
• Procesamiento masivo de datos.
• Escalabilidad y asignación de recursos.
• Arquitecturas e interoperabilidad.
• Metodologías de desarrollo.
Problemáticas Actuales
• Grandes cantidades de información provenientes de
Internet y de centros de datos privados necesitan ser
procesados de manera eficiente y eficaz con el fin de
generar información relevante.
• Facebook almacena, accede y analiza 30+ petabytes de
datos al día.
• Decodificar el genoma humano tomaba 10 años, ahora
puede ser decodificado en una semana.
• En 2008, Google procesó 20,000 terabytes de datos (20
petabytes) por día.
Procesamiento masivo de datos
Experimentos
Archivos / Centros de Datos Literatura Simulaciones
De petabytes a Exabytes
Procesamiento masivo de datos
• Enfoques de solución:
– Bases de Datos Distribuidas.
– Bases de Datos en la Nube.
– Hardware.
– Paralelismo (MPI, MapReduce)
Procesamiento masivo de datos
• MapReduce
– Es un modelo de programación que permite
procesar y generar grandes cantidades de
datos.
– Los datos son normalmente procesados en
ambientes paralelos, distribuidos dentro de
clusters o nubes.
Procesamiento masivo de datos
Procesamiento masivo de datos
• MapReduce
Procesamiento masivo de datos
Procesamiento masivo de datos
• Apache Hadoop
• Es una implementación del modelo
MapReduce.
• Aplicaciones en la nube
– Analytics (Web, Social, Logs)
– Procesamiento de imágenes y video
– Machine Learning
– Bases de Datos
– Matemáticas
– Biología / Clima
Procesamiento masivo de datos
• Retos académicos
– Clusters y nubes con MapReduce/Hadoop.
– Modelos y algoritmos paralelos.
– Optimización de búsquedas.
– Optimización de recursos.
– Diseño y análisis basados en paralelismo.
– Identificación de problemáticas.
Procesamiento masivo de datos
• Facebook genera dinámicamente más de dos
billones de páginas por día.
• Facebook procesa aproximadamente 23,000
requests por segundo. Actualmente tiene +1800
instancias de bases de datos.
• Walmart procesa 1 million de transacciones por
hora.
Escalabilidad y Asignación de Recursos
• Escalabilidad es la habilidad de un
sistema a reponder en base a la demanda
creciente.
Escalabilidad y Asignación de Recursos
Escalabilidad y Asignación de Recursos
• Los modelos de escalabilidad en la nube aún
carecen de mecanismos adecuados para
escalar dinámicamente aplicaciones Web.
* Espadas, Et Al.
Escalabilidad y Asignación de Recursos
• Enfoques de solución:
– Balanceo de cargas.
– Escalabilidad bajo demanda.
– Asignación dinámica de recursos.
Pay-per-use resourcesReal demandExpected demand
Under provisioning (saturation)
Over provisioning (underutilization)
* Espadas, Et Al.
Escalabilidad y Asignación de Recursos
• Muchos de los algoritmos de escalabilidad
y asignación efectiva de recursos son
relativos problemas de maximización de
utilidad y minimización de costo.
* Espadas, Et Al.
• Retos académicos – Algoritmos de optimización de recursos (ej. Maxmin,
Mochila).
– Lenguajes, plataformas y arquitecturas auto-
escalables (ej. Scala).
– Clusters / nubes privadas (ej. Eucalyptus).
– Virtualización.
Escalabilidad y Asignación de Recursos
• La adopción del cómputo en la nube
depende en mayor medida de su
interoperabilidad y estandarización
Arquitecturas e interoperabilidad
Parameswaran & Chaddha, 2009
• Problemáticas actuales
– Arquitecturas
– Integración
– Seguridad
– Tolerancia a fallos
– SLA (Niveles de Servicio)
Arquitecturas e interoperabilidad
• Retos académicos – Arquitecturas específicas (matemáticas, biología,
multimedia).
– Protocolos de integración (SOAP, REST).
– Modelos de consumo (stateless, stateful).
– Formatos de intercambio de datos (XML, JSON).
– Algortimos de seguridad (RSA, simétricos, asimétricos).
– Mecanismos de seguridad (DoS, Cross-site).
Arquitecturas e interoperabilidad
• Los modelos de desarrollo de software
también están cambiando en medida que
el crecimiento de aplicaciones en la nube
crece.
Metodologías de desarrollo
• Problemáticas actuales. – Metodologías de desarrollo actuales no son
orientadas a servicios en la nube.
– Nuevas plataformas de desarrollo (ej. Salesforce,
Azure, App Engine).
Metodologías de desarrollo
* Espadas, Et Al.
• Retos académicos – Ingeniería de Software orientada al Cómputo en la Nube.
– Metodos ágiles de testing y deployment.
– Nuevas herramientas de desarrollo.
Metodologías de desarrollo
* Espadas, Et Al.
• Uno de los crecientes enfoques en procesamiento de
datos ha sido para en análisis de datos genéticos.
• La bioinformática es la aplicación de tecnologías de
información a la gestión y análisis de datos biológicos.
Problemáticas Futuras: Bioinformática
• Los principales esfuerzos de investigación incluyen el
secuenciación de ADN, la predicción de genes, montaje
análisis estructural de proteínas, predicciones de la
expresión génica y modelado de la evolución.
Problemáticas Futuras: Bioinformática
Alineamiento de diferentes proteínas de hemoglobina, realizado con el servicio web para ClustalW
implementado en el Instituto Europeo de Bioinformática. El alineamiento de secuencias biológicas es
una de las herramientas básicas de la bioinformática.
• Para qué?
– Medicamentos de acción específica para enfermedades (cáncer,
artritis).
– Detección de enfermedades genéticas / hereditarias.
– Análisis y creación de nuevas proteínas.
– Análisis de mutaciones en el cáncer.
Problemáticas Futuras: Bioinformática
• Porqué necesitan la informática:
– «En un paciente, una enfermedad crónico-degenerativa es
causada por una mutación en un par de genes, de 3 billones de
pares»
– «GenBank contiene información de cerca de 100 billones de
nucleótidos y 100 millones de secuencias”
• Hasta hace unos años, los esfuerzos para analizar
eficientemente datos genéticos eran sobre clusters de
computadoras, programados con herramientas como MPI
(C++).
Problemáticas Futuras: Bioinformática
• Técnicas tradicionales:
– Clustering
– Minería de Datos
– Búsqueda
• Técnicas nuevas:
– Tradicionales + MapReduce
– Cloud Computing + Hadoop
Problemáticas Futuras: Bioinformática
• Retos académicos
• “Next-generation sequencing”
– Procesar todo en la nube (Amazon EC2).
– Algoritmos en paralelo (Hadoop).
– Optimizar algortimos de análisis (Clustering).
– Analizar resultados en tiempo real (Analytics).
Problemáticas Futuras: Bioinformática
• El uso de variantes de Redes Neuronales
(IA) para reconocimiento de patrones.
• Aplica en diversos dominios: Preferencias,
reconocimiento de imágenes, reconocimiento
del lenguaje, modelos de lenguaje, etc.
Problemáticas Futuras: Deep Learning
• Netflix logró correr algoritmos en 16,000 CPUs
(cores) en 1000 máquinas virtuales del cloud de
Amazon (AWS) para entrenar una red neuronal
en cuestion de días.
• Argumentan que la infraestructura usada es aún
impráctica.
• Técnicas nuevas:
– Distributing Machine Learning
Problemáticas Futuras: Deep Learning
Computación en la Nube: Futuro
Cliente/Servidor
Ambientes Distribuidos
Computación en la Nube
Internet de las Cosas
Conclusiones
El cómputo en la nube es una tendencia primordial en el área de las TI.
1
2
3
4
5
6
7
Es un área de investigación con importante crecimiento.
El análisis de grandes cantidades de datos en la nube es tópico de investigación.
La escalabilidad efectiva en la nube debe alcanzarce con nuevas técnicas.
Interoperabilidad entre las plataformas es detonante para la adopción.
Nuevas metodologías de desarrollo para nuevos tipos de aplicaciones.
Importante futuro en áreas como bioinformática, aprendizaje, etc.