Background: My team and I work for a company with a lot of software engineering expertise. It’s leveraged that expertise to become a leading global product development, digital platform engineering, and top digital and product design agency. Plus, we were ranked as the top IT services company on Fortune’s 100 Fastest-Growing Companies list in 2019 and 2020.
My team is based in Mexico, but there are teams all over the globe serving customers in more than 35 countries. With that many projects and worldwide collaboration, mistakes can happen. We knew that we needed to limit necessary maintenance within Linux, Windows, and AIX environments and reduce human errors and execution times associated with routine activities to help the team focus on more valuable activities.
Goals: To reduce support response by 70% and maintenance activities by 90%.
"Jenkins makes it easy for new team members to execute laborious tasks with almost no training."
Solution & Results: We implemented Ansible to make the script coding more efficient, and once the solution was shown to the team, we decided to use Jenkins as a front-end to reduce cost. Then we implemented Jenkins to schedule the routine tasks as backups or bouncing activities during application rollouts. Once we discovered Jenkins' power, we started to move some of our application rollouts inside Jenkins for Windows applications, formerly performed manually. We created projects for specific users to perform support tasks, such as adding users from the database and implementing Selenium from the front end.
Our maintenance activities included bouncing multiple servers: three servers in each region, which needed to be bounced in a specific order. Sometimes, when we performed the task manually, we had some issues if the engineers forgot the order. We solved these manual issues with Jenkins automation and by adding some recovery jobs and QA checks.
My team and I performed all of these activities even though we are just a small group in a big corporate organization. We started trying to increase our own productivity and, later, began implementing, training, and creating DevOps tools for other teams in the organization at the end of the day.
I can see myself using Jenkins as a silver bullet throughout my career. Every time there is an activity I must perform more than two times a day, I’ll draw my Jenkins revolver and make things happen. Thanks to Jenkins, I’m more efficient and can enjoy my work.
Here is the shortlist of the key Jenkins capabilities we used:
Schedule system
User control integration with LDAP
Multi-platform support
Ansible integration
Multi-language support
Groovy lang pipelines
Results were excellent, and included:
maintenance task reduced from 16 hours on average to only 2 hours
users creation time reduced from 15 minutes to only 2 minutes
human error mistakes in maintenance and bounce activities reduced to zero
the creation of a well-tracked and controlled development cycle to our scripts