Aitorch

Azure DevOps Migration

Jenkins CI/CD To Azure Devops CI/CD Migration

Quick Overview

Migration of Jenkins for their continues integration (CI) and continuous delivery (CD) to Azure DevOps for continues integration (CI) and continuous delivery (CD)

Client Profile

The client is a technology-driven company with a complex software environment. They have a large user base and frequently release updates to their applications. Their challenge was managing these changes efficiently, ensuring compliance, and reducing the time it took to get new features to their customers.

Client Requirements

The Client has been using Jenkins for their continuous integration (CI)/continuous delivery (CD) pipelines several years. They want to update their pipelines and better link them with other Azure services like Azure DevOps, Azure Kubernetes Service and Azure Container Registry etc. They are decided to migrate their CI/CD pipelines from Jenkins to Azure DevOps.

Aitorch Approach

The team of experts at aitorch started by providing the client with proof of concept of how the migration from Jenkins CI/CD to Azure DevOps CI/CD would work. After clarifying the doubts and shedding light on how the migration would work, Aitorch proceeded with the testing of the concept and gathered list of information about servers, environments, and Jenkins pipelines. With this information in hand, AiTorch proceeded with the below steps.

  • Azure DevOps Setup: They created an Azure DevOps project and organization.
  • Redesign of the Pipelines:We converted Jenkins pipelines to Azure DevOps pipelines. To describe build and release tasks, we developed YAML-based pipelines utilizing Azure DevOps tasks and templates for Build (CI) pipeline and We used classic release pipeline for CD pipeline.
  • Integration: They set up triggers to automatically start builds and releases when code is merged and link Azure DevOps with their source code repositories (such as Bitbucket, GitHub and Azure Repos).
Challenges
  • Build File Modification:
    Whenever developers change the source code from bitbucket repository, they are also trying to change the Build Yaml file, to avoid these changes we created one central repository to keep the build yaml file and called to the specific repository build pipeline.
  • Build Time optimization:
    We observed build time, for one build it is taking more time, to reduce the time we added one more stage in build yaml file that stage having script to extract only required build packages for a specific folder.
  • Publish Build Artifact:
    After completion of build pipeline, one Artifact is generated that artifact reads total repository. to overcome this issue, we publish only build stage generated files and folders.
  • Release Pipeline:
    While running cd pipeline if it is having any error, it is showing successfully deployed, but actual deployment is failed, so we used EXIT Status code for this issue.
Environments Used

Azure DevOps for CI/CD, Git for Source code management, Bitbucket for source code.

Conclusion

By successfully, Jenkins Pipeline Migration to Azure DevOps the client achieved their objectives of improving efficiency, scalability, and integration capabilities of our continuous integration and continuous deployment (CI/CD) process.