SlideShare uma empresa Scribd logo
1 de 35
Construyendo proyectos escalables con Drupal Pablo Cerda Director de desarrollo de  ide up ! www.ideup.com Drupalcamp Spain 2010
[object Object],[object Object],De qué va el tema Drupalcamp Spain 2010
[object Object],[object Object],[object Object],[object Object],Velocidad de evolución Drupalcamp Spain 2010
Cuidado con perder el control Drupalcamp Spain 2010 Es difícil ver el punto de ruptura entre una aplicación sostenible o no. El síntoma es que de pronto es muy costoso corregir errores o añadir funcionalidades.
Miles de cabezas piensan más que unas cuantas Drupalcamp Spain 2010 ,[object Object],[object Object],[object Object]
Cimienta tus conocimientos de Drupal ,[object Object],[object Object],Drupalcamp Spain 2010
¡Que se convierta en éxito no en pesadilla! ,[object Object],[object Object],[object Object],Drupalcamp Spain 2010
¡Drupal puede escalar, y mucho!
Definiendo escalabilidad ,[object Object],[object Object],[object Object],[object Object],Drupalcamp Spain 2010
Definiendo rendimiento ,[object Object],[object Object],[object Object],Drupalcamp Spain 2010
¿Hasta que punto mejorar el rendimiento? ,[object Object],[object Object],[object Object],Drupalcamp Spain 2010
Arquitectura de servidores en lanetro Drupalcamp Spain 2010 LINUX (debian) bd Apache Solr LINUX (debian) Serv. App. Jetty búsqueda nagios cacti LINUX (debian) An álisis logs apache monitor MySQL RAID 0+1 PHP APPLICATION-CMS DRUPAL APACHE LINUX (debian) Memcached frontales
El punto clave para escalar Drupal es la BD Drupalcamp Spain 2010 Por su estructura modular y de sobre escritura de funciones y consultas, Drupal no es muy amigable con los motores de base de datos. Cada m ódulo necesita realizar muchas consultas sobre las tablas base de Drupal (node, users, taxonomy, etc.) que resultan en una sobrecarga.
¡Hay que liberarle carga a la BD! ,[object Object],[object Object],[object Object],Drupalcamp Spain 2010
Caché del núcleo de Drupal ,[object Object],[object Object],Drupalcamp Spain 2010
Authcache, una cache mejorada ,[object Object],[object Object],[object Object],Drupalcamp Spain 2010
Drupalcamp Spain 2010 http:// drupal.org/project/authcache
Invalidación de cache ,[object Object],[object Object],Drupalcamp Spain 2010
Cache Browser, un navegador de cache Drupalcamp Spain 2010
ApacheSolr nos salvó la vida ,[object Object],[object Object],Drupalcamp Spain 2010
ApacheSolr es extensible ,[object Object],[object Object],[object Object],Drupalcamp Spain 2010
ApacheSolr es escalable ,[object Object],Drupalcamp Spain 2010
Prevención de bloqueos de BD ,[object Object],[object Object],[object Object],Drupalcamp Spain 2010
Optimización backend ,[object Object],[object Object],[object Object],Drupalcamp Spain 2010
Una consulta SQL de muerte Drupalcamp Spain 2010 SELECT  qc.enid AS ID_EVENTO, qc.snid AS ID_SITIO, ns.title AS NOMBRE_SITIO, ne.title AS TITULO_EVENTO,  vote.value as RANKING, fes.fecha AS FECHA, IF(res.horario IS NULL OR TRIM(res.horario)='','--',res.horario) AS HORA, IF(res.precio IS NULL OR TRIM(res.precio)='','--',res.precio) AS PRECIO, IF(res.titular IS NULL OR TRIM(res.titular)='',ne.title, res.titular) AS TEXTO_EN_TITULO_DESPLEGABLE, IF(res.resumen_alternativo IS NULL OR TRIM(res.resumen_alternativo)='',ln_e.resumen, res.resumen_alternativo) AS COMENTARIO_EN_DESPLEGABLE, tde.name AS CATEGORIA_EVENTO FROM (&quot;. $lQueryCentral.$lJoins.$lWheres. &quot;) qc INNER JOIN {node} ns ON qc.snid = ns.nid INNER JOIN {node} ne ON qc.enid = ne.nid INNER JOIN {ln_evento} ln_e ON ne.vid = ln_e.vid INNER JOIN {term_node} tne ON ne.vid = tne.vid INNER JOIN {term_data} tde ON tne.tid = tde.tid INNER JOIN {ln_rel_evento_sitio} res ON qc.relES_id = res.id INNER JOIN  {ln_fecha_evento_sitio} fes ON qc.relES_id = fes.relid LEFT JOIN {votingapi_cache} vote ON vote.content_type='node' AND function='average' AND vote.content_id=qc.enid WHERE fes.fecha >= %d AND fes.fecha <= %d AND tde.vid = %d
Una consulta compleja pero razonada Drupalcamp Spain 2010 SELECT DISTINCT ncs.nid as id FROM {node_comment_statistics} ncs WHERE EXISTS ( SELECT res.enid FROM {ln_rel_evento_sitio} res, {term_node} tne, {leftandright} lre, {term_node} tns,  {leftandright} lrs   WHERE ncs.nid=res.enid AND res.enid=tne.nid    AND res.snid=tns.nid   AND tne.tid=lre.tid AND tns.tid=lrs.tid   AND lre.vid = 22 AND lre.lft >= %d AND lre.rgt <= %d   AND lrs.vid = 11 AND lrs.lft >= %d AND lrs.rgt <= %d ) ORDER BY ncs.comment_count DESC LIMIT 0,50
Optimización frontend ,[object Object],[object Object],[object Object],[object Object],[object Object],Drupalcamp Spain 2010
Optimizaciones en servidores frontales ,[object Object],[object Object],[object Object],[object Object],Drupalcamp Spain 2010
Monitoriza lo que pasa en tu arquitectura de servidores ,[object Object],[object Object],[object Object],[object Object],[object Object],Drupalcamp Spain 2010
Cacti: monitorizacion Mysql Drupalcamp Spain 2010
Cacti: monitorizacion Apache  Drupalcamp Spain 2010
Cacti: monitorizacion Memcached
Consejos de desarrollo sobre Drupal ,[object Object],[object Object],[object Object],Drupalcamp Spain 2010
[object Object],[object Object],[object Object],Drupalcamp Spain 2010 Más consejos …
GRACIAS ¿Preguntas? Pablo Cerda Director de desarrollo de  ide up ! www.ideup.com Drupalcamp Spain 2010 Art ículos que extienden lo que hemos visto: http://www.tratonera.com/?q=blog/3

