Jenkins key points — part 1
Jenkins is an open-source server that automates and controls several stages of the software integration and delivery process, making it one of the most widely used CI/CD tools. It integrates seamlessly with other tools, making it versatile and easy to use.
To install Jenkins on a server, Java must be installed, and the minimum hardware requirements are:
- 256 MB of RAM
- 1 GB of drive space (although it is recommended to have at least 10 GB if running Jenkins as a Docker container).
Jenkins can be installed on Linux, Windows, Mac, and other systems. More information on installing Jenkins can be found here. Once Jenkins is installed, it can be accessed through a web browser using the default port 8080.
There are some essential terms and concepts related to Jenkins that users should know, including:
Jenkins Pipeline: This is the combination of step-by-step actions and plugins that support the CI/CD process. Pipelines can be created directly through the user interface or by using a Jenkins script. A Jenkins script uses a Groovy-compatible text-based format to define pipeline processes and can be either declarative or scripted.
Jenkins Job/Project: This consists of a combination of operations and tasks that define the pipeline.
Jenkins Controller: The Jenkins architecture supports two models. It can either be a standalone server that performs all tasks, or it can have a Jenkins controller-agent architecture, in which the controller server is the brain that assigns tasks to agent servers.
The standalone architecture is a simple model in which a single server performs all tasks related to building, testing, and deploying software. This model is suitable for small projects where only a few people are involved in the development process.
The controller-agent architecture, on the other hand, is a more complex model that is suitable for large-scale projects. In this architecture, the Jenkins controller server acts as the brain of the system and assigns tasks to agent servers. The agent servers perform the actual work of building, testing, and deploying the software. This model allows for distributed processing and can handle a large number of tasks simultaneously.
Jenkins Agent: It can be a physical machine, virtual machine, cloud computing instance, Docker image, or Kubernetes cluster. An Agent server must have Java installed in order to run build jobs.
Jenkins Plugins: These are application modules that integrate with the Jenkins server to enhance and extend its functionality. Examples include the Jenkins Backup plugin and the Docker API.
Jenkins Shared Library: A Shared Library in Jenkins is a collection of Groovy scripts shared between different Jenkins jobs.
Jenkins X is an extension of Jenkins that relies on a command line interface or application programming interface. It meets the needs of Kubernetes and cloud-native platform users by having all the necessary plugins installed to run Builds and more. Check out Jenkins X documentation for more information.
To learn more about Jenkins visit Jenkins documentation.