У нас есть веб-сайт на основе Django, для которого мы хотели сделать часть контента (текстовой и бизнес-логики, такой как тарифные планы) легко редактируемой внутри компании , и поэтому мы решили хранить его вне кодовой базы. Обычно причина заключается в одном из следующих:
Это то, что нетехнические люди хотят редактировать. Одним из примеров является копирайтинг для веб-сайта - программисты готовят шаблон с текстом, который по умолчанию имеет значение «Lorem ipsum ...», а реальный контент позже вставляется в базу данных.
Это то, что мы хотим иметь возможность быстро менять без необходимости развертывания нового кода (что мы в настоящее время делаем два раза в неделю). Примером могут служить функции, доступные в настоящее время клиентам на разных уровнях ценообразования. Вместо того, чтобы жестко их кодировать, мы читаем их из базы данных.
Описанное решение является гибким, но есть некоторые причины, по которым оно мне не нравится.
Поскольку содержимое должно быть прочитано из базы данных, это приводит к снижению производительности .
Мы смягчаем это, используя схему кэширования, но это также добавляет сложности системе.
Разработчики, которые запускают код локально, видят систему в существенно другом состоянии по сравнению с тем, как она работает на производстве. Автоматизированные тесты также приводят систему в другое состояние. Ситуации, такие как тестирование новых функций на промежуточном сервере, также усложняются - если промежуточный сервер не имеет последней копии базы данных, он может неожиданно отличаться от производственного.
Мы могли бы смягчить это, периодически передавая новое состояние в хранилище (например, добавляя перенос данных), но это кажется неправильным подходом. Это?
Есть идеи, как лучше всего решить эти проблемы? Есть ли лучший подход для обработки контента, который я пропускаю?