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:
Always maintain code synchronization between two different Git-repository managers.
Track code changes in VCS
Build and maintain artifacts, Deploythem in multiple environments
Execute scripts for configuration management, production validation, and code quality
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."
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