Transforming desktop product builds: Achieving CI/CD with Azure DevOps and paving the way for AVEVA Unified Engineering Online

Posted: December 13, 2023

In the world of software development, embracing continuous integration and continuous delivery (CI/CD) has long been considered the gold standard. CI/CD is primarily associated with the rapid deployment of web applications—but what if I told you that this powerful methodology could also be harnessed to revolutionize desktop product builds?

I want to dive deep into our journey to achieve CI/CD for our desktop product builds using Azure DevOps. This transformation has not only significantly reduced build times; it’s elevated the overall quality and security of our product suite. We also have ambitious plans to take this transformation to the next level by introducing AVEVA Unified Engineering Online, a web-based platform that will make the power of the AVEVA™ Unified Engineering suite available to users around the globe through a standard browser.



The Azure DevOps transformation
 

1. Streamlined builds

With the introduction of Azure DevOps into our workflow, we managed to slash our build, test and release times dramatically. What once consumed several days—and sometimes even weeks—while we fixed problems and issues and passed (usually manually) through several quality gates, now takes a mere three hours to complete.


This monumental improvement in build efficiency has provided our development teams with the agility to iterate more swiftly and release updates more frequently. It’s also increased the overall happiness of our R&D teams. 

2. Comprehensive test suite

Central to our CI/CD journey is our exhaustive testing strategy. We've transitioned from relying mostly on manual testing to large-scale test automation, which encompasses the following categories:

  • Unit tests: Ensuring the functionality of individual components.
  • Integration tests: Verifying the harmonious interplay of different parts within our product suite.
  • Automated UI tests: Emulating user interactions to validate the user interface.
  • Installation tests: Confirming a seamless, error-free installation process.

3. Static analysis

Code quality is paramount in maintaining a robust and sustainable codebase. To identify and rectify potential issues proactively, we've incorporated static analysis tools into our CI/CD pipeline. This practice helps us maintain a clean and maintainable codebase, reducing the risk of future problems.

4. Security first

In today's cybersecurity landscape, security cannot be compromised. To fortify the security of our desktop product suite, we've seamlessly integrated several security tools into our CI/CD pipeline, including:

  • Attack Surface Analyzer: Scrutinizing the software's attack surface to identify potential vulnerabilities.
  • Binskim: Scanning binary files for security vulnerabilities.
  • Polaris on Coverity: Conducting static application security testing (SAST) to pinpoint security vulnerabilities within the source code.
  • Black Duck: Scanning for open-source software components to detect known vulnerabilities.

5. Automated artifact publishing

Upon the successful completion of our build and testing stages, we automatically publish artifacts to Azure DevOps Artifacts. This ensures that the latest and most stable versions of the AVEVA Unified Engineering suite are readily accessible to everyone across the organization.

6. The ACID tool

To further facilitate the accessibility of our builds to teams across the organization, we've developed an internal tool called ACID: ACID CI/CD Integration and Delivery (don’t you just love recursive names?). ACID simplifies the process of evaluating and utilizing the latest and most optimal versions of AVEVA Unified Engineering, enabling teams to stay current with minimal effort. This is something that I’m super interested in releasing to the open-source community, as I’m sure others can benefit from this.

7. Reusable YAML templates

Investing a considerable amount of effort into the creation of reusable YAML templates has been instrumental in our CI/CD journey. These templates streamline the configuration and deployment process for all teams, ensuring consistency and minimizing configuration overhead.

8. Breaking up the monolithic codebase

In our pursuit of excellence, we've invested significant time and effort in breaking down the monolithic codebase into smaller, reusable, versioned, and rigorously tested components. This modular approach enhances code maintainability, fosters collaboration, and paves the way for more efficient development and deployment.

 

Paving the way for AVEVA Unified Engineering Online

We're not content with merely transforming our desktop product builds; we have grand plans for the future. We're excited to introduce Unified Engineering Online, a web-based platform that will make the power of the AVEVA Unified Engineering suite accessible to users worldwide through a standard web browser.


This development eliminates the need for users to install desktop applications, and allows us to achieve not only continuous delivery but also continuous deployment. It will enhance user convenience while enabling us to roll out updates and enhancements more seamlessly.

 

The future beckons

Our journey from arduous desktop product builds to streamlined CI/CD processes with Azure DevOps has been a remarkable transformation. We've not only accelerated our releases, but also fortified the security and quality of our software.

As we look ahead to the introduction of AVEVA Unified Engineering Online and continue to fine-tune our CI/CD pipeline, we're excited about the boundless possibilities it offers for the continued success, innovation, and global reach of the AVEVA Unified Engineering suite.
 

But none of what I’ve described is limited to AVEVA Unified Engineering. Across the organization, other teams and products are moving to a full CI/CD approach, with all the benefits that brings. Stay tuned for even more exciting developments in the future as we continue to evolve and adapt to the ever-changing landscape of software development.

Contact AVEVA
Live Chat
Schedule Demo