digitalocean deploy django deployment backup

deploy - gunicorn django



Estrategia de backup para django. (1)

Recientemente implementé un par de aplicaciones web creadas con django (en webfaction). Estos serían algunos de los primeros proyectos de esta escala en los que estoy trabajando, así que quería saber cuál era una estrategia de respaldo efectiva para mantener los respaldos tanto en webfaction como en una ubicación alternativa.

EDITAR:

¿Qué quiero hacer copia de seguridad?

Base de datos y medios subidos por el usuario. (mi código se gestiona a través de git)


No estoy seguro de que exista una respuesta única para todos, especialmente porque no ha dicho lo que pretende respaldar. Mi habitual MO:

  • Código fuente: use control de fuente como svn o git. Esto significa que normalmente tendrá: dev, despliegue y copias de seguridad del repositorio para el código (especialmente en un drsc).
  • Base de datos: esto también depende del uso, pero por lo general:
    • Tenga un comando de administración dump_database.py que inspeccionará la configuración y para cada db dará salida al comando correcto db dump (teniendo en cuenta el tipo de db y también el nombre de la base de datos).
    • Tener un trabajo cron en otro servidor que se conecte a través de ssh al servidor de aplicaciones, ejecute el comando dump db management, tar el archivo sql con el nombre db + timestamp como el nombre del archivo y lo cargue en otro servidor (s3 de Amazon en mi caso) .
  • Archivo multimedia: por ejemplo, subidas de usuarios. Mantenga un trabajo de cron en otro servidor que pueda ingresar en el servidor de aplicaciones y llame a rsync a otro servidor.

Lo que hay que tener en cuenta, sin embargo, es cuál es el propósito de la copia de seguridad. Si es accidental (ya sea una falla en el disco, una inyección de errores o una inyección de SQL) o simplemente la restauración, puede mantener esos trabajos cron en el mismo servidor.

¡Si también quiere estar seguro en caso de que el servidor esté comprometido, no puede mantener las credenciales de copia de seguridad remota (sshkeys, amazon secret, etc.) en el servidor de aplicaciones! O bien, un atacante tendrá acceso al servidor de copia de seguridad.