This is one chapter of a multi-part tutorial where we discuss how to integrate Azure DevOps with AWS.
You can host your Azure DevOps pipeline agents on Azure, on AWS, on GCP or on on-premises. Especially if you want to deploy your software to AWS environments, having your Azure DevOps pipeline agent in AWS makes security integration a whole lot easier. You can easily install an Azure DevOps agent on an EC2 instance and associate an IAM role with it. You can then grant just enough permissions to the IAM role to access AWS resources to deploy artifacts to AWS. This will make sure your agent always accesses AWS with temporary access credentials. In this tutorial we will show you how to install and configure an Azure DevOps agent on an EC2 instance.
Why do you want multiple Azure DevOps Agents?
All most all the CICD systems have a notion of an agent. For example, Jenkin is a one of the most widely used CICD system. It has a concept called a distributed builds that execute its pipelines through a set of agents. The need for multiple agents and reasons for separating them from the CICD platform itself are given below.
Dependency Management
The agent can be installed on different OS environments than the CICD platform’s operating system. This gives flexibility to run the pipeline on any operating system.
Azure DevOps agents support Windows, Linux and macOS. They can also run on Windows or Linux containers. For example, if you are building a Linux container, you want to have a built agent running the Linux operating system to build the Linux container image. Similarly, if you are building an iPhone app, you want your build agent to run on a macOS since you can’t build IOS apps on Windows or Linux environments.
Sometimes you want to have multiple build agents to build different versions of the same application. For instance, imagine you want to create two different versions of your application that depends on two different versions of a third-party library. If the two different versions of the third-party library can’t coexist in the same environment due to version conflicts, your only solution is to have two build agents in two different virtual machines. Each VM will host one version of the third-party library. Alternatively, you can host your Azure DevOps agents on two different containers each hosting one version of the library. If versions conflicts can be avoided by running the Azure DevOps agents in two different folders, you can also install Azure DevOps agents on two different folders but on the same machine.
Scaling
If you need more compute, memory or storage to execute the pipelines or if you want to increase the number of pipelines you run in parallel, all what you need to do is to add more build agents.
Isolation
Any changes that happen to the underlying operating system during the pipeline execution stay in agent’s operating system. This helps to keep a clean CICD platform.
This is one chapter of a multi-part tutorial where we discuss how to integrate Azure DevOps with AWS. For the next chapter visit AWS PowerShell tutorial
Pingback: Azure DevOps quick start tutorial for AWS DevOps engineers - Cloudopian
Pingback: Azure DevOps with AWS - Cloudopian