Cherokee: web de alto rendimiento

Escrito por Ramón Rey en Análisis de Software el 22 de abril de 2008

El pasado día 21 de Abril tuvo lugar en la Facultad de Ciencias de la Universidad de Salamanca una conferencia impartida por Álvaro López Ortega bajo el título «Cherokee: web de alto rendimiento». Esta conferencia está incluida dentro las actividades organizadas por GNU/Linux Salamanca (GLiSa) y la Asociación de Usuarios de GNU/Linux de Castilla y León (AUGCyL) en colaboración con la recién creada Oficina del Conocimiento Abierto (OCA) de la Universidad, con motivo del curso extraordinario «Software libre, GNU/Linux para la comunidad universitaria». 

Cherokee logo

Cherokee es un servidor web de licencia libre (GPL) con un desarrollo aún reciente. Ha sido creado desde el principio con el objetivo de ser eficiente, modular y sencillo de configurar. Es una alternativa rápida e innovadora a otros servidores web más establecidos como el omnipresente Apache, que lastran años de evolución en su código y de la sobreimplementación de características.

La crónica

Los medios locales de comunicación, tanto prensa escrita, radio y televisiones locales, aparecieron justo antes del comienzo de la conferencia y «secuestraron» al ponente durante unos minutos haciéndole una serie de preguntas relacionadas con el software libre y otros temas de índole tecnológico.

Como siempre, demostraron no tener muy claros los conceptos y si algún lector tiene la oportunidad de descubrir las crónicas y reseñas publicadas desde ayer en los diferentes medios salmantinos, podrá descubrir interés periodístico pero nula comprensión del fenómeno del software libre por parte de la mayoría de la prensa.

Cherokee: web de alto rendimiento

Álvaro está constantemente viajando y dando conferencias alrededor del mundo sobre OpenSolaris, dada su relación con el proyecto como ingeniero de SUN, y sobre su proyecto personal: el servidor web Cherokee. Esa experiencia se le nota y su soltura al hablar en la conferencia es evidente. Se puede decir que su conferencia ha sido informativa, promocional, sorprendente y divertida.

Informativa porque su proyecto Cherokee no es muy conocido en el mercado de los servidores web libres y mucho menos en el de los servidores web en general. Ha sabido dar unas cuantas pinceladas de las ventajas técnicas y las razones que le llevaron a crear un proyecto como Cherokee existiendo un software dominante libre como Apache.

Cherokee: web de alto rendimiento

Promocional, debido a su gran interés en convencer al público, mayoritariamente relacionado con la titulación de Informática, a colaborar en el proyecto Cherokee y en proyectos de software libre en general. Sobre todo hizo hincapié en las posibilidades de aprendizaje, reconocimiento e incluso la posibilidad de ganar dinero realizando mejoras a proyectos de software libre a través del ya frecuente sistema de recompensas (bounties) que muchos proyectos han empezado a usar desde hace tiempo para incitar a la colaboración.

Sorprendente porque no quiso dar una lista completa de características de Cherokee y compararlo con Apache sin más. Se empeño de forma muy inteligente en demostrar y convencer de tres características clave que hacen de Cherokee una alternativa al producto dominante en el mercado de los servidores web: una mayor velocidad, un diseño completamente modular y un sistema de configuración via web sencillísimo.

Por último, la conferencia fue divertida porque supo conectar con los asistentes haciendo comparaciones muy gráficas entre Cherokee y Apache. Mostró analogías tales como mostrar un ordenador Dell de torre y compararlo con un iMac de última generación, por poner el ejemplo más claro, comparando la diferencia de filosofía entre los proyectos. Básicamente quiso dejar claro que Cherokee hace lo mismo que Apache pero de forma diferente y en algunos aspectos, mejor.

El servidor web Cherokee

Después de dar una pequeña explicación sobre como tuvo lugar la conferencia y su contexto, es obligatorio tratar de explicar lo que pudimos ver los asistentes sobre el servidor web Cherokee y sus implicaciones técnicas. Cherokee es un servidor web diseñado y programado desde cero y, al contrario que Apache, es un proyecto joven creado con los últimos avances y tecnologías descubiertos más recientemente en el campo tanto del desarrollo de software como del diseño de servidores web.

Cherokee: web de alto rendimiento

Apache, el servidor web más usado hoy en día, fue creado como una solución (un parche) a los problemas que tenía uno de los primeros servidores web, el NCSA httpd. Como bien se explicó en la conferencia, en esa época ni siquiera existían los threads (tareas en que se dividen los procesos que se ejecutan en un sistema operativo de tal forma que la CPU del sistema las ejecuta con la intención de que virtualmente se realicen todas las tareas a la vez). Este gran avance en la informática moderna no se tuvo en cuenta en el diseño inicial base del que es actualmente el servidor web más usado en Internet. Sin embargo esto si se ha tenido en cuenta en la creación e Cherokee.

Cherokee: web de alto rendimiento

El diseño de Cherokee consta de un núcleo de la aplicación que no realiza absolutamente ninguna tarea más allá de abrir y cerrar conexiones. Por defecto Cherokee ni siquiera es capaz de leer del disco duro. Esto puede dar una idea del extremo al que han llegado en el diseño y el desarrollo de Cherokee en el afán de conseguir el más absoluto minimalismo y las mayores posibilidades de personalización de su configuración y funcionamiento.

