Azure Devops server (formerly Team Foundation Server and Visual Studio Team System (VSTS)) is a Microsoft product that provides version control, reporting , requirements management, project managament , automated builds, testing and release management capabilities
This covers the entire application lifecycle and enables DevOps capabilities.
Azure DevOps is offered as
Azure DevOps Services:
This is a hosted solution on microsoft azure
Azure DevOps Server:
This is a installation that can be done on the on-premisies Refer Here
Azure DevOps has the application lifecycle defined as shown below
During the Plan phase, teams use Backlogs or Kanban boards to define, track & layout the work that needs to be done for Application in Azure Boards. We also create a SCM system that can be GitHub or Azure Git Repos
During the Development Phase, we create Azure Pipelines to create automated builds from the source code. We can use visual studio code to create pipelines for building the code
During the deliver phase, we deploy applications and services to the target environments. We use terraform or ARM templates to create infrastructure
During the operate phase, we implement montoring for applications and services
For Creating an Azure DevOps Service environment Refer Here
Create a new project in Azure DevOps
Understanding Azure DevOps Services
The following are the different Azure DevOps Services
Azure Boards:
They are used to plan, track and discuss work across teams using Agile planning tools that are available
Teams can manage their software project with native support for Scrum and Kanban
You can alos create customizable dashboards
Azure Repos
They support Git repository hosting and also Team foundation server version control.
Azure Pipelines
We can azure pipelines to automatically build, test and deploy code and make it avalilable for other targets
Azure Test Plans:
With Azure Test plans, teams can use the features offered to plan manual test, explorartory tests and user acceptance testng and gathering feedback from stack holders
Tests are organized as test plans and test suites by tester and team leads
Azure Artifacts:
With Azure Artifacts, we can create and share Nuget, npm, Python and Maven packages from public and private sources with teams in Azure DevOps
Extension Marketplace
Azure Git Repos
Exercise: Create a new project in Azure Devops and create a new repository and add gameoflife source code into the Newly added repository.
I want all the commits of master branch from github Refer Here into Azure DevOps Git repo
Azure Pipelines
Azure pipeline is a cloud service offered by Azure platform to automate building, testing and releasing phases fo your development cycle (ci/cd)
Azure pipelines works with the following schema
To use Azure pipelines, we need to create a pipeline. A pipeline in Azure DevOps can be created in two ways
Using the classic interface
Using a YAML
In Jenkins to define the pipeline we created a Jenkinsfile where we had option to create a scripted pipeline or declarative pipeline
In the case of Azure devops we create a azure-pipelines.yml file to define the pipeline
A pipeline starts from a trigger ( a manual , a push inside repository or schedule)
Pipeline is generally composed of one or more stages
Each stage contains one or more jobs
Each job runs on a Agent and it has steps.
Each step is composed of task that performs some action.
the final output of the pipeline is an artifact
Build agents
To build and deploy code using Azure Pipelines, we need atleast one agent.
Agent is a service that runs the jobs defined in pipeline.
Execution of these jobs occur directly on agent’s host machine
When defining agents for the pipeline, we have two possible agents
Microsoft-hosted agents: This is a service managed by Microsoft and its cleared on every execution of pipeline
Self-hosted agents: This is a service which you setup and manage yourself. This can be a custom vm on Azure or on-premise. In the self-hosted agent you need the install the necessary softwares to perform builds. A self-hosted agent can be a windows, linux , mac or Docker container
Microsoft Hosted Agents:
Refer Here for the agent pool images and labels that can be used to build the project
Lets create a sample pipeline by clicking on setup build and selecting maven
Now if we review the azure-pipelines.yaml file created