Automation: Azure DevOps Deep-Dive for Azure

BLOG

Automation: Azure DevOps Deep-Dive for Azure

At Intwo, we believe automation is crucial for quality processes to minimize errors and limit operational overhead.

Through our DevOps methodology and automation standards, we helped one of our prominent customers, Brunel, overcome some of the issues they were facing when implementing a new service in Azure. The major benefits reaped through the automation method are detailed, along with a deep dive into how we recommend using Azure DevOps.

Azure DevOps

Overview

Brunel was looking to provide virtual desktop services for its workforce to enable them to securely access a multitude of regional and global business applications across the world. Brunel was providing similar services using traditional equivalents; however, efficiency, scalability, cost, and agility were major concerns.

There were also some operational complexities at hand. In addition to each region requiring different applications, the following had to be considered items:

  • Manual configuration of LOB applications
  • Legacy applications
  • Time consuming process to create the source image with all the apps installed and configured
  • Recurring operating system and application updates
  • Human error

As you can imagine, creating, managing, and updating the source images was a manual and time-consuming process which could easily over burden an IT department of any organization.

This is where Azure DevOps and automation comes to the rescue. If we look at the process, we see a lot of opportunities to automate recurring and repetitive tasks.

This enabled us to make and deploy changes, updates, and apply new features on the fly, across the globe, simultaneously, within a matter of hours- all without impacting user experience and availability of services. The same efforts carried out manually would have taken considerably longer and required many more resources.

The biggest benefits to the customer were the:

  • Time it saves operationally- For Brunel, we were able to reduce time for availability of the source desktop image from weeks to hours (3 and a half hours specifically), and for rolling out new fully configured virtual desktop infrastructure from days to minutes via automation.  The process for ongoing monthly patches has been streamlined for simple update rollouts.
  • Quality improvements- Repeatability between customer regions ensured the same infrastructure and configurations were deployed consistently. The automation was created once according to all requirements (sizing, security, compliance) and then run in all the regions. The human errors or variations between manual configurations that can typically happen was not an issue because the same code was used for every region.
  • Change tracking- Everything is tracked and time stamped. Every single deployment, edit, update, removal, etc. is documented. For example, there was an issue with a new Azure Virtual Desktop (AVD) host image that was being deployed and tested. The tracking within Azure DevOps gave us every item that was changed since the last known good image. We were able to track down the problem by simply rolling back the pertinent changes.

So, What is DevOps?

DevOps is a specific approach to lean and agile delivery of infrastructure or software- merging development and operations in a seamless manner.

How to Start DevOps in Azure

Once a DevOps initiative has been decided, it is easiest to start with a greenfield environment or project for the first deployment. Before deciding on a toolset, the overall process, teams, and logistics for the DevOps approach needs to be defined. However, when ready, take a look at the common toolsets for the type of environment or project. For example, if you are deploying resources in Azure, there are many tools available to help ease deployments with built-in integration and plenty of documentation.

At Intwo, for new Azure deployments and operations, our weapon of choice is Azure DevOps with Git repositories.

Infrastructure as Code (ARM Templates, CLI, PowerShell, Terraform etc.)

Infrastructure as Code (IaC) is the process of managing and provisioning Azure services through definition files (readable by Azure Resource Manager in case of Azure Cloud), rather than through manual interaction. There are several ways to achieve that on the Azure platform. The underlying platform is known as Azure Resource Manager.

Azure Resource Manager is the deployment and management service for Azure Cloud. It provides the management layer that enables you to interact with the platform in a programmable way to create, update, or delete resources.

Infrastructure as Code

There are several ways you can interact with this management layer. A few of them are list below:

  • Json Templates (ARM Templates)
  • Rest API
  • PowerShell
  • Azure CLI
  • Azure SDKs
  • Third-party tools such as Terraform/Packer.

You can use any of above, in any mix based on your requirements. Once you have selected your weapon of choice (ARM Templates, PowerShell etc.), you need to start penning down the resources required and a resource naming convention.

You can use IaC to manage the lifecycle of resources such as create, configure, update, and delete or retire.

