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