SlideShare una empresa de Scribd logo
Castellón - 5 y 6 de Julio 2010 – Universitat Jaume IJornadas Symfony5 y 6 de julio 2010Universitat Jaume I, Castellónhttp://decharlas.uji.es/symfonypatrocinanorganizancolaboran
Symfony, cloud computing y web escalablesAsier Marqués, blackslot.com5 y 6 de julio 2010Universitat Jaume I, CastellónJornadas Symfonyhttp://decharlas.uji.es/symfony
Proveemos y gestionamos infraestructuras basadas en servidores y  soluciones cloudhttp://blackslot.comJornadas Symfony            															http://decharlas.uji.es/symfony
Proveemos y gestionamos infraestructuras basadas en servidores y  soluciones cloudDesarrollamos aplicaciones webhttp://blackslot.comJornadas Symfony            															http://decharlas.uji.es/symfony
Proveemos y gestionamos infraestructuras basadas en servidores y  soluciones cloudDesarrollamos aplicaciones webPor supuesto, en Symfonyhttp://blackslot.comJornadas Symfony            															http://decharlas.uji.es/symfony
Agenda0.	Presentación/SpamArquitectura web: escalabilidad y rendimientoCloud computingPreguntasJornadas Symfony            															http://decharlas.uji.es/symfony
Agenda0.	PresentaciónArquitectura web: escalabilidad y rendimientoCloud computingPreguntasJornadas Symfony            															http://decharlas.uji.es/symfony
Escalabilidad:Capacidad de crecimiento
Rendimiento
Alta disponibilidad
Gestión simplificadaJornadas Symfony            															http://decharlas.uji.es/symfony
Escalabilidad:Capacidad de crecimiento
Rendimiento
Alta disponibilidad
Gestión simplificadaJornadas Symfony            															http://decharlas.uji.es/symfony
ConceptosJornadas Symfony            															http://decharlas.uji.es/symfony
EscalabilidadUna 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
RendimientoDisponemos 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 disponibilidadGozamos 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
SymfonyImplementación nativa de MVC
Flexible gracias a especialización y configuración
Arquitectura REST
Potente framework para automatizar tareas mediante línea de comandosJornadas Symfony            															http://decharlas.uji.es/symfony
Escalabilidad / puntos críticosDesarrollo
Base de datos
Caché
División de nuestra aplicación en capas críticas
Gestión de la infraestructuraJornadas Symfony            															http://decharlas.uji.es/symfony
Escalabilidad / puntos críticosDesarrollo (pensando en nuestra infraestructura)
Base de datos
Caché
División de nuestra aplicación en capas críticas
Gestión de la infraestructuraJornadas Symfony            															http://decharlas.uji.es/symfony
DesarrolloDesarrolla pensando en la infraestructuraJornadas Symfony            															http://decharlas.uji.es/symfony
Symfony / DesarrolloUsa la configuraciónPermite que una persona no programador mantenga tu aplicación.Automatiza el mantenimiento mediante tareas.Jornadas Symfony            															http://decharlas.uji.es/symfony
ejemploSITUACIÓNSon las 4am y nuestro administrador de sistemas necesita añadir un nuevo nodo de memcached al poolNosotros estamos ([ durmiendo | en Tokio | bien acompañados ]+) Jornadas Symfony            															http://decharlas.uji.es/symfony
Problema: implementación actualJornadas Symfony            															http://decharlas.uji.es/symfony
Problema: implementación actualIps hardcodeadas en el códigoJornadas Symfony            															http://decharlas.uji.es/symfony
Problema: implementación actualIps hardcodeadas en el códigoJornadas Symfony            															http://decharlas.uji.es/symfony
Problema: implementación actualUsamos nuestro propio sistema de cacheJornadas Symfony            															http://decharlas.uji.es/symfony
Problema: implementación actualLas 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 automatizableJornadas Symfony            															http://decharlas.uji.es/symfony
Configuración de caché propiaconfig / bsCache.ymlJornadas Symfony            															http://decharlas.uji.es/symfony
Configuración de caché propiaconfig / bsCache.ymlMás elegante y mantenibleJornadas Symfony            															http://decharlas.uji.es/symfony
Configuración de caché propiaJornadas Symfony            															http://decharlas.uji.es/symfony
Configuración de caché propiaCacheamos el archivo de configuraciónLeemos la configuración desde cacheJornadas Symfony            															http://decharlas.uji.es/symfony
Configuración de caché propiaHemos 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ácilJornadas Symfony            															http://decharlas.uji.es/symfony
Automatizamos el añadir nuevos servers al poolJornadas Symfony            															http://decharlas.uji.es/symfony
Automatizamos el añadir nuevos servers al poolLeemos la configuración y agregamos un nuevo servidor en el caso de que sea necesarioJornadas Symfony            															http://decharlas.uji.es/symfony
ResultadoJornadas Symfony            															http://decharlas.uji.es/symfony
ResultadoCon un solo comando la aplicación usará el nuevo nodo del pool de memcachedJornadas Symfony            															http://decharlas.uji.es/symfony
MySQLJornadas Symfony            															http://decharlas.uji.es/symfony
Symfony / MySqlSuele ser la primera necesidad a la hora de escalar y el principal cuello de botella en rendimientoOpciones habituales:Arquitectura Master – Slave
Optimización de consultas , ¿ORM, DQL? y mysql
Desnormalización y No-SQL
Particiones o estrategias federated
Busquedas: SphinxJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / Master - SlaveNodos master: para escribirNodos slaves: para leerObjetivos: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 - SlaveJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / Master - SlaveJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / Master - SlaveJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / Master - SlaveJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / Master - SlaveJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / Master - SlaveJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / Master - SlaveJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / Master - SlaveExtendemos las clases Doctrine_Query y Doctrine_RecordJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / Master - SlaveJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / Master - SlaveSi la query es de tipo SELECT la conexión se hará a un servidor Slave, en caso contrario al masterJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / Master - SlaveJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / Master - SlaveCuando salvemos, la consulta se hará contra el servidor masterJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / OptimizarReducir el número de consultas VS desglosar una consulta compleja en varias sencillasQueryCacheSustituir Count(*) por FOUND_ROWS()Olvidarnos de DQL en consultas complejasDesnormalizar VS usar NO-SQL: Memcached, Redis, Cassandra..Jornadas Symfony            															http://decharlas.uji.es/symfony
MySql / sfPager sin CountJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / sfPager sin CountAñadimos SQL_CAC_FOUND_ROWS al SELECTJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / sfPager sin CountContamos las tuplas totales con FOUND_ROWSJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / BúsquedasLimitaciones de MySql en búsquedasBajo 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úsquedasSphinxRanking de resultados por relevancia
Distribuido
Muy rápido, tanto indexando como a la hora de devolver los resultados
Indexación en calienteJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / BúsquedasSphinx: proceso de búsquedaJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / BúsquedasSphinx: proceso de búsquedaJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / BúsquedasSphinx: proceso de búsquedaJornadas Symfony            															http://decharlas.uji.es/symfony
MySql / BúsquedasSphinx: proceso de búsquedaJornadas Symfony            															http://decharlas.uji.es/symfony
CacheJornadas Symfony            															http://decharlas.uji.es/symfony
Symfony / CacheViewCache(Symfony <=1.4)Caché a nivel de acción
Caché a nivel de componente y partialDoctrine posee caché a nivel de consultasOpciones:APC, Xcache, Memcached, SQLite, Disco…Jornadas Symfony            															http://decharlas.uji.es/symfony
Cache / APCJornadas Symfony            															http://decharlas.uji.es/symfony
Cache / APCCada servidor web almacena objetos localmente, inaccesibles desde el resto de frontalesJornadas Symfony            															http://decharlas.uji.es/symfony
Cache / APCProsOpcode para php, reduce carga de procesador
Nos permite almacenar información
Caché muy rápidaContrasLa caché es local
No escala horizontalmenteJornadas Symfony            															http://decharlas.uji.es/symfony
Cache / APCapc.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 deejecució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 / MemcachedJornadas Symfony            															http://decharlas.uji.es/symfony
Cache / MemcachedCualquier servidor web puede gestionar la información de cacheJornadas Symfony            															http://decharlas.uji.es/symfony
Cache / MemcachedCualquier servidor web puede gestionar la información de cacheCada servidor de memcached es el responsable de una serie de objetosJornadas Symfony            															http://decharlas.uji.es/symfony
Cache / Memcached	   ProsUno de los sistemas más rápidos
Nos permite distribuir la información
Fácilmente escalableContrasAlmacenamiento no persistente
No hay replicación
Limitaciones:
keys     <=  255caracteres
valores <=  1MBJornadas Symfony            															http://decharlas.uji.es/symfony
Cache / Memcached	   ProsUno de los sistemas más rápidos
Nos permite distribuir la información
Fácilmente escalableContrasAlmacenamiento no persistente
No hay replicación*
Limitaciones:
keys     <=  255caracteres
valores <=  1MBJornadas Symfony            															http://decharlas.uji.es/symfony
Cache / MemcachedRepCache para MemcachedDota a memcached de replicaciónJornadas Symfony            															http://decharlas.uji.es/symfony
Cache / sfViewCacheJornadas Symfony            															http://decharlas.uji.es/symfony
Cache / sfViewCacheCache de acción, incluyendo el layoutJornadas Symfony            															http://decharlas.uji.es/symfony

