Version Control everything
Storing your Jenkins configuration and job configuration as code allows it to be version controlled, just like the software application under development. This makes it easy to update or roll-back a change in a controlled and consistent way and enables teams to collaborate on the pipelines.
There are several parts of Jenkins which can be configured as code: the pipelines, the job configuration and the Master (Jenkins server) configuration itself.
When ad-hoc GUI configuration becomes messy
It is very easy to get started with Jenkins freestyle jobs and updating the configuration entirely through the Web UI. However, things may soon become messy and unreliable this way, which is why you should always use pipelines and Infrastructure as Code (IAC). These concepts were included out of the box in Jenkins 2.0.
Read on to find out more