Jenkins or Chef? Chef or Jenkins? You’ve likely heard mentioned these two DevOps tools before – they’ve been around for some time now. However, if you’re in a new role where they’re being used, or changing over project infrastructure to something new, then it might just be the first time that you’ll need to use them in practice. Or perhaps you’re a project overseer looking for new solutions to remove deployment pain points. Jenkins and Chef often get confused, or people assume that they can be used for the same purposes – however, this isn’t actually correct.
Both Jenkins and Chef can be incredibly useful and save time, so today we’re going to touch on what each of them can do – so you’ll have a more complete understanding of their role within a software project.
What is Jenkins?
Jenkins, at its core, is a continuous integration (CI) server. Continuous integration allows developers to update code to a repo once it’s complete – multiple times a day, and with multiple developers – removing the problem of having multiple different copies of the source code co-existing. A continuous integration server builds the software (and runs tests) with each commit to the code, essentially easily identifying bugs as they occur.
Jenkins is designed to be integrated with all popular version control systems (including Git and SVN) and build systems. Jenkins has a large range of plugins and removes the need to manually build software yourself. You can set custom build rules, build dependencies and more – it really is a highly configurable tool.
Companies using Jenkins include LinkedIn, GitHub, Facebook, and Etsy. If you’re not already using it now, then it’s time to jump on board.
What is Chef?
Chef is the ideal partner to use with Jenkins. Chef, in combination with Jenkins, or another continuous integration server, can be used for continuous deployment (CD). Continuous deployment means that you have production code ready with each change to the codebase that passes all tests. Essentially, any changes to the code can be delivered to the customer almost immediately (whether you choose to do this once a day, once a week, etc. is up to you).
Chef allows you create “cookbooks” which contain “recipes” that are used to describe how to deploy your application code to your servers (no matter what your configuration) – making your application go live.
Jenkins and Chef Integration
The integration between Jenkins and Chef allows you to create bug free application code, ready for deployment, at various points throughout the day (with Jenkins), and then actually deploy the code and make it go live with Chef (when you’re ready) – all in an automated fashion. With Jenkins and Chef working together (and configured correctly), you don’t have to lift a finger to have your application live.