Seamless Integration with Azure DevOps - Developing and Deploying .NET Applications on AWS

This whitepaper is for historical reference only. Some content might be outdated and some links might not be available.

Seamless Integration with Azure DevOps

The main integration point for Azure DevOps with AWS is through Azure DevOps pipelines. You can configure Azure DevOps pipeline to build, test, package and release software to different AWS environments. You can use the following methods for this integration.

AWS Tools for Azure DevOps

AWS Tools for Azure DevOps is available on the Azure DevOps Extension Marketplace. To install these extensions, navigate to the Extensions Marketplace through Azure DevOps. You can also install them on your on-premises Azure DevOps Server.

After installation, you can choose from a set of pipeline tasks that can be included in your pipeline to integrate with AWS.

These building blocks can then be used to construct complex deployment pipelines. The following figure shows an example pipeline designed to build, test, and publish an ASP.NET Core web application to an AWS Elastic Beanstalk environment.

An example pipeline designed to build, test, and publish an ASP.NET Core web application to an AWS Elastic Beanstalk environment.

Pipeline for building, testing, and deploying an ASP.NET Core application to AWS Elastic Beanstalk

Pipeline step descriptions

  1. Executes .NET Core build task, such as Git pull

  2. Executes .NET Core build task

  3. Executes .NET Core test task

  4. Executes .NET Core publish task

  5. Copies an AWS Elastic Beanstalk manifest file into the bundle

  6. Creates a zip archive from newly published website content.

  7. Uploads the zip archive to an S3 bucket.

  8. Deploys the application in an AWS Elastic Beanstalk environment.

Custom Scripts

If you need functionalities beyond those provided through extensions published by AWS, or if you need more fine-grained control over your pipeline, you can use AWS CLI or AWS Tools for Windows PowerShell to create a custom task or step in Azure DevOps pipeline.