構建服務器和基礎設施即代碼
當我們討論Jenkins文件結構的時候,要知道在基于像Jenkins這樣的圖形用戶界面工具和DevOps的基礎設施即代碼原則之間經常會發生阻抗失配(impedance mismatch)。
理解這個問題的一種方法是:雖然Jenkins任務描述器基于文本文件,但它們并不是改變任務描述的主要界面,web界面才是。這種方式利弊參半。
Jenkins的既存構建之上創建定制的解決方案很容易,并不要求你非常熟悉Jenkins。
另一方面,Jenkins的開箱即用缺乏我們在程序世界中常用的許多功能。例如繼承甚至定義函數這樣的基本功能在Jenkins里需要大量工作。
GitLab的構建服務器功能,用的是另一種方法。構建描述器從一開始就只是代碼。如果并不需要Jenkins提供的所有能力,GitLab的這個特性值得你一看。