В настоящее время я занимаюсь разработкой микросервиса для обработки преобразования XML (и других форматов, но в данный момент это не имеет значения). Для преобразования XML в XML я использую файл XSLT, который описывает преобразование. Этот XSLT имеет ссылки на другие файлы XSLT, и может случиться так, что через год будет новая версия. Теперь микросервис работает внутри док-контейнера, который обслуживается с помощью kubernetes. XSLT теперь встроен в репозиторий и, следовательно, в контейнер докера, но если я хочу что-то изменить, мне нужно пересобрать и заново развернуть сервис. Чтобы исправить это, я нашел несколько решений, но каждое из них имеет свои недостатки:
Сохраняйте это как сейчас
- (-) Трудно расширить с помощьюновые XSLT или версии
- (+) Простота реализации
Сохранение XSLT в базе данных
- (-) Hardэффективно ссылаться на другие XSLT
- (+) Легко обновить XSLT или добавить новый
- (+), отделенный от основного кода репо
Свяжите модуль с постоянным томом
- (-) Требуется система для обработки загрузки новых XSLT
- (+) Может использоваться для версии XSLT
- (+) Отсоединено от основного репозитория
Каково было бы наилучшее решение, учитывая требование добавления новых XSLT и возможности обновления старых итакое развертывание должно быть максимально легким и плавным.