银行内部建了容器云,还需要像传统开发一样,仍然需要开发、测试、UAT、准生产等多套环境吗?未来从准生产环境容器镜像直接同步到生产环境还是手工?具体的上线流程是怎么样?
从实际使用的情况看,我的建议是针对应用开发人员,需要准备3套环境,分别是SIT、UAT和版本环境。这里的版本环境相当于一个准生产环境,和生产环境运行的应用版本和配置保持一致。容器环境下,镜像里只包含静态的数据和可执行文件,所有动态配置信息都抽取出来,作为配置项(比如K8S里的ConfigMap)保存,在容器启动的时候动态注入。从准生产环境到生产环境的镜像同步都是由自动化工具来实现,当然推送生产前有一个审批环节。应用在生产环境发布所需要的配置信息都提前在DevOps工具里配置好,也做版本管理。一旦审批通过,就可以由人工在DevOps工具里一键触发版本发布。
收起1、肯定会存在多套环境,镜像同步取决于镜像数据对于多套环境是否是一致的,一般情况下,不同环境的应用其配置信息(如数据库服务信息、NoSQL/缓存服务信息、请求域名URL、用户名密码等)是不一致的。配置信息可以通过以下技术解决1)配置中心(如阿波罗、disconf等)技术存储不同配置信息;2)云管平台配置解耦,提取应用配置信息,并在云管平台配置,通过环境变量插入配置信息并在容器内部进行替换配置,包括中间件配置和应用配置;3)应用包和镜像分离解耦,镜像是一致的,而不同环境应用包包含不同配置,变更发布时,使用应用包发布。
2、如果镜像数据是一致的,那通过镜像同步方式进行数据同步,并根据银行流程插入相关服务单、变更单等,云管平台对接ITSM等系统,并保存相关操作审计日志。
3、如果镜像数据不一致,那就需要在各自环境中制作镜像,并根据银行流程插入相关服务单、变更单等,云管平台对接ITSM等系统,并保存相关操作审计日志。