Mais conteúdo relacionado

Semelhante a Construyendo proyectos escalables con Drupal

Presentación Jornada Drupal Sevilla Febrero 2015
Presentación Jornada Drupal Sevilla Febrero 2015Presentación Jornada Drupal Sevilla Febrero 2015
Presentación Jornada Drupal Sevilla Febrero 2015Javier Prada Oliva
 
Curso mysql modificado
Curso mysql modificadoCurso mysql modificado
Curso mysql modificadoYusef Yamel
 
Data lake y virtualización. Ejes para una arquitectura abierta en big data v6
Data lake y virtualización. Ejes para una arquitectura abierta en big data v6Data lake y virtualización. Ejes para una arquitectura abierta en big data v6
Data lake y virtualización. Ejes para una arquitectura abierta en big data v6Dell EMC
 
Presentacion drupal on the box de Oskar de Documentados
Presentacion drupal on the box de Oskar de DocumentadosPresentacion drupal on the box de Oskar de Documentados
Presentacion drupal on the box de Oskar de DocumentadosWORKbox
 
Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007JuancaPompilla
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan phpCarlos Zantana
 
Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Nelson Rojas Núñez
 
11- Unidad 3: Webservices - 3.2 Uso de Web services (aplicaciones))
11- Unidad 3: Webservices - 3.2 Uso de Web services (aplicaciones)) 11- Unidad 3: Webservices - 3.2 Uso de Web services (aplicaciones))
11- Unidad 3: Webservices - 3.2 Uso de Web services (aplicaciones)) Luis Fernando Aguas Bucheli
 
1 Diseño Web introducción a Drupal
1 Diseño Web   introducción a Drupal1 Diseño Web   introducción a Drupal
1 Diseño Web introducción a DrupalJLSitec
 
