Release Management is a service that helps your team continuously deliver software to your customers at a faster pace and with lower risk. You can fully automate the testing and delivery of your software in multiple environments all the way to production, or set up semi-automated processes with approvals and on-demand deployments.
The Release Management service stores the data about your release pipelines, stages, tasks, releases, and deployments in Azure Pipelines.
When a new deployment request is triggered, Azure Pipelines checks whether a pre-deployment approval is required before deploying a release to an environment. If it is required, it sends out email notifications to the appropriate approvers.
Azure Pipelines schedules the deployment job on an available automation agent. An agent is a piece of software that is capable of running tasks in the deployment.
An automation agent picks up the job. The agents for Azure Pipelines are exactly the same as those that run your Builds in Azure Pipelines. An Azure Pipeline can contain settings to select an appropriate agent at runtime.
The agent downloads all the Artifacts specified in that release (provided you have not opted to skip the download). The agent currently understands two types of artifacts: Azure Pipelines artifacts and Jenkins artifacts.
The agent then runs all the tasks in the deployment job to deploy the app to the target servers for a stage.
The agent creates detailed logs for each step while running the deployment, and pushes these logs back to Azure Pipelines.
When deployment to an environment is complete, Azure Pipelines checks if there is a post-deployment approval required for that stage. If no approval is required, or upon completion of a required approval, Azure Pipelines proceeds to trigger deployment to the next stage.