Jenkins
Jenkins
Jenkins is an open-source automation server for running non-interactive server tasks — typically used to automate the software processes related to building, testing, deploying, and running programs on a pre-defined schedule or in response to triggers.
Jenkins & your business
Jenkins can be used to implement continuous integration and continuous deployment (CI/CD) pipelines. These pipelines build, test, and then provide for automatic deployment of your software, greatly improving development efficiency and preventing the myriad of mistakes that can happen during a manual deployment. Pipelines might also be used in production, for managing data-transformation processes, and all manner of scheduled tasks running in the background of your software eco-system.
Jenkins is also a great tool for running background tasks, compared to most of the built-in Windows task schedulers or Linux cronjobs. It provides simple configuration that ensures failures are identified and proactively notified, and captures logs to ensure that technical staff have all information on hand to diagnose any problems or audit historical behaviour.
Why Jenkins?
- Is open-source, and typically takes the tag-line as the leading open source automation server
- Can automate server scripts and schedules, and record and notify logs and status
- Can build and deploy projects, including pre-processing and post-processing, a useful option when a commercial alternative hasn't been licensed
- Can integrate webhooks to trigger external systems, and be triggered by external systems
- Extensive logging — advanced tracking and diagnosis
- Alert notifications (email, messaging) for task status and rapid response to issues
What does it mean for us?
At Canary, we don't actually use Jenkins to build and deploy projects — we use commercial alternatives for that — but where we make extensive use of Jenkins is for scheduling automated tasks in production, and extensive maintenance schedules. This setup gives us a full history of all executed tasks (which are structured and accessible) and offers alert notifications for any processing exceptions.
We usually pair Jenkins with custom server scripts and verbose logging, to provide improved visibility on background tasks.
So if our development or support team mentions Jenkins, they will be referring to the automation, maintenance, and background tasks supporting your project, and scheduled or triggered within a Jenkins-based system.