Live data from Hacker News

Can we use Jenkins for that?

engineering.simondata.com

11–20 of 50 posts

Re: Can we use Jenkins for that?

#12
post #9
post #7

Does anyone consider Jenkins as a replacement to CRON?

We do at my work. It has much more robust options. You can keep multiple jobs from running at the same time if one takes too long. You can auto kill it after a time limit. You get a web UI for all logging from the job. You get great built in tools for auto deleting logs after a certain number of builds or time period. You get a very robust email solution for sending out alerts when jobs run or don't run or fail. It a…

it uses a huge amount of resources compared to cron, though, which is my biggest problem with this approach.

Re: Can we use Jenkins for that?

#13
This is actually my problem with Jenkins. It's great for running arbitrary jobs when triggered to do so. But it's super frustrating for managing many permutations of of the same class of jobs, with component tasks, permutations of different input, and orderly storage/display of output categorized on input. Or in other words: it sucks at building and testing software.

I'm almost to the point of using it just to manage generic "do X sort of stuff" tasks across many nodes, but the jobs that rely on an external system to run parameterized builds, and then the job then stores the results into the external system.

Re: Can we use Jenkins for that?

#14
Cool ideas here even though a lot of comments are pouring water on it.

Reminds me of this post by Ted dzubia where he uses makefiles for data processing [1].

I like reading about novel uses of tools other than their original intent.

1- http://widgetsandshit.com/teddziuba/2011/02/stupid-unix-tric...

Re: Can we use Jenkins for that?

#15
post #4

Eh, I'm sure there are many things Jenkins is OK at, but it's not that great of build server. The Multi-Configuration Project abstraction (IE build matrices) is clunky and the plugin ecosystem doesn't respect it well (eg. the Gerrit plugin is extremely popular but very brittle here). So you wind up with O(n) projects anyway and still needing to copy and paste configuration among them. Also Jenkins configuration itsel…

I agree with all this. Unfortunately I haven't found anything less bad :(

Jenkins + the Job DSL Plugin [0] has been amazing. We don't do any configuration in the web interface, instead everything lives in a groovy file on BitBucket. Every time we push a change Jenkins grabs it and auto runs the groovy file, regenerating all of our jobs. We have it set up so that a job is created for every branch in our repo, so much easier to work with. All a developer has to do to get his branch building is push it to the repo.

[0] https://wiki.jenkins-ci.org/display/JENKINS/Job+DSL+Plugin

Re: Can we use Jenkins for that?

#17
post #14

Cool ideas here even though a lot of comments are pouring water on it. Reminds me of this post by Ted dzubia where he uses makefiles for data processing [1]. I like reading about novel uses of tools other than their original intent. 1- http://widgetsandshit.com/teddziuba/2011/02/stupid-unix-tric...

Thanks sheraz - we certainly don't expect Jenkins to serve as core infrastructure for many of these problems long term.

Re: Can we use Jenkins for that?

#18
post #4

Eh, I'm sure there are many things Jenkins is OK at, but it's not that great of build server. The Multi-Configuration Project abstraction (IE build matrices) is clunky and the plugin ecosystem doesn't respect it well (eg. the Gerrit plugin is extremely popular but very brittle here). So you wind up with O(n) projects anyway and still needing to copy and paste configuration among them. Also Jenkins configuration itsel…

I agree with all this. Unfortunately I haven't found anything less bad :(

At work we use Jenkins Job Builder http://docs.openstack.org/infra/jenkins-job-builder/#content... to maintain jobs using JSON or YAML files. As a result we rarely have to deal with the Jenkins web UI and that's alright :)

Re: Can we use Jenkins for that?

#19
While not the best answer, I've used Jenkins extensively in the past for some rather creative purposes. Besides the standard "watch a SCM repo and react" type functions I've used it in combination with libvirt to spawn VMs self service for users (as well as coordinate the accounting and access control around this), watch an etag for a file to change in object storage and react, etc. I agree with some of the other commentary in that it's most useful aspects are around not using it with a traditional CI pipeline.

Re: Can we use Jenkins for that?

#20
The flexibility of Jenkins continually impresses me. Given :

1) Simple UI (for simple usecases) 2) Easy setup on single node or multi-node scenarios 3)Automation capabilities

Unfortunately there are some gaps that make it just enough of a pain to really take up in a Production 24x7 env.

1) In a distributed setup, there are very minimal node management capabilities unless you manually integrate with say Zookeeper or something.

2) the plugins for backing up and restoring configurations are "lacking" to put it politely

3) Very hard to change the Master machine in a master slave set-up

4)etc etc

So while Jenkins is a like the Swiss army knife for CI be careful that you don't take it to a (multi-node production) Gunfight - to stretch the analogy.

Post reply on HN