Tenemos un sitio web basado en Django para el que queríamos que parte del contenido (texto y lógica de negocios, como planes de precios) sea fácilmente editable internamente , por lo que decidimos almacenarlo fuera de la base de código. Por lo general, el motivo es uno de los siguientes:
Es algo que la gente no técnica quiere editar. Un ejemplo es la redacción de textos publicitarios para un sitio web: los programadores preparan una plantilla con el texto predeterminado "Lorem ipsum ...", y el contenido real se inserta más tarde en la base de datos.
Es algo que queremos poder cambiar rápidamente, sin la necesidad de implementar un nuevo código (que actualmente hacemos dos veces por semana). Un ejemplo serían las características actualmente disponibles para los clientes en diferentes niveles de precios. En lugar de codificarlos, los leemos de la base de datos.
La solución descrita es flexible, pero hay algunas razones por las que no me gusta.
Debido a que el contenido debe leerse desde la base de datos, hay una sobrecarga de rendimiento .
Mitigamos eso mediante el uso de un esquema de almacenamiento en caché, pero esto también agrega cierta complejidad al sistema.
Los desarrolladores que ejecutan el código localmente ven el sistema en un estado significativamente diferente en comparación con la forma en que se ejecuta en producción. Las pruebas automatizadas también ejercitan el sistema en un estado diferente. Situaciones como probar nuevas características en un servidor de ensayo también se vuelven más complicadas: si el servidor de ensayo no tiene una copia reciente de la base de datos, puede ser inesperadamente diferente de la producción.
Podríamos mitigar eso comprometiendo ocasionalmente el nuevo estado en el repositorio (por ejemplo, agregando migraciones de datos), pero parece un enfoque incorrecto. ¿Lo es?
¿Alguna idea de la mejor manera de resolver estos problemas? ¿Existe un mejor enfoque para manejar el contenido que estoy pasando por alto?