Daniel Carrasco

Daniel Carrasco

SysAdmin & DevOps Engineer
Related topics: Systems

Cuál es la importancia del plan de contingencia y de continuidad de negocio

02 de March de 2021
2 minutos

A todos nos ha pasado alguna vez que tras estar varios días trabajando en un documento, hemos conectado el pendrive al ordenador y no funciona. Tras soltar un montón de improperios y provocarle un zumbido en el oído al fabricante del pendrive, no nos ha quedado más remedio que resignarnos y reescribirlo.

Ahora bien, si enfocamos el mismo problema pero a nivel de tu página web, es muy probable que si algo falla pierdas meses e incluso años de trabajo (a que ahora lo del documento te parece una tontería). Es ahí donde entra en juego el plan de continuidad del negocio.

Además de esto, si tienes un e-commerce, seguramente te interese que tu web vuelva a estar disponible lo antes posible para perder la menor cantidad de ventas. Esto y mucho más es lo que se contempla en el plan de contingencia.

Continuidad del negocio

Seguramente tu página web contenga muchos datos importantes como los productos que vendes, las entradas de tu blog, los datos de tus clientes… además de la configuración de los distintos módulos, pasarelas de pago y demás procesos que hacen que tu e-commerce funcione correctamente. Es por esto que es muy importante protegerse para que en  caso de desastre, puedas volver a poner en marcha tu web perdiendo la menor cantidad posible de datos.

Debemos tener en cuenta varios puntos importantes:
● Actualización
● Resiliencia
● Offsite
● Redundancia

 

Actualización

Dependiendo del tipo de web que tengamos, la importancia de la actualización de los backups puede ser mayor o menor. Por ejemplo, algunos de nuestros clientes con e-commerce hacen backups cada hora, mientras que si por ejemplo tienes un blog quizá te llegue con un backup al día, o incluso con uno a la semana.

Resiliencia

Otro punto importante es la resiliencia de tus backups, que es la capacidad que tienen para ser restaurados manteniendo el estado original por mucho tiempo que pase. Por ello es muy importante elegir un formato de backup que sea confiable y realizar restauraciones periódicas de prueba para verificar que estos son válidos.

Offsite

Es muy importante que los backups se almacenen offsite, ya que de almacenarse junto con los datos, es muy probable que se pierdan también en caso de desastre. Es por eso que cuanto más lejos, mejor. Si tienes un site en Google Cloud Platform, por ejemplo alojado en Bélgica, guarda los backups en EEUU por ejemplo, así pones bastante tierra de por medio en el caso de desastre.

Redundancia

Si está en tu mano, otro punto interesante es la redundancia de los backups. Si tu página sufre un desastre y tienes que restaurar un backup, aunque es muy difícil, hay probabilidades de que dicho fichero esté dañado o que por error haya sido borrado. Manteniendo copias distribuídas de los backups te aseguras de evitar este problema, mejor si son además en distintas zonas.

Plan de contingencia

Una vez que te has asegurado la continuidad del negocio, es hora de ponerse en marcha lo más rápido posible, ya que no es lo mismo 8 que 80 (sobretodo si tienes una tienda). Si tu web se cae, lo más importante en ese momento para ti va a ser la recuperación del servicio para seguir recibiendo visitas y vendiendo.

Es por eso que es importante tener en cuenta los siguientes puntos:
● Alta disponibilidad
● Recuperación rápida
● Restauración rápida

Alta disponibilidad

Algo muy importante en tu web es la alta disponibilidad. La alta disponibilidad o high availability en inglés (HA) consiste en tener tus servicios replicados, así en el caso de que uno falle, el otro toma el relevo.

Algunos ejemplos son:
● Sistemas de ficheros distribuidos como CephFS
● Redis Clúster
● MySQL clúster o Master/Slave

También podemos optar por servicios gestionados como los que ofrece Google, así además evitamos el overhead de su mantenimiento y se encargan ellos de la alta disponibilidad.

Recuperación rápida

Si tienes tu web alojada en un sólo servidor por ejemplo y este se cuelga, hasta que no entra alguien y se encarga de recuperar el servicio, la web permanece caída. Es por eso que es importante optar por usar métodos que permitan una recuperación rápida.

Si tienes por ejemplo dos servidores y uno se cae, el otro sigue sirviendo la web mientras que alguien recupera el primero, por lo que es más difícil que haya downtime. Además de esto, si lo combinamos con sistemas de recuperación automática como por ejemplo Kubernetes, grupos de auto-escalado o similares, el downtime se puede reducir a cero.
Esto sería gracias a que dichos sistemas verifican el estado de tu servicio y son capaces de reiniciarlo o recrearlo en el caso de que se detecte un fallo, al mismo tiempo que la redundancia evita que haya downtime.

Restauración rápida

Aunque puede sonar parecido al apartado anterior, no es lo mismo. La recuperación rápida se trata de cuánto tiempo te llevaría recuperar el servicio de tu web en el caso de desastre. Asimismo, si tienes backups pero te va a llevar varios días recuperarlos, quizá no sea asumible esta pérdida de servicio. Es por ello que junto con el plan de continuidad del negocio es muy importante que tengas un plan de recuperación en el caso de desastre.

Dentro de este plan de recuperación puede entrar:
Plantillas de tu infraestructura con Salt que te permitan una rápida replicación.
● Plantillas de tus servidores con Salt, Ansible, Puppet, los cuales te permiten hacer el setup en cuestión de minutos.
● Métodos de backup fácilmente restaurables, como por ejemplo el uso de Snapshots.

Teniendo en cuenta estos puntos tu web irá como la seda y podrás vivir como mayor tranquilidad sabiendo que tu servicio estará más tiempo funcionando.