Cloud Computing: Algoritmos en la Nube

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Cloud Computing: Algoritmos en la Nube - Presentation Transcript

    1. Cloud Computing: Amazon Web Services, Apache Hadoop y Widgets
    2. Previously…
    3. Previously…
    4. Así que ahora… Fotografía publicada bajo Creative Commons por el usuario santi_martin en flickr: http://www.flickr.com/photos/santi_martin/2944882285/
    5. ¿Y ahora? ?
    6. Cuando no todo es CRUDo  Emergencia en la web 2.0 o Los datos puros no son lo único.
    7. Cuando no todo es CRUDo  Emergencia en la web 2.0 o Las entradas del usuario pueden generar cambios.
    8. Cuando no todo es CRUDo  Emergencia en la web 2.0 o Los algoritmos suelen ser costosos
    9. Cuando no todo es CRUDo  Emergencia en la web 2.0 o Normalmente se cachean los resultados o Permite una mayor separación de capas o Alivia la carga al ejecutarse una sola vez o Presenta problemas de actualización o Cacheando solo parte (Google, la Wikipedia y otros RSS)
    10. Los caminos de la escalada  Hardware o Mayor potencia de cálculo o Escalado de una máquina (límite tecnológico) o Granjas de servidores (dificultades lógicas)  Software o Necesidades especiales o Aprovechamiento del multiprocesador o Aprovechamiento de las redes
    11. Los caminos de la escalada  Hardware o Límites tecnológicos de crecimiento o Complicado mantenimiento de instalaciones o Dispositivos no triviales (SANs, gestión avanzada de redes, equipos con características especiales…) o Dificultades de administración o Costes de almacenaje y acondicionamiento. o Resistencia a fallos.
    12. Los caminos de la escalada  Software o Dificultad de programación a través de redes. o Estrategia bottom-up: • División del problema • Composición de las soluciones o Deformación del uniproceso. o Dificultad de mantenimiento. o Registro de errores
    13. Cloud Computing
    14. Cloud Computing  El nuevo paradigma de computación distribuida o Los recursos (CPU, Disco...) se comparten a traves de Internet. o Virtualización de dispositivos o Desarrollo de estrategias de tolerancia a fallos o Independencia de plataforma
    15. Cloud Computing  Computación distribuida a la Web 2.0 o Software as a Service o Uso de tecnologías web (SOAP, Rest, Ajax...) estándar o Minimización de soluciones ad-hoc o Mezcla de diversos servicios o Trabajo en entornos heterogéneos
    16. Cloud Computing  Ejecución remota o Aplicaciones completas sin apenas recursos  Ideal para entornos RIA (Air, XUL...)  Widgets  El caso Spotify o Ideal para dispositivos móviles (iPhone, Android...) o Actualizaciones instantáneas o Independencia de localización
    17. Cloud Computing  Ventajas o Liberación de carga computacional o Simplificación de infraestructura o Ahorro de costes o Persistencia de servicios (datos, aplicaciones) o Independencia de localización o Facilidad de adopción de aplicaciones
    18. Cloud Computing  Inconvenientes o Dependencia de la red o Dependencia de terceros (caso GMail) o Falta de control (polémica Facebook) o Riesgos de seguridad
    19. Cloud Computing  ¿Quien habla de esto?
    20. Cloud Computing  ¿Quien habla de esto? ¿Futura Web 2.0?
    21. Cloud Computing  ¿Quien juega a esto? o Google (Google Apps) o Sun (Sun Grid, Sun Cloud) o Amazon (Amazon Web Services: EC2, S3, SimpleDB...) o Microsoft (Azure) o Apache (CouchDB, Hadoop) o Yahoo! (Open Social, Pipes, Y!OS)
    22. Amazon EC2
    23. Amazon EC2  ¿Qué es Amazon EC2? o Infraestructura en la nube o Instalación de máquinas virtuales para ejecución de procesos o Total control de administración sobre la máquina virtual remota o Amazon proporciona los servicios de escalabilidad y fiabilidad del servicio
    24. Amazon EC2  ¿Cómo conectarse a Amazon EC2? o http://aws.amazon.com/ec2/ o AWS Management Console: https:// console.aws.amazon.com/ o Versión Beta de una interfaz central de administración para AWS
    25. Amazon EC2  ¿Cómo dar de alta una máquina en Amazon EC2? o Máquinas virtuales: Amazon Machine Image o Lanzamos una nueva instancia o Seleccionamos la imagen o Plataforma. o Número de instancias o Capacidad de la máquina o Keypair a usar
    26. Amazon EC2  Personalización de las AMIs o Se pueden crear AMIs personalizadas o A partir de Máquinas Windows o Facilidad para crear máquinas replicadas
    27. Amazon EC2  Elastic Block Store o Posibilidad de crear volúmenes compartidos entre las instancias o Se comportan como un disco normal • Formatear • Montar/Desmontar • RAID o Se pueden crear copias de seguridad
    28. Amazon EC2  Elastic IPs o Mecanismo para hacer el servicio independiente de la instancia o Enmascaran el acceso a una máquina mediante una IP pública o Facilidad para recuperación de errores y alta disponibilidad
    29. Amazon EC2  Seguridad o Creación de KeyPairs para acceso por SSH o Creación de grupos de seguridad o Tipo de conexión o Ancho de banda
    30. Amazon EC2  API o Como todo Amazon Web Service tiene API o Permite acceder a los recursos vistos antes o Permite crear aplicaciones de gestión o ¿Ausencia de interfaz de administración?
    31. Amazon S3
    32. Amazon S3  ¿Qué es Amazon S3? o Sistema de almacenamiento de ficheros en la nube o Creación de carpetas o Subida de ficheros o Análogo al FTP
    33. Amazon S3  Conceptos o Buckets o Directorios o Ficheros o Permisos
    34. Amazon S3  API o Como todo Amazon Web Service tiene API o Permite crear/listar/actualizar/eliminar buckets, directorios, ficheros… o ¿Ausencia de interfaz de administración?  Otros accesos o HTTP o Protocolo s3
    35. Apache Hadoop
    36. Apache Hadoop  ¿Qué es Apache Hadoop? o Plataforma de computación distribuida o Desarrollada sobre la plataforma Java o “Implementación” open-source basada en: • Google FileSystem • Google MapReduce
    37. Apache Hadoop  HDFS o Hadoop's Distributed File System o Diseñado para detección de fallos y recuperación automática o Acceso a modo streaming o Soporte para grandes conjuntos de datos. o Optimizado para lecturas o Multiplataforma
    38. Apache Hadoop  MapReduce o Arquitectura de computación distribuida o Mútiples implementaciones (Google, Hadoop, CouchDB, Facebook Hive…) o Basado en la estrategia dividir-vencer
    39. Apache Hadoop  MapReduce Realiza una primera Realiza una segunda computación devolviendo computación sobre esos resultados intermedios resultados intermedios Map Resultados Reduce intermedios Input Output Ficheros [K1, V1] [K2, V2] [K3, V3] Ficheros
    40. Apache Hadoop  MapReduce o No todos los problemas son aplicables a este modelo o La entrada debe ser fácilmente divisible o Los resultados deben poder ser agregados  CouchDB y MapReduce o ¿Se reconoce la estructura? o Map: Obtener los resultados o Reduce: Realizar operaciones sobre los resultados intermedios
    41. Apache Hadoop  El Framework Map Resultados Reduce intermedios Input Output Ficheros [K1, V1] [K2, V2] [K3, V3] Ficheros
    42. Apache Hadoop  El Framework o InputFormat y RecordReader • Juntos se encargan de dividir los datos de entrada • Devuelven registros • Especifican los tipos de las claves y valores de entrada al algoritmo Map
    43. Apache Hadoop  El Framework Map Resultados Reduce intermedios Input Output Ficheros [K1, V1] [K2, V2] [K3, V3] Ficheros
    44. Apache Hadoop  El Framework o Mapper • Implementa la fase Map del algoritmo • Se invoca el método “map” una vez por cada registro (Record) • Recibe pares clave/valor del tipo especificado por el RecordReader • Devuelve pares clave/valor de nuevos tipos
    45. Apache Hadoop  El Framework o Combiner • Reagrupa los resultados intermedios • Reduce el tamaño de los datos a enviar de una fase a otra al ejecutar operaciones para agrupar los resultados • Dependiendo del problema no resulta viable • Envía los resultados agregados a la fase Reduce
    46. Apache Hadoop  El Framework Map Resultados Reduce intermedios Input Output Ficheros [K1, V1] [K2, V2] [K3, V3] Ficheros
    47. Apache Hadoop  El Framework o Reducer • Implementa la fase Reduce del Algoritmo • Recibe pares clave/valor del tipo especificado por la fase Map • Devuelve pares clave/valor de nuevos tipos
    48. Apache Hadoop  El Framework Map Resultados Reduce intermedios Input Output
    49. Apache Hadoop  El Framework o JobConf • Configuración del trabajo distribuido • Permite especificar Mappers, Reducers, InputFormats… • Permite especificar opciones ad-hoc
    50. Apache Hadoop  El Framework o Tool • Crea las configuraciones de trabajos • Permite crear más de un trabajo distribuido
    51. Apache Hadoop  El Framework… ¿Y si no quiero Java? o Modo Streaming • Permite usar lenguajes “de script” (PHP, Python, Ruby…) • Especificamos un Mapper y un Reducer • Los datos se pasan a los scripts, que se ejecutan
    52. Apache Hadoop  Creando un cluster 1. Preparando todas las máquinas o Instalar soporte para Hadoop o Copiar algoritmos necesarios o Modificar hadoop-env.sh: Indicar JAVA_HOME
    53. Apache Hadoop  Creando un cluster 1. Configurando el cluster o NameNode: Nodo encargado de gestionar el sistema de ficheros distribuido de Apache o JobTracker: Nodo encargado de gestionar los trabajos pendientes
    54. Apache Hadoop  Creando un cluster 1. Configurando el cluster o Hadoop-site.xml <property> <name>fs.default.name</name> <value>hdfs://{{IP del NameNode}}:{{Puerto del NameNode}}</value> <description>La URI del sistema de ficheros. </description> </property>
    55. Apache Hadoop  Creando un cluster 1. Configurando el cluster o Hadoop-site.xml <property> <name>mapred.job.tracker</name> <value>{{IP del JobTracker}}:{{Puerto del JobTracker}}</value> <description>El host y el puerto donde correra el jobTracker. </description> </property>
    56. Apache Hadoop  Creando un cluster 1. Configurando el cluster o masters / slaves: ficheros en que se indican maestros y esclavos
    57. Apache Hadoop  Creando un cluster 1. Iniciar el cluster o bin/start-all.sh
    58. Amazon Map/Reduce
    59. Amazon Map/Reduce  Storm Computing EC2 Hadoop S3
    60. Amazon Map/Reduce  Storm Computing EC2 Hadoop S3 Amazon Map/Reduce
    61. Amazon Map/Reduce  Falta de acoplamiento o Amazon EC2 incorpora la infraestructura necesaria o Apache Hadoop nos proporciona un framework para desarrollar algoritmos para procesar grandes conjuntos de datos o Amazon S3 nos permite almacenar grandes cantidades de ficheros asegurando la disponibilidad
    62. Amazon Map/Reduce  ¿Qué es Amazon Map/Reduce? o Servicio Web de Amazon para implementar algoritmos Map/Reduce o Nos permite crear trabajos de Apache Hadoop que operen sobre datos de Amazon S3, en instancias de Amazon EC2.
    63. Amazon Map/Reduce  ¿Cómo funciona Amazon Map/Reduce? 1. Configurando la entrada y la salida o Cargamos los datos de entrada en Amazon S3 o Cargamos el algoritmo en Amazon S3 o Creamos el directorio de salida en Amazon S3
    64. Amazon Map/Reduce  ¿Cómo funciona Amazon Map/Reduce? 1. Cargando el algoritmo o Hay que compilar nuestro algoritmo en un .jar javac -classpath ${HADOOP_HOME}/hadoop-${HADOOP_VERSION}- core.jar -d output_directory WordCount.java jar -cvf output_file.jar -C output_directory/ .
    65. Amazon Map/Reduce  ¿Cómo funciona Amazon Map/Reduce? 1. Creamos el trabajo o En la AWS Console o “Create new Job Flow ” o Elegimos el tipo de algoritmo o Elegimos la entrada y la salida
    66. Amazon Map/Reduce  ¿Cómo funciona Amazon Map/Reduce? 1. Creamos las instancias o Elegimos número de instancias o Elegimos tipo de instancias
    67. Amazon Map/Reduce  ¿Cómo funciona Amazon Map/Reduce? 1. Ejecutamos o Ventana de Estado en la AWS Console o Salida en directorios de Amazon S3
    68. Widgets
    69. Widgets  ¿Dónde está la nube?
    70. Widgets  ¿Dónde está la nube?
    71. Widgets  ¿Que perciben los usuarios? o Las revoluciones deben afectar a los usuarios o Percepción indirecta (mejores servicios) o ¿Percepción directa?
    72. Widgets  Cloud Computing para los usuarios o Mayor uso de servicios alojados en la web o Mayor interconexión entre servicios o Acceso ubicuo o Difuminar el acceso a la siguiente capa: • ¿Quién se conecta? • ¿Cuando? • ¿A donde?
    73. Widgets  Cloud Computing para los usuarios
    74. Widgets  Cloud Computing para los usuarios Widget
    75. Widgets  ¿Qué es un Widget? portable chunk of code that can be installed and executed within any separate HTML-based web page by an end user without requiring additional compilation. - Wikipedia o Facilidad de instalacion o Uso de Servicios Web y Ajax para interacción con el widget o Dependencia de la aplicación de terceros o Nosotros somos la nube
    76. Widgets  Plataformas de Widgets o Aplicaciones web específicas para ejecución de Widgets o API de desarrollo o Funciones sociales para ordenación y filtrado de Widgets o Ejemplos: • DockBar • Netvibes • iGoogle • Blogger
    77. Google Gadgets  Google Gadget o Plataforma de Widgets de Google o Distribución por Orkut, Google Desktop o iGoogle o Publicables en cualquier página web. o Mllones de potenciales usuarios o Desarrollo con HTML y Javascipt o API: http://code.google.com/intl/en/apis/gadgets/docs/dev_gui de.html
    78. Google Gadgets  Hello World! <?xml version=\"1.0\" encoding=\"UTF-8\" ?> <Module> <ModulePrefs title=\"hello world example\" /> <Content type=\"html\"> <![CDATA[ Hello, world! ]]> </Content> </Module> o ModulePrefs: Datos sobre el widget o <![CDATA[ ----- contenido ------ ]]>
    79. Google Gadgets  Content o Sección central del widget o Opción 1: Implementar vista y lógica con HTML y Javascript (<content type=”html”>) <Content type=\"html\"><![CDATA[ contenido ]]></Content> o Opción 2: Implementar vista y lógica en una aplicación web en un servidor y enlazar a ella (<content type=”url” href=”...”>) <Content type=“url“ href=“…” />
    80. Google Gadgets  Obteniendo datos gadgets.io.makeRequest(url, response, params); o Realiza petición a una URL o Se ejecuta un callback tras la petición donde se procesan los resultados. function response(obj) o obj.data = Datos parseados o obj.errors = Errores o obj.text = Texto de la respuesta
    81. Google Gadgets  Obteniendo datos o Tipos de datos esperados • Text: gadgets.io.ContentType.TEXT • Dom: gadgets.io.ContentType.DOM • Json: gadgets.io.ContentType.JSON • Feed: gadgets.io.ContentType.FEED o Influyen en el parseo de la respuesta
    82. Google Gadgets  Obteniendo datos o Tipos de datos esperados • Text: gadgets.io.ContentType.TEXT • Dom: gadgets.io.ContentType.DOM • Json: gadgets.io.ContentType.JSON • Feed: gadgets.io.ContentType.FEED o Influyen en el parseo de la respuesta
    83. Google Gadgets  Obteniendo datos <script type=\"text/javascript\"> function consultarDBs(){ var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON; var url = \"http://host/_all_dbs\"; gadgets.io.makeRequest(url, cargarDBs, params); } function cargarDBs(obj){ var html = \"<ul>\"; for (var key in obj.data) { html += \"<li>\"+ obj.data[key] + \"</li>\"; } document.getElementById('dbs').innerHTML = html; } </script>
    84. Google Gadgets  ¡¡¡¡ gagdets.io is not defined !!!! o Parte del nuevo API de Google Gadget o Aún no soportado por iGoogle • Soportado por otros: http:// wiki.opensocial.org/index.php?title=Cross- container_Development#Containers o Disponible en el sandbox de desarrollo: http:// www.google.com/ig/sandbox
    85. Google Gadgets  Enviando información o Método de petición como parámetro de la Request <script type=\"text/javascript\"> function sendData(data){ var params = {}; params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST; params[gadgets.io.RequestParameters.POST_DATA] = data; var url = \"http://host/_all_dbs\"; gadgets.io.makeRequest(url, callback, params); } function callback(obj){...} </script>
    86. Google Gadgets  Enviando información o Métodos de generación de JSON: var data = {}; data['title'] = “sacando datos a JSON”; gadgets.json.stringify(data) {\"title\":“Sacando datos a JSON\"}
    87. Google Gadgets  Actualizando la información o Google optimiza los gadgets a través de la caché o Para evitarlo podemos modificar la URL con parámetros extra o Problemas con algunos Servicios REST (CouchDB, por ejemplo)
    88. Google Gadgets  Vistas o Los contenedores suelen tener distintas vistas para los Gadgets o iGoogle posee: “home” (pequeño) y “canvas” (grande) o Se pueden especificar contenidos para distintas vistas.
    89. Google Gadgets  Vistas <?xml version=\"1.0\" encoding=\"UTF-8\" ?> <Module> <ModulePrefs title=\"Multiple Views Demo\"> <Require feature=\"opensocial-0.8\" /> </ModulePrefs> <Content type=\"html\" view=\"home\"> <![CDATA[ Esto en pequeño ]]> </Content> <Content type=\"html\" view=\"canvas\"> <![CDATA[ Esto en grande ]]> </Content> </Module>
    90. Google Gadgets  Vistas o Se puede cambiar de vista desde código var vistas = gadgets.views.getSupportedViews(); gadgets.views.requestNavigateTo(vistas[vista_deseada]);
    91. Conclusiones
    92. Conclusiones  Sobre el Cloud Computing o ¿Compensa? o ¿Mera reformulación de la computación distribuida? o ¿Uso empresarial de Gadgets? o Problemas de Amazon EC2 o Problemas de Hadoop o Problemas de Google Gadget
    93. Conclusiones Dudas y comentarios a docencia@davidjbrenes.info
    94. Conclusiones Estas transparencias se publican bajo licencia Creative Commons y se pueden redistribuir o modificar bajo las siguientes condiciones: 1. Se dé reconocimiento al autor de estas transparencias. 2. No se use con propósitos comerciales. 3. Se distribuya con la misma licencia. Texto de la licencia: http://creativecommons.org/licenses/by-nc-sa/3.0/

    + David J. BrenesDavid J. Brenes, 6 months ago

    custom

    837 views, 0 favs, 0 embeds more stats

    Algunos algoritmos de la Web 2.0 exigen una capacid more

    More info about this document

    CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

    Go to text version

    • Total Views 837
      • 837 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 25
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories