CI servers are there for quite some time and I always admired them, even though I never get a chance to implement them until now. Even in my past organisations they had CI setup which always kept out of reach from developers. So now I get
a chance to implement jenkins and use it extensively(I always feel setting up CI server is not part of my job but now things changed).
I don’t want to explain what is CI and why you need them and how you use them. You can easily get these information just from Google the keyword. All I am going to explain here is how I chose one, how it went and what I felt.
How I choose?
This was obvious. My last company had jenkins installed and running fine. From there I started researching about it. And whenever someone say CI, jenkins is what comes up to my mind. The process went like this. I setup jenkins in an hour and started using it. Was settled with everything and now, I wanted to see if there is any other worthy opponent is there for jenkins and wanted to try them. Reverse, isn’t it? So my search begins, and to my surprise only one worthy open source contender was GO, which is not pure CI, but CI-CD tool. After banging my head for a couple of days setting up Go and fiddling with it, this is what it came to my mind. This is too much for my requirement. So, this is how I settled with jenkins.
I am quite surprised here, as CI space is fully occupied with commercial or hosted solutions and jenkins win OS space easily. Just my thoughts.
How it went?
Setting up a job and configure anything is as easy as it gets with jenkins. I am not lying. Plenty of documents and good community support is essential for an OS project and jenkins have them, which is spot on and make your life easier when it comes to do what you need to do. You have plugins for almost everything you can think of(CI wise). But at some point what makes it shine, makes it a weak link. Almost for everything we need plugins. It would be better if upcoming versions have some most commonly used plugins bundled with it. If this was the case, my title would have been Why I LOVE Jenkins CI. But love is too strong for Jenkins as of now.
I had to create 2 jobs, 1 for build and 1 for delivery. Tied them up with downstream and viewed using Delivery pipeline. The whole configuration took me couple of hours(mostly fiddling with options) and in the end all went well. This is my first encounter with jenkins and never once I felt I made wrong choice. Be it setup or build jobs everything went as expected and I never had this kind of success with any OS tool or framework(Can’t forget the nightmare we faced while setting up Spring framework POC :pathetic). So overall it went very well, and surprisingly amazing.
What I felt?
The only other CI tool I worked with is GO and there is no comparison between them as it is opposite end of spectrum(except the CI part, GO is mainly CDD tool). So here is what my observations and thoughts.
* Surprisingly easy to setup and configure jobs.
* Awesome developer support and documentation along with good community.
* Abundant plugins and more to come will make certain tasks easier.
* Multi-node setup was easy to setup and works as it should be.
* Load sharing between nodes is good and come handy.
Overall, for the first time I feel like I’ve made a wise choice by going with jenkins. And it serves me well. I would for sure suggest jenkins to anyone who in need of CI tool which is easy to setup and maintain.