×
×

Considered to be one of the key accelerators for driving rapid technological advancements, DevOps has emerged has a major driver for better application development, faster product releases and feature revisions based on customer feedback. It is estimated that DevOps can decreases time spent on resolving security issues by 50%, provide a 24x faster recovery rates from failures and 3x lower change failure rate.

One of the biggest advantages of DevOps processes is that it tries to eliminate development issues and bottlenecks by including QA, testing and technology operations directly in the development process through constant feedback provided in real-time.

While DevOps has become a ubiquitous practice, optimizing and streamlining DevOps processes remains a challenge. QuEST has been helping customers overcome inherent technical inefficiencies, siloed workflows or lack of standardization of tool sets and in effect, streamline their DevOps processes successfully.

The following example shows how QuEST helped a leading customer streamline their DevOps processes by leveraging Azure DevOps.

Challenge

For the customer, the main challenge was their legacy application along with an old installer used to build the package. The application was built in two different parts, one part used Jenkins and Git for build and source code management while the other part of the application used manual build and release. As the second part of the application was using TFS for source code management, it was old and not the most preferred solution for source code management.

The customer wanted a reliable tool to manage their source code. Thus, the objective was to provide the best possible solution that would address the unified build and release process for the entire application along with the traceability of each work item related to the application development.

As a solution, the QuEST team decided to use Azure DevOps as the most suitable solution vis-à-vis the customer requirements and overall feasibility.

How Azure DevOps (ADO) Helped

The team delivered the following solutions to address customer requirements:

  1. Source code management: Foremost, the customer wanted a unified source code management as they were using Git-hub for the one part of the application and TFS for the other part. The customer wanted to move the source code from TFS to Git-hub. QuEST experts helped to successfully migrate the existing source code from TFS to Git-hub with history. After migrating the complete application source code and hosting it on Git-Hub, QuEST team wanted to make sure that it could be integrated with ADO. The team used the service connection option available in ADO to achieve this.
  2. Application lifecycle management: The team suggested that the customer use the Azure Boards instead of current Jira tool as it was very simple and provided a unified view of the complete application development lifecycle. Not only was it very simple to setup and use, it also provided an option to link the Git-hub commits to the related Work Items which enabled the traceability with respect to source code and the development activities (for Work Item). This tool also enabled the relational link to different work items such as Epic-Feature-Stories-Tasks. Similarly, it also allowed link related work items such as bug-story. This ensured that users could trace from anywhere to the required point.
  3. Build and Release process: Since the customer used the build from Jenkins for one part and manual build for other part, they needed to ensure co-ordination between the two for a manual release. The requirement was to have a unified build and release to streamline the process. QuEST experts used the Azure Pipeline for the build for both parts of the application to create the unified release process.

The Azure Pipeline is user friendly and very effective for setting up the pipeline. This service provided the team with Classic and YAML based pipeline creation. When the team initially used the Classic Pipeline creation, it was very easy to setup as it could read the repo and depending on the source code it could automatically present with the set of steps. Once the steps were created, users could make changes as per requirement and create a final pipeline. Since the customer had a legacy installer, the team could leverage the rich set of extensions that ADO has. This enabled to build the legacy installer and streamline the complete build, and release process.

  1. Testing process: One of the challenges that the customer faced was the lack of a proper testing process in place. The QuEST team suggested using the Azure Test plan, ensuring that the DevOps process was fully complete. The Azure Test plan provided a placeholder to create different test cases, run these test cases against the application functionality, log and share the results. In addition, it provided the analysis of test runs and testers created a bug directly using the Azure Test plan service. It can also be used to automate test runs by integrating with Azure Pipeline

Outcome

The series of solutions mentioned above, transformed the DevOps process and provided a unified view of the complete process to the customer. The customer is currently in the process of implementing security features into the solution by integrating with SonarQube/Veracode.

Future prospects & Learnings

  • We can create automated test cases in any languages and can be integrated as part of current build and release pipeline.
  • We can create a template with respect to Build and Release pipeline steps and can be reused by different teams
  • We create a default pipelines (YAML files) which can used with respect to different languages (.Net/Java/Python etc) and different teams can pick these templates, modify the same and use it with very little changes as per the requirement which will enable to quickly adopt this technology
  • Going forward all the organisations look forward to moving to single point for management of their SDLC and streamline there build and release process
  • The best solution to achieve this is Azure DevOps which enables organizations to achieve their goals. As per our learning Azure DevOps is easy to learn and implement and provides lot of features.

Written by Vinayak Korti

on 02 Mar 2022

Vinayak Korti is a technology enthusiast and currently a Lead Engineer at Quest Global. He has worked as Technology Consultants in his past organisations. With over a decade of IT experience, Vinayak has worked in different technologies like application virtualization, application migration, AWS cloud, Azure DevOps , GIT, Jenkins, & knowledge on Kubernetes. He holds a Bachelors of Engineering degree from VTU Belgaum, and currently resides in Bangalore with his family.