Entonamiento de
aplicaciones Web
  (Enfasis en PHP)


            Rodolfo Campos
      Joincic, 26 de Mayo de 2012

              @camposer
  Presentación disponible en 21 RedES
Agenda
   La Web y PHP
   Problemas típicos
   Soluciones típicas
   ¿Con qué se come?
   Preguntas
La Web y PHP




         Cortesía de Delta PC
Problemas típicos
                        Posible solución
     Problema                                 Específica de PHP
                           específica
Lenguaje
                       APC                           Sí
interpretado
Demasiados accesos
                   Memcached                         No
a BBDD
Servidores de
aplicaciones           Varnish
                                                     No
ofreciendo             CDN
contenidos estáticos
Páginas (resultado
final HTML)            PageSpeed                     No
mejorables
                       Replicación activa o
Crecimiento limitado
                       pasiva                        No
de BBDD
                       NoSQL
Problemas típicos
                        Posible solución
     Problema                                 Específica de PHP
                           específica
Lenguaje
                       APC                           Sí
interpretado
Demasiados accesos
                   Memcached                         No
a BBDD
Servidores de
aplicaciones           Varnish
                                                     No
ofreciendo             CDN
contenidos estáticos
Páginas (resultado
final HTML)            PageSpeed                     No
mejorables
                       Replicación activa o
Crecimiento limitado
                       pasiva                        No
de BBDD
                       NoSQL
APC
   Según php.net: “La APC, o caché alternativa de 
    PHP (por sus siglas en inglés), es un código de 
    operación de caché libre y abierto para PHP. Su 
    objetivo es el de proporcionar un marco robusto, 
    libre y abierto para optimizar código de PHP 
    intermedio mediante el almacenamiento en 
    caché“
   Artículo en 21 RedES aquí.
Problemas típicos
                        Posible solución
     Problema                                 Específica de PHP
                           específica
Lenguaje
                       APC                           Sí
interpretado
Demasiados accesos
                   Memcached                         No
a BBDD
Servidores de
aplicaciones           Varnish
                                                     No
ofreciendo             CDN
contenidos estáticos
Páginas (resultado
final HTML)            PageSpeed                     No
mejorables
                       Replicación activa o
Crecimiento limitado
                       pasiva                        No
de BBDD
                       NoSQL
Memcached
   Según el sitio oficial es: “Un sistema distribuido de 
    cacheo de objetos en memoria, libre, de código abierto, 
    de alto rendimiento y de naturaleza genérica, pensado 
    para acelerar aplicaciones web dinámicas, aliviando la 
    carga en Bases de Datos (BBDD)”.
   Es un almacén en memoria de clave­valor (key­value) de 
    pequeños trozos de datos arbitrarios (cadenas de 
    caracteres, objetos) extraídos de BBDD, llamadas a API, 
    o fragmentos de páginas”
   Artículo en 21 RedES aquí.
Problemas típicos
                        Posible solución
     Problema                                 Específica de PHP
                           específica
Lenguaje
                       APC                           Sí
interpretado
Demasiados accesos
                   Memcached                         No
a BBDD
Servidores de
aplicaciones           Varnish
                                                     No
ofreciendo             CDN
contenidos estáticos
Páginas (resultado
final HTML)            PageSpeed                     No
mejorables
                       Replicación activa o
Crecimiento limitado
                       pasiva                        No
de BBDD
                       NoSQL
Varnish y CDN
   Según la documentación oficial de Varnish: “es 
    un acelerador de aplicaciones Web. Su misión es 
    colocarse enfrente de Servidores Web y cachear 
    su contenido”.
   Artículo de Varnish en 21 RedES aquí.
   Vale, no hablarás de CDN (Content Delivery 
    Network), pero dime al menos para qué sirve... 
    Wikipedia tiene un gráfico que nos viene como 
    anillo al dedo.
Problemas típicos
                        Posible solución
     Problema                                 Específica de PHP
                           específica
Lenguaje
                       APC                           Sí
interpretado
Demasiados accesos
                   Memcached                         No
a BBDD
Servidores de
aplicaciones           Varnish
                                                     No
ofreciendo             CDN
contenidos estáticos
Páginas (resultado
final HTML)            PageSpeed                     No
mejorables
                       Replicación activa o
Crecimiento limitado
                       pasiva                        No
de BBDD
                       NoSQL
