ShareThis

jueves, 1 de enero de 2009

Soluciones de Balanceo de Carga

Desde hace algún tiempo he tenido la posiblidad de trabajar con un excelente balanceador de carga: Un F5 BigIP 6400.

Un balanceador fundamentalmente es una caja que se pone al frente de un conjunto de servidores que atienden una aplicación y tal como su nombre lo indica asigna o balancea las solicitudes que llegan de los clientes a los servidores usando algún algoritmo (desde un simple Round Robin hasta algoritmos más sofisticados).

Una opción inicial en este sentido, es utilizar al DNS como un mecanismo para repartir carga entre diversos servidores, pero esta opción por lo que he podido observar no funciona para nada bien, pues los clientes que por alguna razon recibieron la IP de un servidor caido quedarán "pegados" a este.

Es aquí donde un balanceador de carga adquiera una plena justificación, al incorporar un mecanismo de revisión periódico de cada uno de los servidores, que permite excluir del pool de atención aquellos nodos que estan caídos de una manera totalmente transparente para el usuario.

Varias aplicaciones comerciales para internet son inherentemente lentas (¿le suenan familiares Oracle Portal, PeopleSoft, SharePoint, Outlook WEB, Blackboard?). En el caso de F5 a través de un módulo adicional denominado WebAccelerator se pueden conseguir mejoras sustanciales en los tiempos de respuesta percibidos por los usuarios (por el uso de compresión y otras técnicas), asi como un ahorro que puede llegar a ser considerable en cuanto a la utilización de ancho de banda en la organización. Asi mismo, la posibilidad de delegar el trabajo de cifrado SSL a la caja del balanceador (a través de hardware dedicado), puede liberar una carga de procesamiento importante a los nodos servidores.

Pero como usted ya lo sabe... todo tiene un precio, y las soluciones comerciales (en especial las de F5) tienden a ser costosas. Como un partidario de las soluciones de código abierto, creo que vale la pena tambien mencionar otras opciones que existen. HAProxy es una de las soluciones de balanceo de carga con una muy buena reputación que corre sobre Linux, Solaris, FreeBSD y OpenBSD, siendo la primera opción la preferida sobre hardware x86 o x86_64.

La definición del proyecto indica que “HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is particularly suited for web sites crawling under very high loads while needing persistence or Layer7 processing. Supporting tens of thousands of connections is clearly realistic with todays hardware“ Cabe resaltar que existen soluciones "Out of the Box" como la de loadbalancer.org que utiliza HAProxy.

¿Ante este panorama cual puede ser una recomendación? creo que dependerá del presupuesto, el tipo de aplicación y de su criticidad para la organización.

  • En el caso de que se trate de una aplicación core de la organización, enfocada a un público en Internet que demande unos tiempos de respuesta muy rápidos, considere una solución como F5 que con WebAccelerator, tiene ya preconstruidas un conjunto de reglas que mejoraran de manera sustancial el desempeño de ciertas aplicaciones (puedo dar testimonio de la importante mejora de rendimiento con Oracle Portal).


  • Si se trata de otro tipo de aplicación, donde el componente de aceleración no es tan relevante y existe una restricción prespupuestal importante, considere una solución como HAProxy.

Algunos recursos que pueden ser interesantes son los siguientes:

3 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. sabes si el equipo mencionado por ti el f4 6400
    se pueden conseguir licencias como el link controller y LTM?
    aquí en Chile no las puedo conseguir, será posible saber con la posibilidad de comprar esas licencias?

    saludos cordiales

    Juan Carlos Miranda Velásquez

    ResponderEliminar
    Respuestas
    1. Siento no poder ayudar. No conozco cuales son los canales de F5 en Chile.

      Eliminar