Virgin mobile Chile Project

Auditamos de forma integra el sitio web de Virgin Mobile Chile, solucionando problemas específicos y complejos de seguridad, rendimiento, calidad del código y arquitectura software.

Hacerse con el control de la tecnología es fundamental para poder sacarle partido a tu canal online

Virgin Mobile es un proveedor de telefonía móvil que forma parte de Virgin Group. Acudieron a la Drupalera por su experiencia en soluciones Drupal y en infraestructuras que soporten sitios con una alta carga de procesos transaccionales.

Virgin había realizado un desarrollo de unos 8 meses para el nuevo site y tras la puesta en producción y la resolución de varios bugs, el sistema se empezó a degradar de una forma continua, haciendo que la experiencia de usuario fuera mala y impactando negativamente en sus usuarios. 

El objetivo principal fue solucionar los problemas de rendimiento para lo que querían contar con un proveedor externo con experiencia a todos los niveles con el performance Drupal: auditoría, acciones concretas y buenas prácticas a futuro a nivel de código y arquitectura software y hardware.

Una auditoría permite no sólo entender en profundidad lo que está ocurriendo y cuáles son los principales problemas, sino poder aplicar las mejores soluciones en cada caso

Realizamos una auditoría a nivel arquitectura de sistemas, que incluyó:

  • Pruebas de rendimiento a nivel hardware (consumo de CPU, de RAM, de disco -IOPS, iowait).

  • Pruebas de rendimiento a nivel software (concurrencia de peticiones a “MySQL”, estudio de slow queries, uso de la caché de MySQL, concurrencia en Varnish, concurrencia en Apache.

  • Estudio del manejo de sesiones: recomendamos usar la estrategia “sticky session” a nivel balanceador, puesto que no estaba de este modo y había problemas de integridad del contenido cacheado por cada uno de los Varnish que había detrás del balanceador (según donde te llevaran podrían mostrar diferentes contenidos).

  • Recomendación de uso de almacenamiento compartido: los datos dinámicos no estaban compartidos entre los nodos de cómputo, lo cual daba respuestas inconsistentes a los clientes. Tras estudiar su stack de infraestructura, recomendamos y ayudamos a montar un servidor NFS para tal efecto.

  • Análisis de procesos y servicios que no se estaban usando: tales como memcached (estaban usando Redis pero memcached seguía activo), servidor postfix cuando usaban un servicio externo, etc.

Facilitamos recomendaciones para la configuración de los diferentes servicios que usaban:

  • Varnish: hicimos un análisis de las URL’s a cachear y propusimos una lista de nuevas URL’s que podían ser cacheadas sin problema alguno; sugerimos que todos los Varnish apuntaran (balancearan) a todos los apaches para buscar la alta disponibilidad y ajustamos la memoria RAM usada.

  • Apache: Había una mala configuración que permitía sólo 15 peticiones por nodos. Apoyamos con una nueva configuración de Apache.

  • Redis: El uso era mínimo y se podía aprovechar más. Dimos algunas directrices para ello que impactaban de forma positiva en el rendimiento.

  • MySQL: Facilitamos una configuración más adecuada para el uso que se hacía de ella, trabajando sobre las caché y las slow queries.

Realizamos una auditoría a nivel de Desarrollo Drupal:

  • Recomendamos un flujo de desarrollo basado en GitFlow y con integración continua para evitar grandes desalineamientos entre entornos de desarrollo, pre-producción y producción.

  • Control de la función drupal_http_request para peticiones a subsistemas externos.

  • Fallos de seguridad.

  • Permisos no correctos en archivos principales e importantes de Drupal. Para atajarlo, creamos un script que asegurará la integridad de la estructura de archivos Drupal.

  • En dos formularios se detectó que podían ser atacados con técnicas como SQL Injection. Realizamos sugerencias y cambios en código, haciendo las validaciones tanto en cliente como en servidor.

  • Actualización de módulos, con prioridad a las actualizaciones de seguridad.

  • “Sanar” parte del kernel de Drupal que estaba tocado. Es una mala práctica y se aconseja dejar el Kernel intacto.

  • Errores de codificación: Irregularidades en la codificación de los módulos personalizados (no cumplimiento de los coding standards, no cumplimiento con los comments standards, existencia de código no usado, uso inapropiado de includes, código no adaptado al soporte multi-idioma, etc.)

Virgin Mobile Chile website

Una auditoría que terminó en soluciones muy concretas

Con todas las mejoras aplicadas y el cambio de arquitectura que sugerimos conseguimos dotar de la estabilidad que el cliente buscaba, además de contribuir a crear un mejor sitio a nivel de rendimiento, escalabilidad, seguridad, integridad y mantenibilidad.

Carlos Barrero
Team Leader at La Drupalera

Conseguimos adaptarnos a las necesidades del cliente en un corto espacio de tiempo con medidas efectivas, reportes de información periódicos y consiguiendo resultados finalmente.

¿Tú también quieres tener éxito?

Contacta con nosotros