Slideshare.net (beta)

 
Post: 
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 0 (more)

LaCoctelera.com y The Shaker - Conferencia Rails Hispana 2006

From furilo, 1 year ago

Presentacin sobre LaCoctelera.com y The Shaker en la Conferencia more

1463 views  |  0 comments  |  0 favorites  |  2 embeds (Stats)
 

Groups/Events

Not added to any group/event

 
 

Privacy InfoNew!

This slideshow is Public

 
Embed in your blog
Embed (wordpress.com)

Slideshow Statistics
Total Views: 1463
on Slideshare: 1409
from embeds: 54* * Views from embeds since 21 Aug, 07

Slideshow transcript

Slide 1: lacoctelera.com y The Shaker Conferencia Rails Hispana Fernando García y Álvaro Ortiz noviembre 2006 1

Slide 2: 2

Slide 3: php mysql xhtml css estándares web rdf sindicación … 3

Slide 4: 4

Slide 5: ¿qué es lacoctelera.com? servidor de blogs para personas normales que se ha convertido en una gran comunidad 5

Slide 6: páginas vistas situación actual Fuente: Nielsen Net-ratings lacoctelera.com 45.000 cuentas creadas 350.000 posts 900.000 comentarios 35.000 amigos 6

Slide 7: the shaker aplicación extraida del desarrollo de lacoctelera.com herramienta de gestión de comunidad y gestión de contenidos blogs, fotologs, medialogs, portadas temáticas, directorio, grupos, tags… 7

Slide 8: … 8

Slide 9: + … + 1.000.000 de peticiones Rails al día 175GB de transferencia diaria 8 servidores 9

Slide 10: internet peticiones peticiones estáticas (ficheros y caché) dinámicas lighttpd servidores web • 2 servidores web ficheros (imágenes, documentos, caché) • Balanceo de carga de servidor web con Pound • compartidos por NFS • Redundancia mediante VRRP • replicados • Escalabilidad horizontal Balanceo de carga a servidores de aplicaciones con Lighttpd ruby on rails servidores • 4 servidores de aplicaciones • FastCGIs aplicaciones • Antivirus: Kaspersky Balanceo de carga a servidores de BBDD con Rails mysql BBDD • MyISAM • 2 servidores de BBDD • Replicación de BDs Maestro-Esclavo • La carga de las lecturas se balancea entre múltiples esclavos batch • 1 servidor • Copias de seguridad • Conversión de videos • Correo • Generación estadísticas • Memcache 10

Slide 11: the shaker sistemas  Debian Sarge  Servidores Dell 1850/1950  Dual Xeon / Dual Core  Ruby 1.8.4  App/Web: 2GB RAM  BD: 10GB / 4GB RAM  Rails 1.1.6  HD: RAID1  Lighttpd 1.4.10  Red privada 1GB  MySQL 5.0.18  Memcache  FastCGI  Pound  NTP, NFS, SNMP, VRRP, Ffmpeg … 11

Slide 12: the shaker caché  comenzamos construyendo la nuestra cuando la de Rails apenas estaba desarrollada, estamos cambiando a la de Rails  rutas, ajax cuando todavía no se llamaba ajax…), analisis de logs, RAILS_ROOT, tareas en background, internacionalización, etc…  en lacoctelera.com muchas páginas tienen algo no cacheable  si el usuario está loggeado:  el lighttpd sirve la página estática, y con Ajax rellenamos el contenido no cacheable (petición mucho más ligera que un dispatch sirviendo una página entera, aunque sea de caché)  si no está loggeado:  el lighttpd sirve la página, no interviene Rails en absoluto  cachear también en el back – una de las páginas más vistas de lacoctelera.com es la página de publicar historia, y no la teníamos cacheada 12

