Jenkins is the way to speed up the product development process

AI-powered Continuous Cloud Governance

Submitted By Jenkins User Erana Chandran
A cloud governance agency* *reduces DevOps workload and cuts software deployments from hours to minutes.
Team Members: Karthick K.,  Lead DevOps, Arun Kumar, DevOps Engineer, Sushmitha Ganeshraja, DevOps Engineer
Industries: Information Technology, Artificial Intelligence
Programming Languages: Node.js, PHP, Python
Version Control Systems: Bitbucket Server, GitHub
Community Support: Jenkins.io websites & blogs, Spoke with colleagues and peers

An innovator in cloud management solutions looked to rule out manual deployment errors by implementing CI/CD with Jenkins.

Background: Working for a company that provides an AI-powered multi-cloud governance solution, we empower enterprises to rapidly achieve continuous and autonomous cloud governance at scale. We also help customers to realize outcomes such as a 40% decrease in cloud costs and a 50% increase in operational efficiencies by governing operations, security, cost, access, and resources.

Our product has 35 repositories, multiple release branches, and 35 microservices that are performing the various required automated cloud operations in consumer’s cloud accounts (AWS, Azure, GCP). 

The team was looking to efficiently automate the operations outlined below:

  1. Always maintain code synchronization between two different Git-repository managers. 

  2. Track code changes in VCS 

  3. Build and maintain artifacts, Deploythem in multiple environments 

  4. Execute scripts for configuration management, production validation, and code quality 

  5. Trigger the Jenkins deployment based on Gerrit and Bitbucket actions

Goals: Our goal was instant code deployment, validation, and report generation to reach high-speed software development.

"With Jenkins, I am able to implement reliable multiple deployments in a shorter time and with less effort."
image— Erana Chandran, DevOps Engineer in Information Technology

Solution & Results: The various client requirements have rapidly increased the development of our product by 2.5 years. Usually, our product deployment has many steps, including the repository refresh, DB schema update, application-related scripts, etc. Initially, we started with a simple freestyle job for the repositories using the git plugin and polling. After defining the clean steps for deployment, we started implementing the Jenkins pipeline for the entire product deployment. We did Jenkins integrations with artifactory, cloud agents, Sonarscanner, Docker agents, Ansible VCS, and Microsoft Teams. 

We achieved continuous integration by integrating the Gerrit server with Jenkins. We also created the dedicated declarative Jenkins pipeline jobs to handle the entire deployment in different environments. We now have control over the deployment, and the pipeline reduced the deployment time. This dramatically improved the quality of the deployment. 

After every deployment, there are certain test cases and selenium-based validation triggered by Jenkins. 

In some environments, we are following CI-based deployment. In other environments, the job will be triggered through the Jenkins UI, Jenkins API, or Microsoft teams. Using Office 365 Connector and Extended Email notification plugins, we are getting the build results we hoped for. 

Apart from CI and On-Demand triggers, we also have timely jobs responsible for product health report generation and Sonarscanner code quality validation. Because of this Jenkins feature, we can control the frequency of builds. 

We used the following Jenkins capabilities:

  • Gerrit Trigger 

  • Office 365 Connector 

  • Azure Artifact Manager plugin 

  • Bitbucket Pull request Builder Plugin 

  • GitHub plugin 

  • Docker Pipeline 

  • Email Extension 

  • Pipeline 

  • Role-based Authorization Strategy 

  • Ansible plugin 

  • SonarQube Scanner plugin 

  • PowerShell plugin 

  • Command Agent Launcher Plugin 

  • MongoDB Plugin 

  • AWS Related Plugins

Our results?

  • Instant and multiple deployments without error

  • Made our lives easy on the artifact management process 

  • Automated script execution for code quality and product validation 

  • Reduced the DevOps team workload 

  • Converted deployment time from multiple hours to minutes 

  • Getting Jenkins build results in Microsoft Teams