Más contenido relacionado

DOC
Descifrar claves wifi wpa wpa2 desde linux(ubuntu)
PDF
Mysql En La Vida Real
PDF
Instalación de 2 CMS: Wordpress y Drupal
PPTX
Composer & SemVer
PDF
Instituto tecnologico de tehuacan
PDF
Tomcat
PDF
Sw ivc
PPTX
Significado xampp
Descifrar claves wifi wpa wpa2 desde linux(ubuntu)
Mysql En La Vida Real
Instalación de 2 CMS: Wordpress y Drupal
Composer & SemVer
Instituto tecnologico de tehuacan
Tomcat
Sw ivc
Significado xampp

Destacado (6)

ODP
symfony admin generator - decharlas
PDF
Symfony 2 - decharlas 2010
ODP
Caso práctico symfony: voota.es - decharlas
PPT
Symfony: Domesticando los formularios
PPT
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...
PDF
ORM Doctrine
symfony admin generator - decharlas
Symfony 2 - decharlas 2010
Caso práctico symfony: voota.es - decharlas
Symfony: Domesticando los formularios
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...
ORM Doctrine
Publicidad

Similar a Symfony, cloud computing y webs scalables - decharlas (20)

ODP
Symfony y Admin Generator
PDF
Escalabilidad y alto rendimiento con Symfony2
PPT
Symfony en la gestión de un centro de computación avanzada
PDF
Clase 3 instalación y primeros pasos
PDF
Desymfony - Servicios
ODP
Symfony: construyendo aplicaciones web
PPT
Introducción a symfony - decharlas
PPT
Plantillajornadasversion2 100708010347-phpapp01
PPT
Introduccion a symfony
PPTX
Symfony-Community: Introducción a Symfony Framework
PPTX
Rendimiento en aplicaciones web con Symfony2
PDF
Symfony2, Jornadas Symfony
PDF
Symfony
KEY
Grails, opción real y escalable para sitios web de alta carga
KEY
Symfony plugins - No reinventes la rueda PLUGINS - Jornadas Castellón
PDF
Mis primeros pasos con Symfony 2
KEY
SpringIO 2012 Madrid-Escalabilidad con Grails
PDF
Symfony plugins - decharlas
PDF
Introduction to Akamon software arquitecture for MPWAR
PDF
Symfony dagrinchi
Symfony y Admin Generator
Escalabilidad y alto rendimiento con Symfony2
Symfony en la gestión de un centro de computación avanzada
Clase 3 instalación y primeros pasos
Desymfony - Servicios
Symfony: construyendo aplicaciones web
Introducción a symfony - decharlas
Plantillajornadasversion2 100708010347-phpapp01
Introduccion a symfony
Symfony-Community: Introducción a Symfony Framework
Rendimiento en aplicaciones web con Symfony2
Symfony2, Jornadas Symfony
Symfony
Grails, opción real y escalable para sitios web de alta carga
Symfony plugins - No reinventes la rueda PLUGINS - Jornadas Castellón
Mis primeros pasos con Symfony 2
SpringIO 2012 Madrid-Escalabilidad con Grails
Symfony plugins - decharlas
Introduction to Akamon software arquitecture for MPWAR
Symfony dagrinchi
Publicidad

Último (20)

PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
Maste clas de estructura metálica y arquitectura
PDF
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
CyberOps Associate - Cisco Networking Academy
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PPTX
Curso de generación de energía mediante sistemas solares
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
Presentación de Redes de Datos modelo osi
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
introduccion a las_web en el 2025_mejoras.ppt
Presentación PASANTIAS AuditorioOO..pptx
Maste clas de estructura metálica y arquitectura
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
informe_fichas1y2_corregido.docx (2) (1).pdf
Historia Inteligencia Artificial Ana Romero.pptx
Power Point Nicolás Carrasco (disertación Roblox).pptx
CyberOps Associate - Cisco Networking Academy
historia_web de la creacion de un navegador_presentacion.pptx
TRABAJO DE TECNOLOGIA.pdf...........................
Curso de generación de energía mediante sistemas solares
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Influencia-del-uso-de-redes-sociales.pdf
SAP Transportation Management para LSP, TM140 Col18
Presentación de Redes de Datos modelo osi
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN

Symfony, cloud computing y webs scalables - decharlas