Python 如何在微服务中存储版本化的XSLT文件
目前,我正在开发一个微服务来处理XMLs(和其他格式的转换,但目前这些并不重要)。对于XML到XML的转换,我使用一个描述转换的XSLT文件。这个XSLT引用了其他XSLT文件,可能在一年后会有一个新版本。现在,微服务在docker容器中运行,该容器使用kubernetes提供服务。XSLT现在嵌入到repo中,因此也嵌入到docker容器中,但是如果我想更改某些内容,我必须重建并重新部署服务。为了解决这个问题,我找到了多种解决方案,但每种解决方案都有各自的缺点:Python 如何在微服务中存储版本化的XSLT文件,python,xml,xslt,openshift,Python,Xml,Xslt,Openshift,目前,我正在开发一个微服务来处理XMLs(和其他格式的转换,但目前这些并不重要)。对于XML到XML的转换,我使用一个描述转换的XSLT文件。这个XSLT引用了其他XSLT文件,可能在一年后会有一个新版本。现在,微服务在docker容器中运行,该容器使用kubernetes提供服务。XSLT现在嵌入到repo中,因此也嵌入到docker容器中,但是如果我想更改某些内容,我必须重建并重新部署服务。为了解决这个问题,我找到了多种解决方案,但每种解决方案都有各自的缺点: 保持现状 (-)很难用新的X
- (-)很难用新的XSLT或版本进行扩展
- (+)易于实现
- (-)很难有效地引用其他XSLT
- (+)易于更新XSLT或添加新XSLT
- (+)与主代码repo解耦
- (-)需要一个系统来处理新XSLT的上载
- (+)可用于设置XSLT的版本
- (+)与主代码repo解耦
鉴于需要添加新的XSLT,旧的XSLT必须能够更新,并且部署应该尽可能简单和顺利,那么最好的解决方案是什么呢
- 从XSLT文件创建一个文件,将其作为卷装载,以便XSLT将成为容器中的一个文件。有~1MB大小的限制(由etcd强制实施),但XSLT文件不太可能有这么大
- 将XSLT文件存储在代码repo(如git)、文件存储库(如nexus)或普通web服务器中,并使用容器从repo获取文件,并将其放在init容器和应用程序容器之间共享的卷上。这可能是一个很好的起点
emptyDir
()