Recientemente hemos actualizado/modernizado/mejorado uno de nuestros servicios de 1clic, el balanceador/caché/WAF desarrollado en casa, Frontalpro.…
En el anterior post comentaba lo que nos llevó a desarrollar un balanceador con funciones de WAF en Sarenet y los problemas con que nos encontramos durante su desarrollo. Esos problemas nos llevaron a replantear el servicio y refactorizarlo en una nueva versión más acorde con las tecnologías actuales.
Balanceador, caché y WAF por Sarenet (1ª parte)
Desde un primer momento teníamos claro que los nuevos equipos irían bajo nuestra nueva plataforma de orquestación basada en Foreman, que es el corazón de nuestros servicios de 1clic. De esta forma podríamos dar de alta un nuevo equipo en muy poco tiempo y tener la configuración gestionada de forma remota.
Revisamos los puntos flacos de la anterior arquitectura:
Los viejos equipos tenían como base FreeBSD9 y separábamos la gestión de la parte de servicio a cliente mediante el sistema de jails del propio BSD. Uno de los problemas que teníamos es que FreeBSD9 no tiene una compatibilidad tan buena con nuestro sistema de Cloud como nos gustaría (aunque estamos trabajando en ello), por lo que la primera elección fue la de sustituir el sistema operativo por otro.
Como ya he comentado, utilizamos un sistema de orquestación para la configuración, por lo que toda la parte de la interfaz pasa a gestionarse a través de este sistema que nos permitirá integrarlo en el futuro con nuestra Ventana de Cliente de forma que toda la gestión de una plataforma Cloud quede recogida en un único sitio. Esto también influye en que podemos instalar el sistema en servidores con menos recursos y por lo tanto más económicos.
Eliminar esta parte nos sirve también para ahorrar en un bien tan escaso como son las direcciones IP, en concreto las direcciones IPv4. En el modelo previo necesitábamos dos direcciones como mínimo: una para la gestión del servidor y otra para el servicio del cliente.
Adicionalmente, mientras que antes necesitábamos una dirección IP por cada web segura con certificado SSL, en el nuevo modelo utilizamos una única dirección IP para todas las webs, tengan o no certificado seguro; esto es posible gracias a la implantación de navegadores modernos (Internet Explorer ya no es el navegador más utilizado) del protocolo SNI.
Teníamos claro que seguiríamos utilizando Nginx como primera frontera de cara a Internet por las razones explicadas en la anterior entrada, pero esta vez la hemos relegado de las tareas de caché y de balanceador, manteniendo la parte de WAF, pero con un pequeño cambio.
Como comentábamos en el anterior post, Modsecurity pintaba muy bien sobre el papel (y la nueva versión 3.0 tiene muy buena pinta) pero en la práctica nos había dado más de un dolor de cabeza y despertado más de una noche, por lo que investigamos las alternativas y nos quedamos con NAXSI. Con una configuración más sencilla y que carga menos el servidor web podemos seguir teniendo una protección frente a los ataques más comunes contra las aplicaciones web.
Como ya comentaba, la parte de caché y de balanceador las relegamos a herramientas dedicadas exclusivamente para ello.
Varnish es un viejo conocido en la casa que nos ha salvado en más de una ocasión en webs de muchos accesos (por ejemplo, eventos deportivos como
Por lo que el Nginx, tras recibir la petición de una web pasa al Varnish, el cual si la tiene cacheada la devuelve, ahorrando de ese trabajo al servidor final y acelerando las webs (sobre todo en contenido estático) que usen el servicio.
Para la parte de balanceador necesitábamos algo más potente que la versión básica de balanceo de Nginx (y sin querer recurrir a su versión Plus para evitar problemas de licencias a clientes), por lo que HAProxy era la pieza que nos faltaba para terminar este nuevo puzzle. Utilizado hasta en plataformas y arquitecturas Windows como es la red de Stack Overflow es uno de los softwares más usados para realizar balanceo de servicios. Además no hemos sido los únicos en hacer este cambio recientemente.
Gracias a HAProxy podemos pasar el contenido estático a ciertos frontales (si hemos decidido no cachearlo), mandar los robots y buscadores a otros distintos para que no afecten a los usuarios que navegan por nuestra web o configurar comprobaciones para saber si nuestros servidores están funcionando de forma correcta y mandar el tráfico a otro frontal.
Queríamos tener todo listo para el Black Friday, ya que necesitábamos un sistema para poder escalar de forma fácil y que le permitiese aguantar el pico de tráfico que se preveía para esas fechas a unos cuantos clientes. Superamos con aprobado y tras pasar el temporal estamos migrando a todos los clientes del sistema antiguo al nuevo, manteniendo funcionalidades y liberando recursos en algunos casos.
La logística y el transporte están atravesando una revolución tecnológica que está transformando la manera…
Estamos observando una revolución silenciosa pero impactante, propiciada por el Internet de las Cosas (IoT).…
En un mercado inundado de opciones de servicio Cloud, las empresas deben decidir cuidadosamente cuál…
La Inteligencia Artificial (IA) uno de los temas más discutidos y fascinantes de nuestro tiempo.…
En un panorama empresarial marcado por una digitalización acelerada, la gestión de la información se…
Desde nuestros inicios hace 30 años, hemos observado de cerca la transformación de Internet, de…