Been working with Jenkins for years until I saw the light in tools like Travis, CircleCI & Drone; an open source, container-based, fast, stable, and plugins are a breeze. So, when I see docker oriented companies, with no super custom processes use Jenkins, I can’t help but ask myself, WHY?
3. Waste
● Locate a job
● Run the wrong one
● Cancel
● Find the right one and run it
● But it fails....
● Check the logs
● Manual changes are required
4. ● Trigger by webhook or a command
● Jenkins file
● DSL
But things are still missing - easy scale,
plugins dev, self healing, servers are
not stateless
Improving the Jenkins process
And seriously, groovy??
5. Drone to the rescue!
(or CircleCI / TravisCI / GitlabCI / BB pipelines…..)
Why Drone?
Written in Golang, open source, super easy to set up,
And basically just an awesome tool to work with
8. The power of controlling your
own relational DB
● Stateful decoupled system
● Easy to backup
● Easy restore
● Measureable
● Queryable
9.
10. Bottom line
Don’t fixate on the one thing
everyone is using
● Use what best suits you
● Remove waste
● Focus on innovation
Editor's Notes
Hi there! My name is Omer and I’m going to talk about why you don’t HAVE to use Jenkins for your CI/CD the last time I tried talking about Jenkins on Reddit I got so much personal attacks and hate that I wouldn’t be surprised if this happens today,But please! Try to hold yourselves
Like I mentioned - my name is Omer, I work at ProdOps.io (formerly Devops IL) if you haven’t heard of us come talk to me afterwards
Let’s talk about waste, I wanna take you a very common scenario I’m sure some have walked through in the past
Say you’re looking for the job that builds your favorite environment by the name “Build DEV-ENV”
So you go ahead to this very nice search bar and use its fuzzy search to find your job, you click the first option and run it
But oh - you started it with the wrong parameter! This is DEV-3!
So you cancel it, find the correct one and run it
Taking a look on the logs you see this one also fails
You check why and find that it had already created an entry by the name DEV-2
This whole process was a waste of time, energy and frustration
Everything is a container with Drone: masters, agents, plugins and every step in every pipelineYou just choose an image and run it with a set of commands or parameters in case of a plugin
Drone has a great and wide market of plugins contributed by the community and its creators
Its not as big as Jenkins’s but in case you don’t find what you’re looking for, creating your own is as simple as throwing code in your favorite language in a container of your choice and letting it run and die
Drone uses and external relational DataBase (you can choose one a few options), this means a few things (listed)
Here’s an example connecting the DB as a backend to grafana and running simple queries over applications speed of development, progress of devlopers, sucess/fail ratio etc