Herramientas de visualización de datos
Herramientas de visualización de datosHerramientas de visualización de datos
Herramientas de visualización de datosBBVA API Market
 
Marketing, Comunidad, Empleo y Negocio Internacional basado en Drupal
Marketing, Comunidad, Empleo y Negocio Internacional basado en DrupalMarketing, Comunidad, Empleo y Negocio Internacional basado en Drupal
Marketing, Comunidad, Empleo y Negocio Internacional basado en DrupalLa Drupalera
 
Drupal 7 (2)
Drupal 7 (2)Drupal 7 (2)
Drupal 7 (2)jecol59
 
Presentación sgbd
Presentación sgbdPresentación sgbd
Presentación sgbdSergio Cano
 

Semelhante a Construyendo proyectos escalables con Drupal (20)

Presentación Jornada Drupal Sevilla Febrero 2015
Presentación Jornada Drupal Sevilla Febrero 2015Presentación Jornada Drupal Sevilla Febrero 2015
Presentación Jornada Drupal Sevilla Febrero 2015
 
Big Data en Azure: Azure Data Lake
Big Data en Azure: Azure Data LakeBig Data en Azure: Azure Data Lake
Big Data en Azure: Azure Data Lake
 
Taller de zan php
Taller de zan phpTaller de zan php
Taller de zan php
 
Curso mysql modificado
Curso mysql modificadoCurso mysql modificado
Curso mysql modificado
 
curso_mysql.pdf
curso_mysql.pdfcurso_mysql.pdf
curso_mysql.pdf
 
Data lake y virtualización. Ejes para una arquitectura abierta en big data v6
Data lake y virtualización. Ejes para una arquitectura abierta en big data v6Data lake y virtualización. Ejes para una arquitectura abierta en big data v6
Data lake y virtualización. Ejes para una arquitectura abierta en big data v6
 
Cw15 conoce drupal_v28
Cw15 conoce drupal_v28Cw15 conoce drupal_v28
Cw15 conoce drupal_v28
 
Presentacion drupal on the box de Oskar de Documentados
Presentacion drupal on the box de Oskar de DocumentadosPresentacion drupal on the box de Oskar de Documentados
Presentacion drupal on the box de Oskar de Documentados
 
Drupalonthebox
DrupalontheboxDrupalonthebox
Drupalonthebox
 
Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007
 
Big data, Hadoop, HDInsight
Big data, Hadoop, HDInsightBig data, Hadoop, HDInsight
Big data, Hadoop, HDInsight
 
Performance en Drupal 7
Performance en Drupal 7Performance en Drupal 7
Performance en Drupal 7
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
 
Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009
 
11- Unidad 3: Webservices - 3.2 Uso de Web services (aplicaciones))
11- Unidad 3: Webservices - 3.2 Uso de Web services (aplicaciones)) 11- Unidad 3: Webservices - 3.2 Uso de Web services (aplicaciones))
11- Unidad 3: Webservices - 3.2 Uso de Web services (aplicaciones))
 
1 Diseño Web introducción a Drupal
1 Diseño Web   introducción a Drupal1 Diseño Web   introducción a Drupal
1 Diseño Web introducción a Drupal
 
Herramientas de visualización de datos
Herramientas de visualización de datosHerramientas de visualización de datos
Herramientas de visualización de datos
 
Marketing, Comunidad, Empleo y Negocio Internacional basado en Drupal
Marketing, Comunidad, Empleo y Negocio Internacional basado en DrupalMarketing, Comunidad, Empleo y Negocio Internacional basado en Drupal
Marketing, Comunidad, Empleo y Negocio Internacional basado en Drupal
 
Drupal 7 (2)
Drupal 7 (2)Drupal 7 (2)
Drupal 7 (2)
 
Presentación sgbd
Presentación sgbdPresentación sgbd
Presentación sgbd
 

Último

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 

Último (20)

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 

