fsl vallarta, mejorando el rendimiento de las aplicaciones web
DESCRIPTION
Tips de implementación de las mejores prácticas para desarrollar aplicaciones web de alto rendimientoTRANSCRIPT
![Page 1: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/1.jpg)
Mejorando el rendimiento de aplicaciones web
Edwin Cruz - Crowd Interactive@softr8
Festival Software Libre Vallarta 2012
Friday, November 2, 12
![Page 2: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/2.jpg)
Agenda
• Meta
• Personajes famosos
• Mejores Practicas
• Lidiando con la Red
• Lidiando con la aplicación
• backend
• frontend
• Servidor Web
• Servidor de base de datos
Friday, November 2, 12
![Page 3: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/3.jpg)
Agenda
• Meta
• Personajes famosos
• Mejores Practicas
• Lidiando con la Red
• Lidiando con la aplicación
• backend
• frontend
• Servidor Web
• Servidor de base de datos
Friday, November 2, 12
![Page 4: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/4.jpg)
Meta
Hacer que nuestra aplicación carge rápido desde la primera visita, o al menos hacer parecer que lo hace, lo principal es
la experiencia del usuario.
Friday, November 2, 12
![Page 5: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/5.jpg)
Agenda
• Meta
• Personajes famosos
• Mejores Practicas
• Lidiando con la Red
• Lidiando con la aplicación
• backend
• frontend
• Servidor Web
• Servidor de base de datos
Friday, November 2, 12
![Page 6: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/6.jpg)
"More bandwidth doesn't matter (much)"Mike Belshe, inventor of SPDY
Friday, November 2, 12
![Page 7: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/7.jpg)
Friday, November 2, 12
![Page 8: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/8.jpg)
"If we can't make the bits travel faster, then the only way to improve the situation is to
move the bits closer."Ilya Grigorik
Friday, November 2, 12
![Page 9: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/9.jpg)
http://www.businessinsider.com/the-future-of-mobile-deck-2012-3?op=1
Friday, November 2, 12
![Page 10: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/10.jpg)
"Cache is King"Steve Souders
Friday, November 2, 12
![Page 11: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/11.jpg)
http://www.pcworld.idg.com.au/speedtest/
Friday, November 2, 12
![Page 12: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/12.jpg)
Agenda
• Meta
• Personajes famosos
• Mejores Practicas
• Lidiando con la Red
• Lidiando con la aplicación
• backend
• frontend
• Servidor Web
• Servidor de base de datos
Friday, November 2, 12
![Page 13: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/13.jpg)
Mejores Prácticas
Steve Souders y un equipo de expertos trabajando en Yahoo identificaron/estandarizaron algunas mejores
prácticas para mejorar el rendimiento de aplicaciones web.
Friday, November 2, 12
![Page 14: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/14.jpg)
Mejores Prácticas
• Minimizar peticiones HTTP
• Usar un Content Delivery Network
• Cache Control Headers
• Gzip, comprimir los paquetes
• Incluir los archivos CSS al principio
Friday, November 2, 12
![Page 15: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/15.jpg)
Mejores Prácticas
• Incluir los scripts hasta el final
• Aprovechar el cache de los navegadores
• Hacer solo peticiones DNS muy necesarias
• Minimizar archivos JS y CSS
• Aprovechar E-Tags
Friday, November 2, 12
![Page 16: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/16.jpg)
Mejores Prácticas
• Ajax Cacheables
• Precarga de componentes
• Dividir los componentes en dominios diferentes
• Cookies pequeñas
• Optimizar Imágenes
Friday, November 2, 12
![Page 17: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/17.jpg)
Mejores Prácticas
Friday, November 2, 12
![Page 18: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/18.jpg)
Agenda
• Meta
• Personajes famosos
• Mejores Practicas
• Lidiando con la Red
• Lidiando con la aplicación
• backend
• frontend
• Servidor Web
• Servidor de base de datos
Friday, November 2, 12
![Page 19: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/19.jpg)
Lidiando con la Red
Servidor DNS
Friday, November 2, 12
![Page 20: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/20.jpg)
Lidiando con la Red
• Menos de 6 dominios diferentes
• Evitar hacer redirecciones
• 20-120 en resolver un dominio
• 1 segundo para re intentar, explorer 30
• TTL muy a futuro
Friday, November 2, 12
![Page 21: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/21.jpg)
Lidiando con la Red
Cookies
Friday, November 2, 12
![Page 22: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/22.jpg)
Lidiando con la Red
Friday, November 2, 12
![Page 23: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/23.jpg)
Lidiando con la Red
Friday, November 2, 12
![Page 24: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/24.jpg)
Lidiando con la Red
Imagenes, javascripts, stylesheets
Friday, November 2, 12
![Page 25: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/25.jpg)
Lidiando con la Red
Friday, November 2, 12
![Page 26: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/26.jpg)
Lidiando con la Red
Friday, November 2, 12
![Page 27: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/27.jpg)
Lidiando con la Red
CSS Sprites
Friday, November 2, 12
![Page 28: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/28.jpg)
Lidiando con la RedMinimizar scripts/css
Friday, November 2, 12
![Page 29: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/29.jpg)
Agenda
• Meta
• Personajes famosos
• Mejores Practicas
• Lidiando con la Red
• Lidiando con la aplicación
• backend
• frontend
• Servidor Web
• Servidor de base de datos
Friday, November 2, 12
![Page 30: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/30.jpg)
Backend, cache is king
Mandar a cache lo más posible para evitar costosas operaciones.
Friday, November 2, 12
![Page 31: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/31.jpg)
• product.product_images.count vs product.product_images_count
• select count(1) from product_images where product_id = 1
• select * from products where id = 1
Backend, Counter Caches
Friday, November 2, 12
![Page 32: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/32.jpg)
Backend, Counter Caches
• product.inventory_units.on_hand.count vs
• product.inventory_units_on_hand_count
Friday, November 2, 12
![Page 33: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/33.jpg)
Backend, Counter Cachesclass Product < ActiveRecord::Base has_many :inventory_units
def update_counter_cache inventory_units_on_hand_count = inventory_units.on_hand.count save endend
class InventoryUnit < ActiveRecord::Base after_save :update_counter_caches belongs_to :product
scope :on_hand, where(state: ‘on_hand’)
protected def update_counter_caches product.update_counter_cache endend
Friday, November 2, 12
![Page 34: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/34.jpg)
Backend - Busquedas
Usen tecnología diseñada para búsquedas en texto
Friday, November 2, 12
![Page 35: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/35.jpg)
Backend - Solr
• Usar solr para hacer busquedas de texto y filtrado de resultados
• extremadamente poderoso y rápido
Friday, November 2, 12
![Page 36: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/36.jpg)
Backend - Solr
>> Benchmark.ms { Product.where('name like ?', '%Army%') }=> 337.901361>> Benchmark.ms { Product.search { keywords 'Army' } }=> 119.201331
Friday, November 2, 12
![Page 37: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/37.jpg)
Backend - Cache is king
Cacheen todas las operaciones costosasvistas, queries, llamadas API’s, contadores, etc!
Friday, November 2, 12
![Page 38: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/38.jpg)
Backend - Cache is king
Friday, November 2, 12
![Page 39: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/39.jpg)
Benchmark.ms do Super.cache.fetch('count', :expires_in => 1.minute) do Product.all(:conditions => ['name like ?', '%Army%']).count endend=> 336.477508
Benchmark.ms do Super.cache.fetch('count', :expires_in => 1.minute) do Product.all(:conditions => ['name like ?', '%Army%']).count endend=> 0.461155
Backend-Fragment Cache
Friday, November 2, 12
![Page 40: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/40.jpg)
Backend - Super Cachemodule Super class Cache def self.fetch(key, options, &block) if content = Memcached.get(key) content else content = yield() Memcached.add(key, content, options[:expires_in] ) content end end def exist?(key) !Memcached.get(key).blank? end endend
Friday, November 2, 12
![Page 41: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/41.jpg)
Backend - Trabajar Inteligente
Hagan uso de queues(colas)
Friday, November 2, 12
![Page 42: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/42.jpg)
Backend - Asynchronously
• Manden todo lo no necesario a background
• Envio emails
• Activaciones
• Procesamiento imagenes
• Tareas recurrentes
• Notificaciones a otros servicios
Friday, November 2, 12
![Page 43: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/43.jpg)
Backend - CDN
Configuren su aplicación para tomar ventaja de un CDN
Friday, November 2, 12
![Page 44: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/44.jpg)
Backend - CDN
Mal:asset_host = “www.superdominio.mx”
Friday, November 2, 12
![Page 45: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/45.jpg)
Backend - CDN
Bien:id = rand(4)asset_host = “http://assets#{id}.superdominio.mx”
Friday, November 2, 12
![Page 46: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/46.jpg)
Backend - CDN
Friday, November 2, 12
![Page 47: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/47.jpg)
Backend - CDN
Mucho Mejor:id = nombre_imagen.to_s.to_i%4asset_host = “http://assets#{id}.superdominio.mx”
Friday, November 2, 12
![Page 48: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/48.jpg)
Backend
Service Oriented Design
Friday, November 2, 12
![Page 49: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/49.jpg)
Backend - SOD
Friday, November 2, 12
![Page 50: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/50.jpg)
Backend - SOD
• Peticiones en paralelo
• Multiples aplicaciones que sirven servicios
• pequeñas
• desarrollo rápido(pruebas rapidas)
• HTTP Cache
• Tolerante a Fallos
Friday, November 2, 12
![Page 51: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/51.jpg)
Backend
Midan, Registren, Sigan TODO
Friday, November 2, 12
![Page 52: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/52.jpg)
Backend - Midiendo
Friday, November 2, 12
![Page 53: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/53.jpg)
Backend - Midiendo
Friday, November 2, 12
![Page 54: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/54.jpg)
Backend - Midiendo
Friday, November 2, 12
![Page 55: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/55.jpg)
Backend - Midiendo
Friday, November 2, 12
![Page 56: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/56.jpg)
Agenda
• Meta
• Personajes famosos
• Mejores Practicas
• Lidiando con la Red
• Lidiando con la aplicación
• backend
• frontend
• Servidor Web
• Servidor de base de datos
Friday, November 2, 12
![Page 57: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/57.jpg)
Frontend - CachingFull Page Caching + Personalization
Friday, November 2, 12
![Page 58: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/58.jpg)
Frontend - Preloading
• Incondicional
• Condicional
• Anticipado
Friday, November 2, 12
![Page 59: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/59.jpg)
Frontend - Asynchronously
var se = $.create(“<script>”, {“src”: "http://cdn0.super-cdn.com/scripts/a.js"} );$('head')[0].appendChild(se);
Friday, November 2, 12
![Page 60: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/60.jpg)
Frontend - Lazy Load
Cargar solo lo necesario, descagando recursos ‘on demand’
Friday, November 2, 12
![Page 61: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/61.jpg)
Frontend - Lazy LoadjQuery Lazy Load
Friday, November 2, 12
![Page 62: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/62.jpg)
Frontend
La página principal tiene que ser la página más rápida
Friday, November 2, 12
![Page 63: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/63.jpg)
Frontend - Homepage
• Codigo HTML minimo necesario, incluyendo css’s y javascripts
• Preloading de estáticos
• Javascripts
• CSS
• Resolver nombres
Friday, November 2, 12
![Page 64: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/64.jpg)
Frontend - Push+Ajax
• Descargar estaticos una sola vez
• Reemplazar el contenido del contenedor con ajax
• Elimina descargas de estaticos
• No obstrusivo
Friday, November 2, 12
![Page 65: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/65.jpg)
Frontend - Push+Ajax
Friday, November 2, 12
![Page 66: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/66.jpg)
Frontend - Skeleton• Head
• title
• javascript top.js
• stylesheet app.css
• Body
• container
• javascripts bottom.js
Friday, November 2, 12
![Page 67: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/67.jpg)
Frontend - Sprites
Friday, November 2, 12
![Page 68: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/68.jpg)
Frontend - SpritesCompass
Friday, November 2, 12
![Page 69: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/69.jpg)
Frontend
Imágenes
Friday, November 2, 12
![Page 70: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/70.jpg)
Frontend - Imagenes
• Nunca redimensionar con html
• Especificar el tamaño con codigo html
• Formatos correctos
• PNG
• JPEG
• MultiRes
• jQuery lazy load
Friday, November 2, 12
![Page 71: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/71.jpg)
Frontend - Javascripts
• Combinar archivos
• Eliminar duplicidades
• Lazy loading: modernizr.load, require.js
• minimizar recursos
• un solo archivo con todo
• JSMin, YUI Compressor
Friday, November 2, 12
![Page 72: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/72.jpg)
Backend/Frontend
• Templating
• backend
• frontend
• hybrid (condicional)
Friday, November 2, 12
![Page 73: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/73.jpg)
Frontend - Mejoras
• Entender el funcionamiento de
• HTML Parser
• HTML Renderer
• Bloqueos
• Re-Rendering
Friday, November 2, 12
![Page 74: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/74.jpg)
Agenda
• Meta
• Personajes famosos
• Mejores Practicas
• Lidiando con la Red
• Lidiando con la aplicación
• backend
• frontend
• Servidor Web
• Servidor de base de datos
Friday, November 2, 12
![Page 75: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/75.jpg)
Servidor Web
• Expiration Header
• ‘never expire’ para imagenes
• ‘Expire after’ para javascripts y css’s
• gzip
Friday, November 2, 12
![Page 76: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/76.jpg)
Servidor Web
• Gzip
• Javascripts
• Stylesheets
• HTML
• JSON
• NUNCA! imagenes o binarios
Friday, November 2, 12
![Page 77: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/77.jpg)
Servidor WebSSL, una pesadilla
Friday, November 2, 12
![Page 78: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/78.jpg)
Servidor WebSSL, su peor pesadilla
SSL Cypherwww.google.com: RC4-SHA, key size 1024www.facebook.com: RC4-SHA, key size 1024www.linkedin.com: RC4-MD5, key size 2048www.twitter.com: RC4-SHA, key size 2048
Nosotros:DHE-RSA-AES256-SHA: key size 2048 <= FAIL, llegamos a limite
Friday, November 2, 12
![Page 79: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/79.jpg)
Servidor webLogeen Todo y haganlo “grep’eable”!
174.254.55.34 - - [31/Oct/2012:23:17:27 +0000] GET /stylesheets/compiled/mobile.css?1351550028 HTTP/1.1 "200" 21218 "https://www.dominio.com/customers/accounts" "www.dominio.com" "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25" "4.84" "-" upstream_addr - upstream_response_time - request_time 0.333 - aabcdsd4335f4f46117.120.16.138 - - [31/Oct/2012:23:17:27 +0000] GET /help/my-measurements-faq HTTP/1.0 "200" 51489 "http://www.dominio.com/help/fit-and-form-details" "www.dominio.com" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1)" "-" "203.144.29.5, 10.37.58.201" upstream_addr 127.0.0.1:8100 upstream_response_time 0.356 request_time 0.356 - aabcdsd4335f4f46
log_format main '$remote_addr - $remote_user [$time_local] $request ' '"$status" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$gzip_ratio" ' '"$http_x_forwarded_for"' 'upstream_addr $upstream_addr ' 'upstream_response_time $upstream_response_time ' 'request_time $request_time $cookie_Domain_Session';
Friday, November 2, 12
![Page 80: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/80.jpg)
Agenda
• Meta
• Personajes famosos
• Mejores Practicas
• Lidiando con la Red
• Lidiando con la aplicación
• backend
• frontend
• Servidor Web
• Servidor de base de datos
Friday, November 2, 12
![Page 81: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/81.jpg)
Base de Datos
Multiples Particiones
Friday, November 2, 12
![Page 82: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/82.jpg)
Base de Datos
• MySQL? Percona binaries
Friday, November 2, 12
![Page 83: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/83.jpg)
Base de Datos
Tablas Temporales... cuidado!
tmp_table_size
Friday, November 2, 12
![Page 84: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/84.jpg)
Base de Datos
mysql_query_cache, del demonio?
Usen otro cache en frente de mysql
Friday, November 2, 12
![Page 85: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/85.jpg)
Base de Datos
innodb_buffer_pool_sizeEl más importante, generalmente va al 70% del total de la
memoria
Friday, November 2, 12
![Page 86: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/86.jpg)
Base de Datos
innodb_thread_concurrency
numero de cores * 2
Friday, November 2, 12
![Page 87: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/87.jpg)
Base de Datos
Indices, evitar índices duplicados
mysql_slow_query_log
Friday, November 2, 12
![Page 88: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/88.jpg)
Base de Datos
Cuiden los UPDATES
Nadie pone atención en ellos, pero son los principales causantes de bloqueo de tablas
Friday, November 2, 12
![Page 89: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/89.jpg)
Base de Datos
• Migraciones
• Agregar Columna
• Remover Columna
• Agregar Tabla
• Remover Tabla
Friday, November 2, 12
![Page 90: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/90.jpg)
Parte Humana
• Siempre midan los cambios
• Paranoia es una cualidad muy codiciada
• Aprendan a manejar el pánico
• No tengan miedo de mandar cambios
• Siempre, siempre tengan un plan de respaldo
Friday, November 2, 12
![Page 91: FSL Vallarta, mejorando el rendimiento de las aplicaciones web](https://reader034.vdocuments.site/reader034/viewer/2022042816/558b0bddd8b42ae4758b4715/html5/thumbnails/91.jpg)
Gracias!
Preguntas?
Edwin Cruz - Crowd Interactive@softr8
Friday, November 2, 12