如何在微服务中存储版本化的XSLT文件

时间:2019-10-30 15:03:38

标签: python xml xslt openshift

当前,我正在开发一种微服务来处理XML(和其他格式,但现在不重要)的转换。对于从XML到XML的转换,我使用一个描述转换的XSLT文件。该XSLT引用了其他XSLT文件,并且可能从现在开始一年之内将有一个新版本。现在,微服务正在使用kubernetes服务的docker容器中运行。 XSLT现在被嵌入在仓库中,因此也被嵌入在Docker容器中,但是如果我想更改某些内容,则必须重新构建并重新部署该服务。为了解决这个问题,我发现了多种解决方案,但是每种解决方案都有其自身的缺点:

  1. 保持现状

    • (-)很难使用新的XSLT或版本进行扩展
    • (+)易于实现
  2. 将XSLT存储在数据库中

    • (-)很难有效引用其他XSLT
    • (+)易于更新XSLT或添加新的
    • (+)与主代码仓库分离
  3. 将广告连播链接到永久卷

    • (-)需要一个系统来处理新XSLT的上传
    • (+)可用于版本XSLT
    • (+)与主代码仓库分离

鉴于需要添加新的XSLT并且必须能够更新旧的XSLT,并且部署应该尽可能简单和顺利,这将是最好的解决方案。

1 个答案:

答案 0 :(得分:1)

这里还有两个可供考虑的选项:

  • 从XSLT文件创建一个configMap,并将其作为卷挂载,以便XSLT成为容器内的文件。限制为〜1MB(由etcd施加),但是XSLT文件不可能那么大。

  • 将XSLT文件存储在git等代码存储库,nexus等文件存储库或普通Web服务器中,并使用init容器从存储库中获取文件并将其放在共享的卷上在初始化容器和应用程序容器之间。 This example可能是一个很好的起点。