Skip to content

Basics of Jenkins

Jenkins is free tool and is considered one of the important tool for DevOps related activities. It is  written entirely in Java language.

Before we move further we need to understand one key term “continuous integration/deployment”

What is continuous integration/deployment

  • You have a large team of 15 developers.
  • Code is changed and committed many times in a day
  • “Commit” means code will be “build” and tested
  • If “testing” is good, then build is tested for deployment
  • If “deployment” is good, you will plan for Production push

So this commit, build, test, and deploy is a continuous process and can be name as “continuous integration/deployment”

Let us add few more complexities/factors:

  • Your developers are not of same skills, so some can deliver work faster but still have to wait for others to prepare final “build” for testing. Code commit is being done all at same time
  • All developers are working simultaneously so it is not an easy task to isolate, detect, and fix errors for multiple commits done by these developers
  • Code built/test is manual so high chances of manual errors
  • Client is complaining as your development cycle is slow

Your developers are tired of building the code and fixing errors repetitively  and because of all the above complexities you thought to help them by providing them some kind of robotic tool/process or some automation server so that repetitive manual efforts is saved.

Jenkins is one such automation server.  It is an open source Continuous Integration server capable of orchestrating a chain of actions. Jenkins was originally started with name of “Hudson”  in 2004 by Sun Microsystem. Jenkins was born out of Hudson in 2011 and become much more popular than Hudson.

How Jenkins runs:

It is a server-based application and requires a web server like Apache Tomcat.

Why it is becoming so popular now a days:

  • Jenkins supports the complete development lifecycle of software from building, testing, documenting the software, deploying and other stages of a software development lifecycle.
  • It helps in automating the tasks and keeps monitoring the tasks which are part of your development cycle.
  • Jenkin will build and test code many times during the day. If build is successful it will deploy code and send notification of failure/success
  • Fast and automated code build means less manual errors
  • It keeps record of each build so you can easily track that which developer code change caused errors/issues.
  • Development cycle is fast and new features can be rolled in faster

So, at the very basic level, below will be the pictorial view of where Jenkins fits in.

jenkins gthub flow

Other key advantages of Jenkins Tool:

  • Awesome tool for your Cloud-based architecture as it gels very well with Cloud approach
  • It is a very well managed tool with latest enhancements done regularly
  • New plugins are getting developed which are making Jenkins more powerful

Yes, installing/configuring/administering Jenkins do require some efforts/skills but benefits outweighs any disadvantages like outdated UI and efforts required in administering it.

Brijesh Gogia

One Comment

  1. Anonymous Anonymous

    Very good Post. Good effort

Leave a Reply