PageSpeed
   Es un proyecto de Google con varios 
    componentes que buscan optimizar el 
    rendimiento de páginas Web.
   Yo voy a hablarles del módulo para Apache 
    HTTP Server, mod_pagespeed, que 
    automáticamente reescribe páginas y recursos 
    relacionados para mejorar su rendimiento.
   PageSpeed reescribe los recursos servidos por el 
    Apache siguiendo un conjunto de 
    buenas prácticas.
PageSpeed
   El conjunto de buenas prácticas buscan la: 
    optimización de cacheo, minimización de los 
    RTT (round­trip times), minimización de la 
    sobrecarga de peticiones, minimización del 
    tamaño de la carga útil del paquete (payload), 
    optimización de la representación (rendering) en 
    el navegador y optimización para móviles
   Artículo en 21 RedES aquí.
Problemas típicos
                        Posible solución
     Problema                               Específica de PHP
                           específica
Lenguaje
                       APC                         Sí
interpretado
Demasiados accesos
                   Memcached                       No
a BBDD
Servidores de
aplicaciones           Varnish
                                                   No
ofreciendo             CDN
contenidos estáticos
Páginas (resultado
final HTML)            PageSpeed                   No
mejorables
                       Replicación activa
Crecimiento limitado
                       o pasiva                    No
de BBDD
                       NoSQL
Replicación activa-pasiva y
          NoSQL
   Cuando no consigo imágenes que me convenzan 
    en Google, me toca hacer estos horribles 
    gráficos :­)
   Ejemplo replicación pasiva (maestro­>esclavo) 
    con MySQL en camposer­techie.
                          C: Create
                          R: Retrieve/Read
                          U: Update
    CRUD           CRUD   D: Delete          CUD          R

           CRUD                                    CUD



      Maestro-Maestro                         Maestro-Esclavo
         (activa)                                (pasiva)
Replicación activa-pasiva y
          NoSQL
   Vale la pena echarle un ojo a la solución Maestro­
    Maestro de Percona (MySQL ”envenenao”) 
    XtraDB.
   Y acerca de NoSQL, que no estaba en el 
    temario... Les dejo la definición de Martin 
    Fowler, no encuentro una mejor :­)
   ¿Not Only SQL o NO SQL? En todo caso, 
    almacenan objetos y la mayoría se valen de 
    operaciones MapReduce para procesar datos. 
    Súper útil en esquemas BigData.
Me perdí, ubicame en el mapa,
     dame un ejemplo...
                                  Podría ir a una CDN




                                      En este ejemplo son
                                      Servidores de Aplicaciones
                                      Java, pero si fuese PHP,
                                      Podríamos Instalar APC!!




        Cortesía de Letsgetdugg
Más ejemplos... ¿Con qué se
         come?
¡Muchas gracias
por su atención!


           Rodolfo Campos
     Joincic, 26 de Mayo de 2012

             @camposer
 Presentación disponible en 21 RedES

