Problema en la actualización del servidor

Uptime Report Pingdom

Esta mañana hemos tenido un problema con la actualización de paquetes en el servidor, lo que nos ha causado estar con la web caída unos cincuenta minutos.

Si hay disponibles nuevas versiones de los paquetes instalados en el servidor, recibimos un mail con el informe de los nuevos paquetes y la información de los cambios (mediante apticron), ejecutamos un script en el servidor principal y va ejecutando las tareas de actualización en cada servidor OpenVZ (uno para la web de Foto DNG, otro con la Bases de Datos y otro que ejecuta diversas tareas, al margen de los OpenVZ de pruebas), para cada cambio va preguntando, pero el problema es que a veces no nos fijamos lo suficiente y en uno de estos cambios desinstaló php5-fpm que es el que utilizamos con Nginx para servir los scripts de la web. Antes de finalizar la tarea me di cuenta del problema, eran las 10:57, pero intentando solucionarlo arreglando paquetes, cabiando, etc… el tiempo iba pasando y aunque algunas páginas aún se mostraban gracias al sistema de Nginx Cache que devuelve htmls estáticos, otras cuya caché había caducado o que dependían directamente de la ejecución de PHP, como la subida de fotos al concurso, mostraban un error 502 Bad Gateway debido a que Nginx no se podía comunicar con el PHP FastCGI Process Manager inexistente, por lo que la solución inmediata fue eliminar completamente PHP y volver a la versión 5.4 del repositorio de Ondřej Surý (ppa:ondrej/php5-oldstable), restaurar la configuración de PHP y extensiones que copiamos automáticamente cada día a BitBucket y a las 11:46, después de 49 minutos, todo volvía a funcionar correctamente…

Bueno, casi todo, ya que Zend OPcache utiliza la versión de PHP 5.5, aunque los usuarios no notarían el cambio. Realizadas las pruebas en un servidor clonado del anterior y tras desinstalar completamente PHP y todo rastro del mismo, se volvió a realizar la instalación de la versión de PHP 5.5 (ppa:ondrej/php5) y todo funcionando correctamente, por lo que preparé los scripts para la desinstalación de PHP 5.4 e instalación de PHP 5.5, tarea que dejé preparada para después de la comida.

Con todo preparado a las 14:48 comencé el proceso que finzalizó a las 14:50 con un downtime de dos minutos y que de nuevo gracias a la caché de Nginx, algunos usuarios ni se percataran.

Browsers Report New Relic

La primera caída de 49 minutos podría haberse solucionado en menos de cinco minutos, pero a veces intentar solucionar algo nos da más problemas que volver a hacerlo de cero.

Esperemos que no nos vuelva a pasar algo similar y sentimos el tiempo que no ha estado disponible la web de Foto DNG, nuestras disculpas por el fallo.