Jenkins Icon

Jenkins Basics

Essential Jenkins for continuous integration and delivery

What is Jenkins?

Jenkins is an open-source automation server written in Java. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery (CI/CD).

Originally developed as the Hudson project, Jenkins was forked and renamed in 2011 after a dispute with Oracle. It has since become one of the most popular automation servers with a vast plugin ecosystem that extends its functionality.

Key Jenkins Concepts

Continuous Integration

Jenkins automatically builds and tests code changes, providing immediate feedback on the health of the application. This helps developers detect and fix integration problems early.

Continuous Delivery

Jenkins automates the deployment process, allowing teams to release software reliably at any time. This reduces the time between writing code and making it available to users.

Plugin Ecosystem

With over 1,800 plugins, Jenkins integrates with virtually every tool in the development and operations toolchain, from version control to deployment platforms.

Jenkins Architecture

Jenkins follows a master-agent architecture where the master node coordinates build activities and agents (also called nodes) execute the builds.

  • Master: The central Jenkins server that manages build scheduling, monitoring, and reporting
  • Agent/Node: Machines that connect to the master and execute build jobs
  • Executor: A slot for running builds on a node
  • Job/Project: A configuration that tells Jenkins what to build and how
Master Node
Scheduler
UI
API
Agents/Nodes
Agent 1
Agent 2

Jenkins Pipeline

Jenkins Pipeline is a suite of plugins that supports implementing and integrating continuous delivery pipelines into Jenkins. A pipeline is defined using a Jenkinsfile, which can be written in either Declarative or Scripted syntax.

Declarative Pipeline

A more recent feature that provides a simplified and opinionated syntax for creating pipelines. It's easier to learn and use, with predefined structures and validation.

Scripted Pipeline

The original pipeline syntax based on Groovy. It offers more flexibility and control but requires more Groovy knowledge and is more complex to write.

Benefits of Using Jenkins

For Development Teams

  • Early detection of integration issues
  • Automated testing reduces manual effort
  • Faster feedback on code changes
  • Consistent build process across environments
  • Easy rollback to previous versions

For Organizations

  • Increased development velocity
  • Higher quality software releases
  • Reduced time to market
  • Better collaboration between teams
  • Cost savings through automation

Getting Started with Jenkins

Setting up Jenkins is straightforward. You can install it using various methods:

Native Package

Install using platform-specific packages for Windows, macOS, or Linux

Docker

Run Jenkins in a Docker container for easy setup and isolation

Cloud Services

Use Jenkins as a service through cloud providers

Note: After installation, you'll need to complete the initial setup by unlocking Jenkins with an automatically generated password and installing suggested plugins.