Platform

Once you have started with code, you need a central place to store that code, and we have several choices available here as well such as

  • Azure DevOps
  • GitHub
  • Bitbucket
  • Microsoft DevOps Server (on Premises), formerly known as TFS Server

Each platform may have some unique features to distinguish it from others, but all the platforms provide some basic common functionality such as version management, branching, repositories, and access management. We prefer Microsoft Azure DevOps and from here on everything will be based on this service.

Repository

Commonly known as repo, is a place where all your code resides. You can have separate repos for different projects.

Repository

Branches

Branches make it easy to isolate work in progress from completed work, production from testing, and so on.

Branching Structure

A good branching strategy ensures that all changes are tested and verified before graduating to production. You can base your branching strategy on these simple rules:

  • New branch for new feature or bug fix
  • Keep a separate stable production branch

Use a good naming convention for branching for easy identification. For example:

  • Production/ReleaseV1
  • Acceptance/BugfixNameOrCode
  • Dev/FeatureNameOrCode

Pipelines (Build & Release)

So now that we have IaC (templates, scripts, etc.), we need a way to execute these- that’s where Azure pipelines come to play. Pipelines combine continuous integration and continuous delivery (CI/CD); testing could be added as well. Pipelines could be used to carry out different phases of infrastructure deployment, such as landing zones, services, and configuration of those services.

Pipeline Structure

You can organize your pipelines in strategic way, for example, by creating a pipeline to roll out a landing zone, separate pipeline for IaaS deployment and configuration, or you can create pipeline for development and production environments.

Pipeline Structure

Jobs

Pipelines are further divided into jobs, for example you can have a job to create a network, and second job to create VPN gateway, etc.

Jobs

Tasks

Jobs are further divided in tasks. For example, you can create a Virtual Machine (VM) in the first task and then add it to a domain in the next task.

Securely Store Credentials

Automating any deployment will require credentials into the environment. The storage and usage of these credentials is very important to ensure access into the environment is kept secure.

Storing credentials in an Azure Key Vault as Secrets is a great way to manage who or what can access them, track that access, and make sure they are available to your toolset.

Azure DevOps has a few different ways to integrate with Azure Key Vaults. A simple way to integrate is by creating a Library Variable Group in Azure DevOps. The specific subscription, key vault, and key(s) can be selected to use as variables within pipelines. The exact pipelines that can use the keys can also be specified to apply the principle of least privilege.

When the variable group is linked to the pipeline, the keys can be referenced as variables for any automation. At the beginning of the pipeline job, the current values of the included keys are fetched directly from the Azure Key Vault. This added layer of linking and fetching the credentials eliminates any need to store secrets, passwords, usernames, certificates, etc. in code or scripts.

Product/ Project Management

Another helpful component available within Azure DevOps is around management. Boards can be used within Azure DevOps to manage your work items, backlog, issue tracking, sprints, and more. Scrum and Agile methodologies are supported by default to make working among the entire team easier. Everything can be tracked in one place, which simplifies the entire DevOps process to have a single place to manage the technical deployments and project items.

Overall, Azure DevOps has enabled us to deliver repeatable processes and minimize errors, which ensures availability and reliability of the services and predicted outcome. There are many ways to automate and manage an environment, but for Azure resources, Azure DevOps has been essential for us!

Frequently Asked Questions

Yes, a Managed Azure provider such as Intwo can design and implement CI/CD (Continuous Integration and Continuous Deployment) pipelines for your applications. We automate your build, test, and deployment processes so that code changes flow from development to production with minimal manual effort. CI/CD pipelines are beneficial in reducing errors, accelerating releases, and maintaining consistency. Intwo works with tools such as Azure DevOps, GitHub Actions, or third-party services, in accordance with your development practices. Our goal is to enhance the collaboration between teams, reduce release cycles, and deliver reliable automation that scales with your business.