Slide 13: the shaker internacionalización  varios niveles de internacionalización:  soporte unicode  ruby y el soporte de unicode: no hasta el año que viene  se va a incluir soporte unicode en rails 1.2 (anunciado ayer)  cadenas de la aplicación – resuelto! (lang.yml, no necesitamos más)  contenido:  depende de la aplicación que necesites desarrollar – lógica de negocio 100%  en nuestro caso, no tiene sentido que un usuario tenga un blog multilenguaje (aunque puede escribir en el idioma que quiera – gracias UTF-8 y los estándares web)  gestor de contenido multilenguaje: AI, workflow de traducción… (sería como pedir un gestor de encuestas en el core de rails)  la internacionalización la tiene que trabajar quien la comunidad que la necesite 13

Slide 14: the shaker redundancia y replicación  servidores web: 2; balanceo con Pound; VRRP para redundancia  instancias específicas del servidor web según tarea: estáticos, dinámicos  servidores de aplicación: balanceo con Lighttpd  añadir nuevos web y app es trivial  hemos hecho nuestros propios paquetes con todo lo necesario para montar un web o app  ficheros de usuario: compartidos por NFS (y replicados)  BBDD  lacoctelera.com  1 maestro (R/W) y 1 esclavo (R)  balanceo de lecturas entre ambos maestro  resto de sites  1 maestro (R/W) y 1 esclavo (R)  balanceo de lecturas entre ambos  siguientes pasos: esclavo 1 esclavo 2 esclavo … n  mysql cluster  separar tablas en hosts  segmentar usuarios por hosts 14

Slide 15: the shaker monitorización  scripts caseros: check_tolai, kill_gumias  errores de rails -> email  daemon tools (monitorización interna)  nagios (monitorización externa)  monitorización de site:  DB_read  DB_write  dinamic  index  static  monitorización de host:  CPU  Carga  DISK  PING  SMTP  warning -> email  critical -> sms  guardias 24/7  kit B12: portatil + movil 3G 15

Slide 16: the shaker logs 23/11/2006  servidor web + pound > awstats  logs de aplicación > awk  MySQL:  desarrollo: análisis de consultas pesadas de MySQL  producción: SHOW FULL PROCESSLIST  lastmin: peticiones/carga CPU  huellas de Nielsen y Google Analytics 16

Slide 17: the shaker control de versiones y entregas  repositorio SVN  en el servidor de desarrollo de la oficina  mirror de SVN en producción  deploy: oficina -> mirror producción -> despligue a todos los servidores  migrations  capistrano  control de versiones de la estructura de la BD  roles primarios:  integradas en los deploys  web  app  tests / baterias de pruebas  db (maestro, esclavo)  roles secundarios:  ejecutados en el deploy; rollbacks  mirror  por servidor  shared  batch  configuración de máquinas en el repositorio  tareas:  despliegue con el capistrano de la configuración  setup  deploy  web_deploy  destroy_cache… 17

Slide 18: the shaker problemas y dificultades  no estamos cómodos con los FastCGIs – son inestables, consumen mucho  valorando alternativas: mongrels, nginx  ataques de spam: usuarios y comentarios  medidas progresivas: javascript en cliente  solución definitiva: webservice antispam – filtro bayesiano  +30% de comentarios son spam  no hay mal que por bien no venga  el servicio se puede acoplar de forma muy sencilla a otros servicios  SPF – puntos de fallo únicos  los hemos ido superando todos (web, ficheros, app, bbdd)  nos queda uno: múltiples centros de datos  Testing – no tiene sentido desarrollar sin tests  una plataforma tan grande hay que estar manteniéndola de forma regular; gastas mucho tiempo, y eso es un problema si lo que te gusta es programar 18

Slide 19: the shaker hasta dónde hemos llegado  empezamos desde el día 0 con un producto nuevo, desconocido para nosotros (¡y para cualquiera!)  hemos sabido crecer  disfrutamos con Ruby, Rails y con nuestro producto  estamos convencidos de nuestra apuesta (… y esto no ha hecho más que empezar) 19

Slide 20: 20

Slide 21: 21

Slide 22: c/ Salamanca, 17 Madrid – 28020 España tel. +34 91 567 0605 www.the-cocktail.com 22