Jenkins is the way to keep IBM always-on

IBM + AOHCS + Jenkins

Submitted By Jenkins User Alec Rieger

When it was time to transition from Chef cookbooks to Ansible playbooks, IBM used Jenkins to stay consistent across the board.

Organization: IBM

Industry: infrastructure and software development

Programming Language: Node.js, Python, Ruby

Platform: Docker or Kubernetes, Linux, MacOS

Version Control System: GitHub, GitLab

Build Tool:  Ant, Rake

Community Support:  Spoke with colleagues and peers

Relying on Jenkins to keep projects consistent in
the way they’re built, tested, and versioned.

Background: Alec Rieger is a Lead Software Engineer for a department in IBM that is currently a Chef shop, an open-source cloud configuration that translates system administration tasks into reusable definitions, otherwise known as “cookbooks.” The team is in the transition to becoming an Ansible engine, open-source software that doesn’t rely on a client-server model.  Ansible takes difficult tasks and turns them into repeatable “playbooks,” simplifying matters greatly and speeding up production. “We have 500+ cookbooks and will have as many or more Ansible playbooks,” says Rieger. “We use Jenkins to simplify our testing, build, and deploy process. It helps us stay consistent across the board.”

Goals:  Simplifying the build and testing pipeline for our SREs and developers.

“Jenkins is a huge part of our DevOps journey. It allows us to streamline and standardize, so we can focus elsewhere.”
Alec Rieger, Lead Software Engineer, IBM

Solution & Results: According to Rieger, “We are currently running four Jenkins masters in different regions to keep them redundant. And we have eight agents per master because we are still running on virtual machines. We haven’t made the switch to containers yet, so we can spin up agents on demand.” 

Rieger’s team’s servers run builds on each Chef cookbook on a daily basis and handles countless jobs per day during normal work hours. “Our Jenkins setup allows for all of our projects to be consistent in the way it is built, tested, and versioned,” Rieger added. “Jenkins handles running the static code analysis, testing, and git versioning.” 

It also keeps the entire team aware of progress in real-time.  “Jenkins both emails and notifies via slack for successes and failures,” says Rieger. “So our team has insight into every build.”

Jenkins helps IBM manage many nodes on a large scale. “We use Jenkins pipelines for each of our builds,” adds Rieger. “The plugin community gives us a lot of flexibility and countless features that we can use to improve our processes.” 

And it has yielded great results, including:

  • consistent testing 
  • consistent builds 
  • insight into builds 
  • shortened development release cycles

Like what you see? Share your Jenkins user story today.

Jenkins® is a CD Foundation project and a registered trademark of Software in the Public Interest, Inc. Copyright Jenkins 2020