Как хранить версированные XSLT-файлы в микросервисе - PullRequest
1 голос
/ 30 октября 2019

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

  1. Сохраняйте это как сейчас

    • (-) Трудно расширить с помощьюновые XSLT или версии
    • (+) Простота реализации
  2. Сохранение XSLT в базе данных

    • (-) Hardэффективно ссылаться на другие XSLT
    • (+) Легко обновить XSLT или добавить новый
    • (+), отделенный от основного кода репо
  3. Свяжите модуль с постоянным томом

    • (-) Требуется система для обработки загрузки новых XSLT
    • (+) Может использоваться для версии XSLT
    • (+) Отсоединено от основного репозитория

Каково было бы наилучшее решение, учитывая требование добавления новых XSLT и возможности обновления старых итакое развертывание должно быть максимально легким и плавным.

1 Ответ

1 голос
/ 30 октября 2019

Вот еще два варианта:

  • Создайте configMap из файла XSLT, смонтируйте его как том, чтобы XSLT сталфайл внутри контейнера. Существует ограничение в размере ~ 1 МБ (наложенное etcd), но маловероятно, что XSLT-файл будет таким большим.

  • Сохраните XSLT-файл в репозитории, таком как git, fileхранилище, такое как nexus, или простой веб-сервер, и используйте контейнер init , чтобы получить файл из репозитория и поместить его на том, общий для контейнера init и контейнера приложения. Этот пример может быть хорошей отправной точкой.

...