• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Symfony, cloud computing y webs scalables - decharlas
 

Symfony, cloud computing y webs scalables - decharlas

on

  • 2,983 views

Charla sobre symfony, cloud computing y webs escalables a cargo de Asier Marqués en las primeras jornadas symfony - decharlas.com

Charla sobre symfony, cloud computing y webs escalables a cargo de Asier Marqués en las primeras jornadas symfony - decharlas.com

Statistics

Views

Total Views
2,983
Views on SlideShare
2,856
Embed Views
127

Actions

Likes
4
Downloads
89
Comments
0

1 Embed 127

http://www.dcastello.com 127

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Symfony, cloud computing y webs scalables - decharlas Symfony, cloud computing y webs scalables - decharlas Presentation Transcript

    • Castellón - 5 y 6 de Julio 2010 – Universitat Jaume I
      Jornadas Symfony
      5 y 6 de julio 2010
      Universitat Jaume I, Castellón
      http://decharlas.uji.es/symfony
      patrocinan
      organizan
      colaboran
    • Symfony, cloud computing y web escalables
      Asier Marqués, blackslot.com
      5 y 6 de julio 2010
      Universitat Jaume I, Castellón
      Jornadas Symfony
      http://decharlas.uji.es/symfony
    • Proveemos y gestionamos infraestructuras basadas en servidores y soluciones cloud
      http://blackslot.com
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Proveemos y gestionamos infraestructuras basadas en servidores y soluciones cloud
      Desarrollamos aplicaciones web
      http://blackslot.com
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Proveemos y gestionamos infraestructuras basadas en servidores y soluciones cloud
      Desarrollamos aplicaciones web
      Por supuesto, en Symfony
      http://blackslot.com
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Agenda
      0. Presentación/Spam
      Arquitectura web: escalabilidad y rendimiento
      Cloud computing
      Preguntas
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Agenda
      0. Presentación
      Arquitectura web: escalabilidad y rendimiento
      Cloud computing
      Preguntas
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Escalabilidad:
      • Capacidad de crecimiento
      • Rendimiento
      • Alta disponibilidad
      • Gestión simplificada
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Escalabilidad:
      • Capacidad de crecimiento
      • Rendimiento
      • Alta disponibilidad
      • Gestión simplificada
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Conceptos
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Escalabilidad
      Una aplicación web o infraestructura es escalable cuando es capaz de aumentar la capacidad de dar servicio y funcionalidad, con la menor carga administrativa y de desarrollo posible.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Rendimiento
      Disponemos de buen rendimiento cuando somos capaces de soportar la mayor carga de trabajo posible con los menores recursos de hardware posibles.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Alta disponibilidad
      Gozamos de Alta disponibilidad cuando seguimos dando servicio aunque nuestra infraestructura sufra problemas en algunas de sus partes críticas.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Symfony
      • Implementación nativa de MVC
      • Flexible gracias a especialización y configuración
      • Arquitectura REST
      • Potente framework para automatizar tareas mediante línea de comandos
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Escalabilidad / puntos críticos
      • Desarrollo
      • Base de datos
      • Caché
      • División de nuestra aplicación en capas críticas
      • Gestión de la infraestructura
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Escalabilidad / puntos críticos
      • Desarrollo (pensando en nuestra infraestructura)
      • Base de datos
      • Caché
      • División de nuestra aplicación en capas críticas
      • Gestión de la infraestructura
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Desarrollo
      Desarrolla pensando en la infraestructura
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Symfony / Desarrollo
      Usa la configuración
      Permite que una persona no programador mantenga tu aplicación.
      Automatiza el mantenimiento mediante tareas.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • ejemplo
      SITUACIÓN
      Son las 4am y nuestro administrador de sistemas necesita añadir un nuevo nodo de memcached al pool
      Nosotros estamos ([ durmiendo | en Tokio | bien acompañados ]+)
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Problema: implementación actual
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Problema: implementación actual
      Ips hardcodeadas en el código
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Problema: implementación actual
      Ips hardcodeadas en el código
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Problema: implementación actual
      Usamos nuestro propio sistema de cache
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Problema: implementación actual
      • Las ips de los servidores están hardcodeadas en el código
      • Si un administrador añade un nuevo servidor de memcached, debe modificar el código para que nuestra aplicación lo pueda utilizar
      • No es fácilmente automatizable
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Configuración de caché propia
      config / bsCache.yml
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Configuración de caché propia
      config / bsCache.yml
      Más elegante y mantenible
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Configuración de caché propia
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Configuración de caché propia
      Cacheamos el archivo de configuración
      Leemos la configuración desde cache
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Configuración de caché propia
      • Hemos dejado más accesible la configuración a los sysadmin y otras personas no programadoras que mantengan el pool de memcached
      • Estaría bien que se pudiese automatizar el despliegue de nuevos nodos para memcached de forma fácil
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Automatizamos el añadir nuevos servers al pool
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Automatizamos el añadir nuevos servers al pool
      Leemos la configuración y agregamos un nuevo servidor en el caso de que sea necesario
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Resultado
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Resultado
      Con un solo comando la aplicación usará el nuevo nodo del pool de memcached
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySQL
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Symfony / MySql
      Suele ser la primera necesidad a la hora de escalar y el principal cuello de botella en rendimiento
      Opciones habituales:
      • Arquitectura Master – Slave
      • Optimización de consultas , ¿ORM, DQL? y mysql
      • Desnormalización y No-SQL
      • Particiones o estrategias federated
      • Busquedas: Sphinx
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Master - Slave
      Nodos master: para escribir
      Nodos slaves: para leer
      Objetivos:
      • Replicación y alta disponibilidad.
      • Delegamos las consultas read-only en los Slaves, liberando de esa carga a los servidores Master.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Master - Slave
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Master - Slave
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Master - Slave
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Master - Slave
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Master - Slave
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Master - Slave
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Master - Slave
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Master - Slave
      Extendemos las clases Doctrine_Query y Doctrine_Record
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Master - Slave
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Master - Slave
      Si la query es de tipo SELECT la conexión se hará a un servidor Slave, en caso contrario al master
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Master - Slave
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Master - Slave
      Cuando salvemos, la consulta se hará contra el servidor master
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Optimizar
      Reducir el número de consultas VS desglosar una consulta compleja en varias sencillas
      QueryCache
      Sustituir Count(*) por FOUND_ROWS()
      Olvidarnos de DQL en consultas complejas
      Desnormalizar VS usar NO-SQL: Memcached, Redis, Cassandra..
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / sfPager sin Count
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / sfPager sin Count
      Añadimos SQL_CAC_FOUND_ROWS al SELECT
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / sfPager sin Count
      Contamos las tuplas totales con FOUND_ROWS
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Búsquedas
      Limitaciones de MySql en búsquedas
      Bajo rendimiento en tablas con muchas tuplas en las que es necesario buscar en campos de texto muy grandes.
      No distingue resultados en base a su relevancia.
      A menudo obliga a desnormalizar.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Búsquedas
      Sphinx
      • Ranking de resultados por relevancia
      • Distribuido
      • Muy rápido, tanto indexando como a la hora de devolver los resultados
      • Indexación en caliente
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Búsquedas
      Sphinx: proceso de búsqueda
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Búsquedas
      Sphinx: proceso de búsqueda
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Búsquedas
      Sphinx: proceso de búsqueda
      Jornadas Symfony http://decharlas.uji.es/symfony
    • MySql / Búsquedas
      Sphinx: proceso de búsqueda
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Symfony / Cache
      ViewCache(Symfony <=1.4)
      • Caché a nivel de acción
      • Caché a nivel de componente y partial
      Doctrine posee caché a nivel de consultas
      Opciones:
      APC, Xcache, Memcached, SQLite, Disco…
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / APC
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / APC
      Cada servidor web almacena objetos localmente, inaccesibles desde el resto de frontales
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / APC
      Pros
      • Opcode para php, reduce carga de procesador
      • Nos permite almacenar información
      • Caché muy rápida
      Contras
      • La caché es local
      • No escala horizontalmente
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / APC
      apc.shm_size (por defecto 30MB)
      Tamaño de memoria compartida utilizada para almacenar objetos.
      apc.stat (por defecto 1)
      Si se encuentra activado comprueba por cada ciclo de
      ejecución si el código ha cambiado.
      Estableciéndolo 0 incrementa el rendimiento siempre que usemos rutas absolutas en los requires/includes.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / Memcached
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / Memcached
      Cualquier servidor web puede gestionar la información de cache
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / Memcached
      Cualquier servidor web puede gestionar la información de cache
      Cada servidor de memcached es el responsable de una serie de objetos
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / Memcached
      Pros
      • Uno de los sistemas más rápidos
      • Nos permite distribuir la información
      • Fácilmente escalable
      Contras
      • Almacenamiento no persistente
      • No hay replicación
      • Limitaciones:
      • keys <= 255caracteres
      • valores <= 1MB
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / Memcached
      Pros
      • Uno de los sistemas más rápidos
      • Nos permite distribuir la información
      • Fácilmente escalable
      Contras
      • Almacenamiento no persistente
      • No hay replicación*
      • Limitaciones:
      • keys <= 255caracteres
      • valores <= 1MB
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / Memcached
      RepCache para Memcached
      Dota a memcached de replicación
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / sfViewCache
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / sfViewCache
      Cache de acción, incluyendo el layout
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / sfViewCache
      Cache de acción, sin incluir el layout
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / sfViewCache
      Cache de partial y componente
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / sfViewCache
      • Nos facilita la invalidación de cache
      • Claves basadas en REST e integradas con el sistema de routing
      • Está bien para empezar, pero en proyectos avanzados tendremos que considerar otras opciones:
      • Estrategia personalizada de cache a nivel de controlador y modelo
      • Proxy Caché a nivel de sistema
      • ESI: EdgeSideIncludes, integrado en symfony 2
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache
      • Ideal para cachear estáticos almacenados en otras ubicaciones como s3
      • Más óptimo que cualquier caché gestionado en nuestra aplicación, pero menos flexible
      • La invalidación y en algunos casos la creación de la cache, debe ser gestionada desde la aplicación web o tareas automatizadas.
      • Nos permite el uso de ESI, EdgeSideIncludes
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache
      Evalúa si tiene cache
      de la vista solicitada.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache
      En caso de no tener,
      solicita la información a los
      servidores web y de archivos.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache
      Almacena la información en caché y responde a la petición.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache
      La siguiente petición es servida desde caché
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache
      Opciones más usadas:
      • Varnish: varnish-cache.org
      • Nginx: nginx.org
      • Squid: squid-cache.org
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache / Varnish
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache / Varnish
      Conexión al servidor web
      Cacheamos los estáticos
      No cacheamos las peticiones POST
      No cacheamos las peticiones que incluyan autenticación http o una cookie __sesion
      Lo demás se cachea
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache / Varnish
      Cuando una url es gestionada por la cache de varnish, se llamará a los métodos hit, miss y fetch
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache / Varnish
      vcl_hit
      Configuramos que si la url contiene la palabra «PURGAR_CACHE» elimine la caché.
      vcl_miss
      Configuramos que si la url contiene la palabra «PURGAR_CACHE» y no se encuentra en caché, nos avise
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache / Varnish
      vcl_fetch
      Miss llama a este método para que cree la caché.
      Ahí le establecemos el tiempo de vida de la misma
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache / ESI
      ESI (EdgeSideIncludes) nos permiten incluir contenidos de una url en nuestras vistas.
      Podemos distribuir contenido de nuestro site e incluso tratar cada parte como si se tratase de una aplicación web independiente.
      Symfony2 incluirá soporte nativo para ESI.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache / ESI
      <esi:include src = " /esi/categorias.php"
      alt = " <?php echo url_for(…) ?>"
      onerror="continue" />
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cache / proxyCache / ESI
      <esi:includesrc = " /esi/categorias.php"
      alt = " <?php echo url_for(…) ?>"
      onerror="continue" />
      Las urls pueden ser relativas o absolutas
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Dividir en capas
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Dividir en capas
      Arquitecturas más modulares y por lo tanto, más fáciles de escalar horizontalmente.
      Separamos los problemas en capas.
      Nos permite usar varias tecnologías de forma transparente, la más adecuada para cada caso.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Dividir en capas
      • Almacenamiento de archivos y estáticos
      • Cache
      • Acceso a fuentes de datos
      • Mailing
      • Procesamiento de media o tareas de cálculo
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Capas / Acceso a base de datos
      Consejo de Yahoo!: no usar ORMs
      Una buena estrategia si:
      • Usamos diferentes tecnologías de bases de datos según el tipo de información
      • Equipos de trabajo concentrados exclusivamente en esa área
      • Nuestra tecnología de base de datos no implementa interfaz PDO
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Gestión IT
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Gestión IT
      Monitorización
      • Alertas: Nagios
      • Gráficos: Munin, Ganglia, Cacti
      Aprovisionamiento
      • Buena nomenclatura
      • Configuraciones bajo control de versiones
      • Automatización de aprovisionamiento (Virtualización o instalación por red)
      Backup
      • ¿Has probado a restaurar?
      • Configuraciones bajo control de versiones
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Agenda
      0. Presentación
      Arquitectura web: escalabilidad y rendimiento
      Cloud computing
      Preguntas
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Cloud computing
      • Tres modelos principales: SAAS, PAAS y IAAS
      • Nos despreocupamos de los costes y gestión de la capa de hardware y de red
      • El despliegue es inmediato
      • Pago por uso
      • La escalabilidad horizontal no es un problema
      Jornadas Symfony http://decharlas.uji.es/symfony
    • IAAS vs PAAS
      PAAS
      • Hay que pensar de forma distinta a como pensaríamos en una infraestructura física.
      • Hay que desarrollar siendo conscientes de los requisitos y recursos de dicho entorno
      • Suele ser mucho más sencillo para un programador. Abstrae de la complejidad de la capa de sistemas.
      IAAS
      • No hay que aprender nada nuevo en la capa de sistemas.
      • Nos permite migrar aplicaciones sin hacer grandes cambios
      • Tenemos límites similares o menores a los que tendríamos en una infraestructura física
      Jornadas Symfony http://decharlas.uji.es/symfony
    • IAAS vs PAAS / Proveedores
      PAAS
      • Microsoft Azure
      • Google App Engine
      • Amazon S3, SDB
      IAAS
      • Amazon EC2
      • Softlayer
      • UbiCloud
      • Rackspace
      Jornadas Symfony http://decharlas.uji.es/symfony
    • AMAZON EC2, S3, SQS
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Jornadas Symfony http://decharlas.uji.es/symfony
    • Amazon / EC2
      • Permite desplegar instancias virtuales desde AMIsen minutos
      • Permite configurar AMIsy compartirlas con la comunidad
      • Distintos tipos de instancias: desde 1.7GB de Ram hasta 64.8GB de Ram
      • Pago por tiempo de CPU, transferencia de datos e I/O
      • Disponemos de volúmenes EBS, ip fijas, snapshots, balanceo y monitorización (CloudWatch)
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Amazon / S3
      • Almacenamiento de objetos clave / valor. Cada archivo es un objeto.
      • Para recuperar grandes cantidades de objetos, disponemos de AWS Import/Export
      • Se paga por almacenamiento, número de peticiones y transferencia.
      • El almacenamiento es flexible e infinito, pero cada objeto tiene un límite de 5GB
      • Accesible mediante REST con url basada en subdominios o directorio:
      http:// [bucket_id] .dominio.com/objeto
      http://s3.amazonaws3.com/ [bucket_id] /objeto
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Amazon / SQS
      • Servicio de cola de mensajes
      • Ideal para trabajos de alta carga que se puedan hacer de forma asíncrona
      • Se paga por transferencia y número de mensajes.
      • El almacenamiento es flexible e infinito.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Amazon / Cloudfusion
      • Conjunto de clases para trabajar con los servicios web de Amazon
      • Muy bien documentada y soporta todos los servicios de Amazon
      • Es muy sencilla de utilizar
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Amazon / Cloudfusion / S3
      Subimos un archivo a S3
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Amazon / Cloudfusion / S3
      Creamos un bucket
      Subimos un archivo a S3
      Subimos el archivo al bucket
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Amazon / Cloudfusion / EC2
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Amazon / Cloudfusion / EC2
      Arranco una instancia virtual en EC2
      Le asocio una dirección ip pública.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Amazon / Cloudfusion
      • Usando cloudfusion junto a las herramientas de configuración y tareas de Symfony, automatizamos el crecimiento y gestión de la infraestructura.
      • Podemos en todo momento aumentar nuestra capacidad de almacenamiento y proceso, de forma inmediata y flexible
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Resumen
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Resumen
      • Debemos empezar a pensar en la infraestructura como parte de nuestro proyecto de desarrollo
      • Además de por escalar, necesitamos preocuparnos por el rendimiento para reducir nuestros costes
      • Hoy en día existen más opciones que Apache + Mysqlen entornos Linux
      • El cloudcomputing es una opción asequible para disponer de arquitecturas pensadas para escalar desde el principio.
      Jornadas Symfony http://decharlas.uji.es/symfony
    • Agenda
      0. Presentación
      Arquitectura web: escalabilidad y rendimiento
      Cloud computing
      Preguntas
      Jornadas Symfony http://decharlas.uji.es/symfony
    • GRACIAS
      Asier Marqués
      asiermarques@blackslot.com
      5 y 6 de julio 2010
      Universitat Jaume I, Castellón
      Jornadas Symfony
      http://decharlas.uji.es/symfony