在自动化编译和测试环境中最有挑战性之一的工作是让build尽可能地快,以便于得到更快地反馈,但是有深度地测试需要花费大量地时间来完成。部署管道(deployment pipeline)就是将build划分成不同地stage。前面地stage可以发现大多数地问题提供快速地反馈,后面地stage则需要花费较多地时间来定位问题。部署管道是持续交付地核心。
通常管道部署的第一个stage会进行编译并提供二进制文件给后面的stage使用。后面stage也许包括手工确认的部分,就是不能被自动化的部分。不同阶段都可以自动化,或者需要人为授权才能进行,可以在多台机器上并行操作来加速build的过程。部署到生产通常是pipeline最后一个stage。
部署管道更广泛的用途是探测会导致生产出问题的任何改变。这包括性能、安全或者使用方面的问题。部署管道应该可以加强各个团队之间的合作,让每一个人都可以清楚的看到系统的改变,还有一个完善的审计系统。
介绍持续交付最好的方法是使用管道部署来为当前的交付流程建模,然后检查当前的瓶颈在哪里,可以自动化的机会,以及可以合作的点。