Jenkins is an open-source automation server that facilitates continuous integration and continuous deployment (CI/CD) of applications.
What is Jenkins?
Jenkins is an automation tool that allows building, testing, and deploying applications continuously, integrating multiple development tools.
Jenkins Architecture
Main Components
- Master Node: Main control node
- Agent Nodes: Executor nodes
- Jobs: Automated tasks
- Pipelines: Complex workflows
- Plugins: Functionality extensions
Job Types
- Freestyle Projects: Free projects
- Pipeline Projects: Pipeline projects
- Multibranch Pipelines: Multi-branch pipelines
- Folder Projects: Project organization
Pipeline as Code
Declarative Pipeline
Scripted Pipeline
Integration with Tools
Version Control
- Git: Integration with Git repositories
- GitHub: Integration with GitHub
- GitLab: Integration with GitLab
- Bitbucket: Integration with Bitbucket
Containers
- Docker: Image building
- Kubernetes: Deployment in K8s
- Docker Compose: Local orchestration
Cloud Platforms
- AWS: Deployment in AWS
- Azure: Deployment in Azure
- GCP: Deployment in Google Cloud
Related Concepts
- Docker - Containers that Jenkins builds
- Kubernetes - Platform that Jenkins deploys
- GitLab - Alternative platform
- DevOps - Methodology that Jenkins facilitates
- SecOps - Security operations
- SDLC - Lifecycle that Jenkins automates
- IAC - Infrastructure as code
- Security by Design - Secure design