Sobre esa base rapidísima se ha construido una serie de módulos que van añadiendo por separado la funcionalidad necesaria para trabajar con diferentes tecnologías. Por defecto lo que hace el servidor web es únicamente servir archivos de forma estática, al activarle el módulo de lectura del disco duro. Para añadir, por ejemplo, la posibildiad de realizar accesos a bases de datos o ejecutar aplicaciones PHP, Perl o Rails, es necesario instalar el módulo específico para cada tecnología requerida.

¿Y qué hay acerca del alto rendimiento de Cherokee? Según su creador Cherokee es hasta siete veces más rápido sirviendo contenido estático que Apache y hasta tres veces más rápido ejecutando PHP que Apache. Esto puede dar una idea de las posibilidades de Cherokee como sustituto de Apache en lugares donde se tengan problemas de saturación del servidor ante muchas peticiones.

De hecho, esta capacidad de poder ejecutar muchas más peticiones por segundo que Apache fue el gran argumento inicial de Álvaro López durante el comienzo de su exposición. Las ventajas de esta eficiencia superior son claras: poder responder más rápido a un mayor número de peticiones hace posible que una web que usa Cherokee tenga mucho más aguante frente a «efectos Slashdot, Barrapunto, Digg o Menéame». Además de esto permite un ahorro considerable a las empresas en cuanto a las necesidades de hardware para servir un sitio web en comparación con otros servidores web.

Otros módulos de Cherokee le proveen de soporte de compresión de datos usando Gzip o deflate, mejorando la velocidad de transferencia de datos hacia el usuario de la web. Mientras que la mayoría de empresas de hosting no recomiendan la activación de esta clase de protocolos de compresión debido a la carga extra de CPU que suponen, con Cherokee está claro que la eficiencia del servidor web compensa con creces la utilización de estas tecnologías.

Una característica que sorprendió es la capacidad de Cherokee de balancear la carga de peticiones. Ahora mismo la solución estándar para poder escalar un sitio web es tener múltiples servidores ejecutando un servidor web y sus módulos de ejecución PHP, Rails, etc. El usuario que accede a esa web lo hace a través de una máquina que actua a modo de frontend (de recepcionista de las peticiones) y luego envia siguiendo ciertos patrones las peticiones a los servidores web que se ejecutan en otras máquinas diferentes.

Con Cherokee, se puede eliminar la necesidad de un balanceador de carga dedicado y sustituirlo por un servidor con Cherokee que actua de balanceador de peticiones. Por un lado se encargará de responder peticiones estáticas de contenido y por otro balanceará las peticiones de ejecución de aplicaciones dinámicas escritas, por ejemplo, en PHP. El resto de máquinas que se encarga de procesar PHP (o Perl, Rails,...) únicamente necesitará tener instalado ese software en concreto y no Cherokee, de tal forma que podrá usar todos sus recursos para la ejecución de la aplicación web y las llamadas a bases de datos.

En cuanto a la posibilidad de registro de las operaciones del servidor web Cherokee soporta los formatos más populares. Por un lado el formato de archivo original NCSA, el estándar del consorcio W3c y el formato de logging de Apache que se usa por defecto, Combined , lo que permite el uso de todas las herramientas de visualización de registros de Apache existentes.

Interfaz de administración de Cherokee

Para terminar este pequeño resumen de las principales características de Cherokee hay que destacar el esfuerzo del proyecto por tener un interfaz de administración y configuración amigable y potente. Se denomina cherokee-admin y es accesible via navegador a través del puerto especificado para ello. Desde ese interfaz se puede poner en marcha o parar el servidor, configurar lo más básico y lo más avanzado con un interfaz muy simple que permite interactuar incluso con arrastrar y soltar, debido a que está desarrollado usando AJAX. 

Este interfaz web de administración elimina la necesidad de editar archivos de configuración de texto y de aprender sintaxis complejas. Pero que nadie se engañe, la potencia del interfaz web de administración de Cherokee no significa que no estén presentes absolutamente todas las más complejas posibilidades de configuración.

Comentarios.

Avatar de Carlos Fenollosa

Por Carlos Fenollosa hace 24 días

Un artículo fantástico. Apache es el servidor web más extendido y con diferencia, aunque por desgracia no es el mejor y cada vez se está haciendo más pesado.

A ver si Cherokee toma más relevancia en el futuro y se hace valer :)

Avatar de [DoodoM]

Por [DoodoM] hace 23 días

Muy interesante. Siempre está bien saber de alternativas a Apache. Yo últimamente utilizaba lighttpd, que también es muy ligero, pero Cherokee tiene una pinta buenísima (sobre todo por lo de la WebUI).

Quizás me anime a probarlo :D

Avatar de mikiorbe

Por mikiorbe hace 23 días

Muy bueno el artículo y bastante apetecible el Cherokee. A ver si saco tiempo y me lo instalo.

Avatar de torkiano

Por torkiano hace 23 días

Yo vengo utilizando desde hace tiempo la version anterior (0.5). Necesitaba un servidor web para unas practicas de clase y no queria instalar el apache solo para eso.
Estoy muy contento con el, muy sencillo de configurar y muy ligero.
Tengo que probar la nueva version (0.6), que según parece ni siquiera hace falta toquetear ningun fichero de configuración (todo se hace via web, como dice el articulo)

Saludos

Escribe tu comentario

Si quieres dejar un comentario Inicia sesión o Registrate