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.
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.
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