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