在这里我简单讲一下我们银行私有PaaS云平台的对于配置文件的处理。我们采用的是一个自研的“参数包”的模式,我们在自研的PaaS管理平台上,提供了一个“参数包”的上传功能,这个参数包里面主要是包含了配置文件的freemarker模版和相应的参数键和值。参数的键和值存放在参数包内的一个excel文件里面,在导入参数包的时候,我们会将Excel文件解析,并将数据存储到数据库中。
在容器编排时,我们会给容器编排一个统一的入口脚本(appstartup.sh),在这个脚本里面,我们会调用自研云管理平台的接口,下载参数包,并将参数包中的文件覆盖到容器相应路径下。这就实现了配置文件和容器的解耦。
当然,这种方式有一定局限性。首先要求所有的容器都有一个统一的入口脚本(appstartup.sh),这就要求组织内的应用容器的技术架构均是相似的,这个在我们银行内部是可以做到的,我们主要是基于JavaEE技术开发应用。再者,因为容器在启动的时候要调用云管理平台的接口下载参数包,这就对云管理平台的可用性产生很高的要求,一旦云管理平台挂了,就意味着容器启动不起来了。