Yes, managed Azure teams at Intwo support infrastructure automation with Terraform, Azure Bicep and ARM templates. These tools allow you to define the cloud infrastructure as code which makes the deployments repeatable, versioned, and auditable. Terraform works well in multi-cloud environments, whereas Bicep and ARM templates work well in Azure. Our team chooses the appropriate tool depending on the project goals, complexity, and team expertise. By using infrastructure as code, you minimize the amount of manual steps, eliminate configuration drift, and streamline environments from development to production. We also help with versioning of templates, modular design and integration into automated pipelines.

Yes. One of the capabilities that Intwo’s Managed Azure Services offers is DevOps automation. This means that we support automated build, test, and delivery workflows, infrastructure as code, monitoring alerts, and delivery pipeline optimization. DevOps automation can help teams work faster, make fewer errors, and maintain consistency between the environments of each release. Included in our services are pipeline maintenance, version control integration, artifact management, and continuous improvement practices. By introducing automation into daily operations, we enable faster delivery cycles, more resilient operations and enhanced collaboration between development and operations teams.

Azure DevOps automation can be described as tools and practices which help automate repetitive tasks such as code building, tests, deployments, and infrastructure provisioning. It is important because manual processes take time, are prone to error, and are difficult to scale. Automation ensures consistency, accelerates release and enhances quality. For agile practice adopting teams, automation is the link between development and operations that allows changes to be delivered safely and quickly. Intwo assists organizations in implementing automation practices that alleviate bottlenecks whilst enhancing traceability and compliance throughout the software lifecycle.

Automation helps to improve the quality of deployment because it eliminates manual steps that could introduce mistakes or inconsistencies. Automated tests are carried out every time code changes, which helps in catching the defect early. CI/CD pipelines help standardize the way code is built, checked, and delivered throughout environments. Automated provisioning of infrastructure to the known good states configurations. These practices result in predictable deployments, simpler options for rollback and fewer surprises in production. Intwo is focused on the development of building automation that enables both speed and stability, thus deployments are dependable and reproducible.

Yes. Automation facilitates compliance and auditing through standardized and documented processes and configurations. Infrastructure as code and automated pipelines provide traceable records of changes, approvals and environments. This visibility makes it easier to show auditors how systems are configured and how changes were deployed. Automated testing and validation also help enforce policy compliance before code reaches production. Intwo helps design automation that aligns with your compliance goals, improves governance, and provides audit trails without adding manual overhead.

Common tools for Azure automation include Azure DevOps Services, GitHub Actions, Terraform, Azure Bicep, ARM templates, and Azure CLI scripts. Azure DevOps provides integrated boards, repos, pipelines, and test plans. GitHub Actions offers flexible automation with Git-native workflows. Terraform and Bicep help manage infrastructure as code. These tools work together to automate build, deployment, and environment provisioning. Intwo selects the most suitable tools based on your existing ecosystem, team skills, and long-term goals to deliver effective automation that grows with your business.

The timeline for automation depends on your current setup, complexity of workloads, and scope of automation goals. Basic CI/CD pipelines can often be implemented in weeks, while full infrastructure as code and advanced deployment strategies may take longer. Intwo starts with an assessment to understand your development workflows, tools, and bottlenecks. We then plan automation in phases so value is delivered early, while more advanced capabilities are rolled out with minimal disruption. Clear milestones and continuous feedback help keep the project on track.

No. Automation complements your development and operations teams rather than replacing them. It removes repetitive manual tasks so your team can focus on higher-value work like innovation, feature development, and system improvements. Automation increases efficiency, reduces errors, and supports faster delivery, but human oversight, strategic decisions, and creative problem-solving remain essential. Intwo works with your existing teams to augment their skills, deliver automation knowledge, and empower them with tools that boost productivity and reduce operational stress.

Once automation is in place, maintenance includes updating pipelines, reviewing templates and scripts, monitoring performance, and adapting to evolving requirements. Intwo provides ongoing support as part of Managed Azure Services, making sure automation keeps up with the latest software changes and platform updates. Regular reviews help catch deprecated tools, outdated configurations, or new optimization opportunities. With proactive maintenance, automation remains reliable, secure, and aligned with business demands.

X
Need assistance?
Let’s connect