Pero el reto no solo era el hardware. Para poder compilar el código fuente del servidor web (el original, creado en el CERN) tuve que compilar antes el compilador de GCC (usando el compilador nativo de C) y modificar el fichero de configuración del loader para que funcionasen los ejecutables generados por el GCC, porque contenían secciones adicionales a las generadas por el compilador nativo: sin esos cambios, el sistema operativo no sabía utilizar los ejecutables generados por GCC.
Tenía claro que de la parte técnica me podía ocupar yo, pero si quería publicar noticias a diario era evidente que iba a ser necesario tener apoyo en la tarea que requería más esfuerzo cada día: la de escribir el resumen de noticias. Se lo propuse a mi hermana Marta, y ella aceptó encantada. Le construí un atril grande de madera, para que pudiera tener abierto el periódico mientras iba pasando páginas y eligiendo las noticias que le parecieran más relevantes, para escribir —al menos— el titular. Y si ella consideraba que una noticia merecía más detalles, se podía dar información adicional (un fragmento del subtítulo o del cuerpo de la noticia). Marta solía tener ya terminado el resumen cuando yo volvía a casa a la hora de comer. Lo copiaba en un disquete y me lo llevaba por la tarde a la Escuela, para publicar las noticias en la web y distribuirlas entre los suscritos a nuestras listas de correo, que se gestionaban mediante el programa Majordomo.
Inicialmente empezamos creando una página para las noticias de cada semana, pero tras el primer mes cambiamos a utilizar una página separada para las noticias de cada día. Mediante unos scripts en Perl generaba los ficheros, a modo de plantilla, con enlaces a la página del día anterior y del día siguiente. Al cabo de unos meses, con la idea de reducir el trabajo que implicaba hacer un resumen a mano, fui hasta el periódico El Comercio para presentarles mi idea: si conseguíamos los textos publicados por El Comercio podríamos hacer menos trabajo manual y tener noticias completas, no solo los titulares.
Conseguí que me dieran acceso a los teletipos de agencia de Asturias y de España, que se empezaron a publicar en abril de 1995. Por la noche, iba al periódico en bicicleta y allí copiaba las noticias en un disquete de 1,44 MB. La mañana siguiente, cuando volvía a la Escuela, las copiaba en el ordenador en el que se ejecutaba el servidor web y usando unos scripts en Perl convertía los teletipos a código HTML y los publicaba en la web y en el grupo de noticias.
Ni estando implicado en la publicación de las noticias de El Comercio se me había pasado por la cabeza trabajar en un periódico. Pero en el año 2000 se dio una casualidad más de las que han guiado mi vida: la competencia por el liderazgo en la web que había entre los periódicos El Mundo y El País hizo que el grupo Prisa contratara a Mario Tascón (responsable de las webs del primero) y a casi todo su equipo técnico.
El hueco dejado por Tascón fue cubierto por Gumersindo Lafuente, que acabó contratando —como director técnico— a Raúl Rivero, que por aquel entonces trabajaba en la Universidad de Oviedo. Y eso propició la siguiente casualidad: que Raúl me llamase para que fuese a Madrid como parte del equipo técnico de la web de El Mundo.
La infraestructura que nos encontramos era:
- un ordenador gordo de DEC para servir el portal elmundo.es
- un conjunto de racks con servidores para los portales verticales (elmundolibro, elmundovino, elmundosalud, elmundodeportes, elumundomotor, elmundoviajes)
En aquel momento el sistema de contenidos de la web (lo que habitualmente en el gremio llaman CMS y que en nuestro equipo siempre hemos denominado “editores”) se ejecutaba en el mismo servidor físico que servía los contenidos hacia el exterior, por lo que cuando el servidor web una «avalancha» de peticiones de los usuarios, la alta carga generada por esas peticiones impedía que los redactores pudieran actualizar los contenidos en la web. Recuerdo haber solucionado algunas veces ese problema de actualización ejecutando el comando
cat /dev/null > index.html
para dejar vacía la página de inicio del periódico, con lo que las conexiones que estaban establecidas entre el servidor web y los navegadores de los lectores se liberaban casi instantáneamente, y el cierre de conexiones disminuía la carga en el servidor durante unos segundos. Esos segundos eran el margen que tenían los redactores para pulsar el botón y actualizar la portada o una noticia.
Para solucionar esos problemas, Raúl decidió que era imprescindible un cambio en la infraestructura que sostenía la web. El plan era utilizar:
- almacenamiento tipo NAS de NetApp
- balanceador web de Alteon
- frontales web con Linux
La NAS de NetApp tenían soporte para guardar imágenes del estado del sistema de ficheros en un determinado momento (la denominación en inglés es snapshot), lo que permitía tener acceso rápido versiones anteriores de un fichero o una restauración rápida del estado completo del sistema en un momento determinado, lo que nos sacó de más de un problema.
Los frontales web montaban el NAS mediante NFS. Los que se utilizaron en la nueva arquitectura eran PCs de sobremesa «baratos», sin monitor, y con sistema operativo Linux. En vez de usar los típicos armarios para ordenadores o racks, los PCs estaban colocados en estanterías industriales de metal y madera fabricadas por una empresa asturiana (Esmena), que eran bastante más baratas. En algo se tenía que notar que el núcleo duro del equipo técnico fuese más asturiano que la fabada.
|
Esos ordenadores tenían en su disco local únicamente lo que era imprescindible para arrancar, y el resto de lo que necesitaban (ejecutables, configuraciones, contenidos…) lo cargaban desde la NAS. Las peticiones web llegaban al balanceador Alteon, que pasaba las peticiones a los frontales web, estos resolvían la petición y la respuesta HTML pasaba por el balanceador hasta llegar al navegador del lector.
Antes de que tuviéramos tiempo de tener instalada la nueva arquitectura, el ritmo creciente de peticiones recibidas hizo imprescindible aumentar la cantidad de memoria RAM del ordenador DEC que servía la web del periódico, lo que supuso un desembolso GORDO de dinero.
Este tipo de inconveniente fue un punto más a favor de la arquitectura elegida por Raul, que se acuerda de que nos miraban raro por usar muchos servidores pequeños en vez de pocos servidores grandes. Al menos, hasta que Google explicó cómo su arquitectura —a otra escala, claro— usaba un modelo similar.
El lenguaje principal que usaban las webs de El Mundo cuando nos hicimos cargo era PHP, y fue el que seguimos usando, aunque también utilizamos Perl en algunas partes. Por aquel entonces solo usábamos Apache como servidor web.
El servidor de publicidad (Agilbanner) usado inicialmente fue un desarrollo interno, también hecho en PHP. En momentos de alta carga no se podía poner publicidad en todas las páginas, porque eso atascaba el servidor web. Para solventarlo, teníamos que editar, sobre la marcha, uno de los ficheros del código fuente, y poner un número (entre 0 y 1) menor que el que estuviese activo en ese momento. Ese número era la proporción de páginas en las que se mostraba publicidad, siendo 1 el valor que mostraba el 100% de banners solicitados. Así, cuando había un atasco gordo en el servidor, podíamos tener que poner un cero para que no se sirviese publicidad en ninguna de las páginas.
Posteriormente se desarrolló una versión en Perl, luego otra en mod_perl y finalmente una en lenguaje C++, mucho más eficiente que las versiones anteriores. Esa última versión se siguió utilizando en Unidad Editorial durante bastantes años (hasta 2015), tanto para servir publicidad en sus medios propios (El Mundo, Marca, …) como en otros medios. Creo recordar que entonces la mayoría de las webs utilizaban el servicio de banners de DoubleClick, que posteriormente fue adquirida por Google.
Que usáramos nuestro propio servidor de publicidad era algo atípico, aunque eso nos permitía regalar banners a coste despreciable (si tu servicio era DoubleClick, aunque los regalaras, tenías que pagar el coste). Por otra parte, las adaptaciones necesarias para servir cualquier tipo de publicidad las podíamos ejecutar sin problemas, porque podríamos modificar lo que hiciese falta en nuestro sistema.
Un momento que recuerdo especialmente fue el atentado del 11-S de 2001, que generó un montón de peticiones en los servidores web. Para soportarlas, hubo que hacer adaptaciones sobre la marcha: crear una nueva sección en el editor de contenidos que generase una portada mínima, únicamente con la información más relevante en ese momento. Reducir su tamaño fue imprescindible, para poder atender todas las peticiones que llegaban.
En mayo de 2007, unos meses después de la salida de Gumersindo Lafuente de El Mundo, algunos le seguimos para formar el equipo técnico de soitu.es, un medio digital nativo que salió a la red poco tiempo antes de la Nochevieja de ese mismo año.
En Soitu, además del servidor Apache, los frontales usaban un servidor NGINX por delante del Apache. De esa forma, las peticiones de ficheros estáticos (ficheros CSS, GIF, JPEG, vídeos...) las podía resolver directamente el NGINX y las peticiones a las páginas dinámicas (en PHP o Perl) sí llegaban hasta el Apache, que resolvía la petición y le devolvía el código HTML al NGINX.
Raúl programó varios módulos en C para el NGINX, que podían modificar el HTML de varias formas, como para eliminar espacios o para reescribir las URLs. Esa reescritura del HTML permitía, por ejemplo, que las peticiones de contenidos estáticos se pudieran hacer a URL con nombres de dominios específicos, como los del conjunto de cachés propio que teníamos conectadas en las infraestructuras de Interoute, uno de nuestros proveedores de conectividad.
Otra ventaja importante de usar un NGINX por delante de Apache es que evitabas que muchas de las peticiones (las de contenido estático) tuvieran que ser atendidas por procesos de Apache que consumían más recursos que los que necesitaba el NGINX para realizar la misma tarea. De esa forma, solo llegaban a Apache las peticiones que realmente lo requerían.
Soitu, en sus dos años de vida, ganó las dos primeras ediciones de los premios organizados por la ONA (Online News Association, la principal organización del mundo de medios en internet). Y, pocos días después de ganarlo por segunda vez, Soitu cerró.
Javier Moreno, director de El País, hizo las gestiones para que Gumersindo Lafuente, Borja Echevarría y el equipo técnico de Soitu pasáramos a ser parte de la plantilla del periódico. La plataforma tecnológica también fue adquirida por El País (tanto el hardware como el software) y sirvió de punto de partida de los desarrollos que se hicieron posteriormente para dar servicio a su web. Como el volumen de páginas servido por El País era bastante superior al servido por Soitu, fue necesario adquirir nuevos servidores. Alrededor de 130, con características distintas en función de si eran para frontales, bases de datos, buscadores, cortafuegos, etc.
Durante varios años fue una de las principales plataformas que se usaron en Prisa, pero en 2018 se empezó a pensar en un cambio del gestor de contenidos, evaluando múltiples sistemas editoriales de otras empresas, que vinieron a explicarnos las características de sus productos, y que se analizaron desde los puntos de vista de los equipos técnicos, de las Redacciones y de los responsables de producto.
Después de varios meses y decenas de pruebas de concepto, el elegido fue ARC, un sistema editorial con ciertas funcionalidades en común con el usado por el Washington Post.
Esa decisión de negocio implicó un cambio en el lenguaje en que se elaboraban los desarrollos, pasando a usar NodeJS. También, pasar de servir los contenidos desde servidores propios a depender de servicios en la nube (AWS).
ARC daba solución a la parte de gestión de contenidos para noticias, pero poco a poco tuvimos que migrar a la nube muchos otros servicios para los que no estaba pensado como, por ejemplo, gestión de resultados deportivos.
Después de muchos años sin renovar nuestra infraestructura física (servidores, switches, balanceadores web, NAS, routers…) y para evitar que alguna avería pudiese dejar parados algunos servicios y webs, se decidió virtualizar en contenedores Docker nuestra antigua plataforma —que seguía conviviendo con ARC— y que pasase a funcionar sobre Kubernetes en GCP… un increíble salto tecnológico desde esas primeras noticias que llevaba de mi casa a la redacción de El Comercio de Gijón en un simple disquete. Los medios han tenido que reinventarse por completo en apenas 3 décadas y la tecnología necesaria para hacerlo solo es uno de los retos a los que se han enfrentado.
Mirando hacia atrás, veo que tras haber empezado hace 30 años a publicar noticias en la web de forma altruista durante tres años, las casualidades encadenadas me llevaron a trabajar para varias cabeceras mucho más grandes.
Si algo he aprendido a lo largo de mi carrera es que hemos venido a este mundo a ayudar. Durante este camino me lo he pasado en grande, he aprendido muchas cosas y he conocido a mucha gente que merece la pena. Soy muy afortunado y lo sé. Aprovecho a invitaros a que reflexionéis si vosotros también lo sois.
|