Hacker News new | ask | show | jobs
by enasterosophes 702 days ago
I used to have the same issue, before it became my job to understand CI/CD tools. Previously, I was a research student for whom Linux, Git and programming were just hobbies; then my interests got me a foot in the door doing something that I found more rewarding: working on HPC and openstack.

Although I'd heard of CI/CD before, I only had vague ideas about what it really meant. Then I had to learn Jenkins, Gerrit and Puppet to do my new job.

I still don't use these tools for my personal side projects, partly because setting them up and maintaining them requires its own overhead. This overhead is easy to justify when you've got a team who is all sharing the resources and you're managing infrastructure with fleets of dozens or hundreds of servers, but it's less easy to justify as a "one man band."

Conclusions:

* Don't worry about it if these tools don't do much for you right now. Not everything is for everyone.

* It might end up making more sense if you get a job where you need to collaborate with other engineers and people are judging your business based on scalability and site reliability metrics.

When you do get a job that requires such tools, this is why the ones you mentioned are important:

* Chef (or Puppet, etc) are necessary to ensure your dozens of hundreds of servers all remain in sync with a consistent and reproducible configuration. We speak of "cattle not pets" -- in part, that means you don't configure machines individually, instead you enrol them into your configuration management system. The configuration management is stored in Git, so Git becomes your source of truth for how your whole fleet is configured.

* Jenkins: It's a featureful service for running a wide variety of automations without needing to rely on third-parties like GitHub runners. Eg when you are collaborating on code, Jenkins can provide automated reviews, like giving you a +1 if the linting checks pass. When you merge the code, Jenkins can run additional tasks like deployment.