这种情况很金融企业很类似,金融企业是因为区域的隔离,所以要求jenkins以不同参数的方式进行build。
一般情况下,持续交付流水线贯穿了业务需求、环境适配,研发、测试、安全、运维,最后上线,完成狭义上的“产品级”制品的交付,这个流程是没问题的。在多套环境下,举个例子,sit环境,pre环境,uat环境,prd环境。其中sit在办公区,pre在测试区内,uat和prd在生产区,可能每家机构都不太一样。那问题来了,全流程贯通,如何实现,是分开跑,还是集成在一起。
回答这个问题之前,需要考虑一件事,其实不仅仅是流水线,更重要的是组件库和制品库,制品库包括了war包,容器镜像之类的,也是受到网络隔离的影响。
笔者所在的机构是这样的,多个区域的网络限制虽然是物理隔离的,但物理隔离的区域有数据的交换空间,制品库和组件库通过这个交换空间进行数据同步和传输,举个例子,一个上线流程通过OA发起,OA在办公区内,流程数据和状态同步至DevOps平台的上线策略模块,执行上线计划的时候,会触发制品标签,发sit会去sit包,发prd会去取prd包。这种情况下只要保证交换区的网络安全和信息安全,便不会出现问题。