Deploying Azure DevOps Artifacts to On-Premises Servers - Best Practices and Solutions

Deploying Azure DevOps Artifacts to On-Premises Servers

Question

Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.

After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.

You have an Azure DevOps project.

Your build process creates several artifacts.

You need to deploy the artifacts to on-premises servers.

Solution: You deploy a Docker build to an on-premises server. You add a Download Build Artifacts task to the deployment pipeline.

Does this meet the goal?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B.

B

Instead you should deploy an Azure self-hosted agent to an on-premises server.

Note: To build your code or deploy your software using Azure Pipelines, you need at least one agent.

If your on-premises environments do not have connectivity to a Microsoft-hosted agent pool (which is typically the case due to intermediate firewalls), you'll need to manually configure a self-hosted agent on on-premises computer(s).

https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops

The proposed solution of deploying a Docker build to an on-premises server and adding a Download Build Artifacts task to the deployment pipeline might not fully meet the stated goal of deploying artifacts to on-premises servers. Here are some considerations:

  1. Docker: Deploying artifacts via Docker would require packaging the artifacts into a Docker image and deploying the image to an on-premises server that has Docker installed. This might not be a feasible solution depending on the type of artifacts being deployed and the infrastructure available on the on-premises servers.

  2. Download Build Artifacts Task: The Download Build Artifacts task can be used to download the build artifacts from an Azure Pipelines build. However, it might not work as expected when used in a deployment pipeline to on-premises servers. This is because the task is designed to download artifacts from Azure Pipelines and might not have the necessary connectivity to access on-premises servers.

Therefore, the proposed solution might not fully meet the goal of deploying artifacts to on-premises servers. Alternative solutions that could be considered include:

  1. Deploying artifacts using a release pipeline: Create a release pipeline in Azure Pipelines that deploys the artifacts to the on-premises servers. The release pipeline can be configured with appropriate deployment tasks for the specific type of artifacts being deployed and the infrastructure available on the on-premises servers.

  2. Using a deployment agent: Install a deployment agent on the on-premises servers and configure it to communicate with Azure Pipelines. The deployment agent can then be used to deploy the artifacts to the on-premises servers directly from Azure Pipelines.

In summary, the proposed solution might not fully meet the stated goal of deploying artifacts to on-premises servers, and alternative solutions that leverage release pipelines or deployment agents might be more suitable depending on the specifics of the situation. Therefore, the answer to the question is "B. No."