传统金融行业内不同环境相互的网络隔离是非常常见的场景,在此背景下,要做到测试域与生产域的Ops往往会选择与传统互联网不同形式的持续部署方式。
传统互联网会以鉴权被基础,打通测试到生产的网络通路来完成持续部署,而网络隔离的金融行业往往会选择在生产域内单独部署一套持续部署系统,通过从生产域往测试域拉取源码或集成物的方式来进行部署,随之而带来的问题是测试与生产域内多套持续部署系统带来的部署集成功能的不一致性。
问题:有什么好的方案可以做到两种方案的折中?
由于历史和组织架构原因,银行体系内开发和运维经常是两个不同的部门,有各自的规范,这个是与DevOps概念相违背的。
但是考虑到兼容问题,虽然我们在工具、规范层面无法统一,那就需要在对接的时候让流程更规范。根据业务场景来看,开发和运维之间交付的内容为制品,对于交付物是否透明,是否能涵盖所有信息是金融行业打通组织架构与网络环境的纽带。
目前头部银行在做devops是,制品交接是非常重要的过程。一般是由运维定义交付制品的标准(版本、文档、元数据、测试通过率报告、安全报告等),由开发将这些内容构建成标准交付件,通过制品库自动同步到生产环境。并在过程中完成一致性校验,避免倍篡改。