Construyendo proyectos escalables con Drupal

  • 1. Construyendo proyectos escalables con Drupal Pablo Cerda Director de desarrollo de ide up ! www.ideup.com Drupalcamp Spain 2010
  • 2.
  • 3.
  • 4. Cuidado con perder el control Drupalcamp Spain 2010 Es difícil ver el punto de ruptura entre una aplicación sostenible o no. El síntoma es que de pronto es muy costoso corregir errores o añadir funcionalidades.
  • 5.
  • 6.
  • 7.
  • 9.
  • 10.
  • 11.
  • 12. Arquitectura de servidores en lanetro Drupalcamp Spain 2010 LINUX (debian) bd Apache Solr LINUX (debian) Serv. App. Jetty búsqueda nagios cacti LINUX (debian) An álisis logs apache monitor MySQL RAID 0+1 PHP APPLICATION-CMS DRUPAL APACHE LINUX (debian) Memcached frontales
  • 13. El punto clave para escalar Drupal es la BD Drupalcamp Spain 2010 Por su estructura modular y de sobre escritura de funciones y consultas, Drupal no es muy amigable con los motores de base de datos. Cada m ódulo necesita realizar muchas consultas sobre las tablas base de Drupal (node, users, taxonomy, etc.) que resultan en una sobrecarga.
  • 14.
  • 15.
  • 16.
  • 17. Drupalcamp Spain 2010 http:// drupal.org/project/authcache
  • 18.
  • 19. Cache Browser, un navegador de cache Drupalcamp Spain 2010
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25. Una consulta SQL de muerte Drupalcamp Spain 2010 SELECT qc.enid AS ID_EVENTO, qc.snid AS ID_SITIO, ns.title AS NOMBRE_SITIO, ne.title AS TITULO_EVENTO, vote.value as RANKING, fes.fecha AS FECHA, IF(res.horario IS NULL OR TRIM(res.horario)='','--',res.horario) AS HORA, IF(res.precio IS NULL OR TRIM(res.precio)='','--',res.precio) AS PRECIO, IF(res.titular IS NULL OR TRIM(res.titular)='',ne.title, res.titular) AS TEXTO_EN_TITULO_DESPLEGABLE, IF(res.resumen_alternativo IS NULL OR TRIM(res.resumen_alternativo)='',ln_e.resumen, res.resumen_alternativo) AS COMENTARIO_EN_DESPLEGABLE, tde.name AS CATEGORIA_EVENTO FROM (&quot;. $lQueryCentral.$lJoins.$lWheres. &quot;) qc INNER JOIN {node} ns ON qc.snid = ns.nid INNER JOIN {node} ne ON qc.enid = ne.nid INNER JOIN {ln_evento} ln_e ON ne.vid = ln_e.vid INNER JOIN {term_node} tne ON ne.vid = tne.vid INNER JOIN {term_data} tde ON tne.tid = tde.tid INNER JOIN {ln_rel_evento_sitio} res ON qc.relES_id = res.id INNER JOIN {ln_fecha_evento_sitio} fes ON qc.relES_id = fes.relid LEFT JOIN {votingapi_cache} vote ON vote.content_type='node' AND function='average' AND vote.content_id=qc.enid WHERE fes.fecha >= %d AND fes.fecha <= %d AND tde.vid = %d
  • 26. Una consulta compleja pero razonada Drupalcamp Spain 2010 SELECT DISTINCT ncs.nid as id FROM {node_comment_statistics} ncs WHERE EXISTS ( SELECT res.enid FROM {ln_rel_evento_sitio} res, {term_node} tne, {leftandright} lre, {term_node} tns, {leftandright} lrs WHERE ncs.nid=res.enid AND res.enid=tne.nid AND res.snid=tns.nid AND tne.tid=lre.tid AND tns.tid=lrs.tid AND lre.vid = 22 AND lre.lft >= %d AND lre.rgt <= %d AND lrs.vid = 11 AND lrs.lft >= %d AND lrs.rgt <= %d ) ORDER BY ncs.comment_count DESC LIMIT 0,50
  • 27.
  • 28.
  • 29.
  • 30. Cacti: monitorizacion Mysql Drupalcamp Spain 2010
  • 31. Cacti: monitorizacion Apache Drupalcamp Spain 2010
  • 33.
  • 34.
  • 35. GRACIAS ¿Preguntas? Pablo Cerda Director de desarrollo de ide up ! www.ideup.com Drupalcamp Spain 2010 Art ículos que extienden lo que hemos visto: http://www.tratonera.com/?q=blog/3