The Terra Project
El principal motivo por el que este blog ha estado tan calladito en los últimos meses, es el proyecto en el que he estado inmerso desde Octubre de 2007.
Esta semana el proyecto ha visto la luz: https://noticias.terra.es , ha sido un largo camino, y todavía quedan muchas cosas por hacer, pero ya hemos dado el primer paso: “estar en el aire”.
Aunque a primera vista no parezca muy novedosa, ni siquiera muy complicada de hacer, (por lo que 20 meses es a todas luces un tiempo excesivo), el principal reto se podría titular como:
“Desarrollar un sitio web basado en Sharepoint 2007 que permita gestionar millones de páginas por un equipo de decenas de redactores, para dar servicio a millones de usuarios”.
Para conseguir este objetivo se han tomado muchas decisiones para adaptarse a los requisitos de MOSS, las más importantes han sido:
Taxonomía
En base a los estudios de capacidad de almacenamiento, se ha determinado que una base de datos de contenido por año no se superará el límite recomendado de 80G.
Dentro de cada base de datos de contenido, se ha creado una jerarquía de sub-sitios en base a las secciones, meses y días, de forma que no se almacenen en ningún caso más de 1500 páginas por sitio.
Con todo, las URL resultantes son del tipo:
/genteycultura/2009/0503/actualidad/lenny-kravitz-consigue-que-5500-personas-se-entreguen-a-sus-ritmos-roqueros.aspx |
Almacenes de información alternativos
Además de la información gestionada por el equipo de redacción, es necesario considerar la información generada por los usuarios (UGC). En las primeras versiones de la arquitectura, esta información la almacenábamos en listas de MOSS, sin embargo esta aproximación no cubría las exigencias de rendimiento a gran escala.
Finalmente, el sistema cuenta con bases de datos de apoyo para almacenar la información generada por los usuarios.
Abstracción del código de acceso a datos
El sistema de publicación de MOSS permite la creación de plantillas (layouts), que son fácilmente personalizables usando las herramientas estándar que ofrece el producto como el “Content Editor Web Part”, sin embargo la forma de obtener el contenido en base a sentencias CAML sobre la taxonomia descrita, no permite satisfacer los requisitos de un periódico (no se pueden hacer consultas sobre varias bases de datos de contenido, y las consultas sobre jerarquias son muy lentas desde el punto de vista de rendimiento).
Por estos motivos, se decidió crear una capa de acceso a datos, que permitiese abstraer los detalles de la taxonomía y UGC de los controles visuales (webparts).
Una vez que se implementó el sistema sobre estos principios tuvimos que esperar algunos parches de producto para ajustar el rendimiento del buscador a los requisitos deseados, así como acometer algunos desarrollos personalizados para cubrir las expectativas de los redactores. Y finalmente lo tienen disponible en noticias.terra.es
Comments
Anonymous
May 03, 2009
PingBack from http://www.anith.com/?p=34569Anonymous
May 03, 2009
Ha costado parirlo, y ha costado mucho dolor y sufrimiento, pero también ha sido en muchos sentidos uno de los mejores proyectos en los que he trabajado. Fundamentalmente por el equipo. EnhorabuenaAnonymous
May 06, 2009
Muy interesante... y muchas ganas de conocer mas detalles. Si tienes ganas y es factible (quizas haya acuerdos que no permitan divulgar en exceso) te animo a seguir posteando un poco mas en profundidad. Que envidia, como me gustaria que en mi empresa tuviesemos proyectos de ese calibre... creo estar preparado, ¿lo estara mi empresa?