copy de security y restauración de la base

Estoy trabajando en un proyecto grande, que se basa en la architecture de micro service, así que considero que tengo 10 services, algunos de ellos tienen su propia database, estas bases de datos están en diferentes tecnologías (mysql, mongodb, elástico, …)

Entonces, ¿cuál es la mejor práctica para realizar copys de security y restablecer la recostackción de services?

el problema real es que estas bases de datos están relacionadas entre sí, por ejemplo, en mi server de back-end lógico que guardo de cada usuario que proviene de un server oauth,

ahora considere restaurar estas dos bases de datos por separado y ahora mis usuarios db en el server lógico contienen algunos usuarios que no tienen ningún logging relacionado con ellos en el server oauth,

solo para su información, estoy usando docker, docker-compose, docker swarm para mi orquestación de services.

Como una idea: verifique cómo sus services dependen el uno del otro. Si sus dependencies son acíclicas, es posible que pueda hacer una copy de security de todos sus datos fuera o adentro, sin que se produzcan problemas de coinheritance.

Hacerlo te garantizaría que no tengas elementos en los services dependiendo de uno interno después de tu restauración.

Si sus services muestran dependencies cíclicas, es posible que se le atienda mejor para que cada service sea networkingundante (p. Ej., Réplica maestra esclava). Luego puede eliminar las instancias de esclavos, tomando una copy de security de la gran cantidad de esclavos mientras están desconectados. Eso le permitiría crear una copy de security atómica en todos los services. Sin embargo, la calidad de la copy de security se basa en la calidad de la duplicación de su esclavo maestro en cada service.

Por último, puede mantener un logging del cambio por service, más una copy de security completa. Por lo tanto, puede escribir su retrotracción y comenzar a aplicar el logging de cambios hasta que llegue a un estado coherente en todas las instancias del service. Creo que eso requiere que tenga dependencies lógicas (identificador de request) que le permiten correlacionar el logging de elementos de cambio (es decir, aplicarlos a través de los services sin el riesgo de aplicarlos de una manera que desafíe las dependencies lógicas que ocurrieron cuando los clientes realmente interactuaron con tus services).

Espero que estas ideas te ayuden a resolver tu problema 🙂

    Intereting Posts