Entonamiento de aplicaciones Web (Enfasis en PHP)

  • 1.
    Entonamiento de aplicaciones Web (Enfasis en PHP) Rodolfo Campos Joincic, 26 de Mayo de 2012 @camposer Presentación disponible en 21 RedES
  • 2.
    Agenda  La Web y PHP  Problemas típicos  Soluciones típicas  ¿Con qué se come?  Preguntas
  • 3.
    La Web yPHP Cortesía de Delta PC
  • 4.
    Problemas típicos Posible solución Problema Específica de PHP específica Lenguaje APC Sí interpretado Demasiados accesos Memcached No a BBDD Servidores de aplicaciones Varnish No ofreciendo CDN contenidos estáticos Páginas (resultado final HTML) PageSpeed No mejorables Replicación activa o Crecimiento limitado pasiva No de BBDD NoSQL
  • 5.
    Problemas típicos Posible solución Problema Específica de PHP específica Lenguaje APC Sí interpretado Demasiados accesos Memcached No a BBDD Servidores de aplicaciones Varnish No ofreciendo CDN contenidos estáticos Páginas (resultado final HTML) PageSpeed No mejorables Replicación activa o Crecimiento limitado pasiva No de BBDD NoSQL
  • 6.
    APC  Según php.net: “La APC, o caché alternativa de  PHP (por sus siglas en inglés), es un código de  operación de caché libre y abierto para PHP. Su  objetivo es el de proporcionar un marco robusto,  libre y abierto para optimizar código de PHP  intermedio mediante el almacenamiento en  caché“  Artículo en 21 RedES aquí.
  • 7.
    Problemas típicos Posible solución Problema Específica de PHP específica Lenguaje APC Sí interpretado Demasiados accesos Memcached No a BBDD Servidores de aplicaciones Varnish No ofreciendo CDN contenidos estáticos Páginas (resultado final HTML) PageSpeed No mejorables Replicación activa o Crecimiento limitado pasiva No de BBDD NoSQL
  • 8.
    Memcached  Según el sitio oficial es: “Un sistema distribuido de  cacheo de objetos en memoria, libre, de código abierto,  de alto rendimiento y de naturaleza genérica, pensado  para acelerar aplicaciones web dinámicas, aliviando la  carga en Bases de Datos (BBDD)”.  Es un almacén en memoria de clave­valor (key­value) de  pequeños trozos de datos arbitrarios (cadenas de  caracteres, objetos) extraídos de BBDD, llamadas a API,  o fragmentos de páginas”  Artículo en 21 RedES aquí.
  • 9.
    Problemas típicos Posible solución Problema Específica de PHP específica Lenguaje APC Sí interpretado Demasiados accesos Memcached No a BBDD Servidores de aplicaciones Varnish No ofreciendo CDN contenidos estáticos Páginas (resultado final HTML) PageSpeed No mejorables Replicación activa o Crecimiento limitado pasiva No de BBDD NoSQL
  • 10.
    Varnish y CDN  Según la documentación oficial de Varnish: “es  un acelerador de aplicaciones Web. Su misión es  colocarse enfrente de Servidores Web y cachear  su contenido”.  Artículo de Varnish en 21 RedES aquí.  Vale, no hablarás de CDN (Content Delivery  Network), pero dime al menos para qué sirve...  Wikipedia tiene un gráfico que nos viene como  anillo al dedo.
  • 11.
    Problemas típicos Posible solución Problema Específica de PHP específica Lenguaje APC Sí interpretado Demasiados accesos Memcached No a BBDD Servidores de aplicaciones Varnish No ofreciendo CDN contenidos estáticos Páginas (resultado final HTML) PageSpeed No mejorables Replicación activa o Crecimiento limitado pasiva No de BBDD NoSQL
  • 12.
    PageSpeed  Es un proyecto de Google con varios  componentes que buscan optimizar el  rendimiento de páginas Web.  Yo voy a hablarles del módulo para Apache  HTTP Server, mod_pagespeed, que  automáticamente reescribe páginas y recursos  relacionados para mejorar su rendimiento.  PageSpeed reescribe los recursos servidos por el  Apache siguiendo un conjunto de  buenas prácticas.
  • 13.
    PageSpeed  El conjunto de buenas prácticas buscan la:  optimización de cacheo, minimización de los  RTT (round­trip times), minimización de la  sobrecarga de peticiones, minimización del  tamaño de la carga útil del paquete (payload),  optimización de la representación (rendering) en  el navegador y optimización para móviles  Artículo en 21 RedES aquí.
  • 14.
    Problemas típicos Posible solución Problema Específica de PHP específica Lenguaje APC Sí interpretado Demasiados accesos Memcached No a BBDD Servidores de aplicaciones Varnish No ofreciendo CDN contenidos estáticos Páginas (resultado final HTML) PageSpeed No mejorables Replicación activa Crecimiento limitado o pasiva No de BBDD NoSQL
  • 15.
    Replicación activa-pasiva y NoSQL  Cuando no consigo imágenes que me convenzan  en Google, me toca hacer estos horribles  gráficos :­)  Ejemplo replicación pasiva (maestro­>esclavo)  con MySQL en camposer­techie. C: Create R: Retrieve/Read U: Update CRUD CRUD D: Delete CUD R CRUD CUD Maestro-Maestro Maestro-Esclavo (activa) (pasiva)
  • 16.
    Replicación activa-pasiva y NoSQL  Vale la pena echarle un ojo a la solución Maestro­ Maestro de Percona (MySQL ”envenenao”)  XtraDB.  Y acerca de NoSQL, que no estaba en el  temario... Les dejo la definición de Martin  Fowler, no encuentro una mejor :­)  ¿Not Only SQL o NO SQL? En todo caso,  almacenan objetos y la mayoría se valen de  operaciones MapReduce para procesar datos.  Súper útil en esquemas BigData.
  • 17.
    Me perdí, ubicameen el mapa, dame un ejemplo... Podría ir a una CDN En este ejemplo son Servidores de Aplicaciones Java, pero si fuese PHP, Podríamos Instalar APC!! Cortesía de Letsgetdugg
  • 18.
  • 19.
    ¡Muchas gracias por suatención! Rodolfo Campos Joincic, 26 de Mayo de 2012 @camposer Presentación disponible en 21 RedES