Author : MD TAREQ HASSAN | Updated : 2023/07/20
DevOps 101
- DevOps is a set of cultural practices related software development
- DevOps is a combination of tools, people and practice to increase collaboration in order to deliver values to the end user quickly & efficiently
- Details: /explain/devops
Azure DevOps 101
- Azure DevOps is a DevOps platform from Microsoft that provides a tools and services for DevOps related processes
- Azure DevOps is a comprehensive set of collaboration tools and services, designed to help development teams plan, build, test, and deploy applications efficiently
- Azure DevOps is:
- a DevOps toolchain and orchestration platform
- language, platform and cloud provider agnostic
- Azure DevOps (Azure DevOps Services and Azure DevOps Server) is rebranded version of Visual Studio Team Services (VSTS)
- Azure DevOps comprises a range of services covering the full development life-cycle and enables DevOps capabilities
Azure DevOps offerings
Azure DevOps has two offerings:
- Cloud offering
- Known as “Azure DevOps Services”
- Cloud hosted verson of Azure DevOps Server managed by Microsoft
- On-premises offering
- Known as “Azure DevOps Server”
- Azure DevOps Server is a Microsoft product that covers the entire application lifecycle, and enables DevOps capabilities
- See: https://docs.microsoft.com/en-us/azure/devops/user-guide/about-azure-devops-services-tfs?view=azure-devops
Components of Azure DevOps Services
- Organization
- Project
- Repositories (Repos)
- Pipelines
- Boards
- Artifacts
- Test Plans
Organization
- An organization refers to a logical container that holds all the projects
- Creating an Azure DevOps account is essentially setting up an organization
- Details: Azure DevOps organization
Project
- A project represents a container for organizing work related to a specific software development effort, application, or team
- Projects are created within an Azure DevOps organization
- Projects provide a way to manage and collaborate on different development initiatives while maintaining a level of isolation from other projects within the same organization
- Details: Azure DevOps project
Repos
- Azure Repos provides version control for source code management
- It supports both Git and Team Foundation Version Control (TFVC), allowing developers to collaborate on code changes, track history, and manage branches effectively
- Details: Azure DevOps repos
Pipelines
- A DevOps pipeline is a set of automated processes and tools that allows developers (Dev) and operations professionals (Ops) to collaborate on
- Azure Pipelines is a robust continuous integration and continuous delivery (CI/CD) service. It enables teams to automate the build, test, and deployment of applications across different platforms and environments
- There 2 types of pipelines: YAML pipeline & Classic (UI based) Pipeline (classic pipeline is deprecated in favor of YAML)
- Details: YAML pipeline
Agent Pool and Agent
- An agent is computing infrastructure with installed agent software that runs one job at a time
- Instead of managing each agent individually, agents are organizied into agent pools
- In Azure Pipelines, pools are scoped to the entire organization (so that agent machines can be shared across projects)
- An agent is registered with a single pool
- When a pipeline is created, which pool the pipeline will use must be specified
Pipeline Agent
- Underlaying VM that executes the pipeline job (workload)
- Types of Agent:
- Microsoft Hosted
- Microsoft-hosted agents that run Windows and Linux images are provisioned on Azure general purpose virtual machines
- Maintenance and upgrades are taken care of for you
- Each time you run a pipeline, you get a fresh virtual machine. The virtual machine is discarded after one use
- Microsoft-hosted agents can run jobs directly on the VM or in a container
- Azure Pipelines provides a pre-defined agent pool named Azure Pipelines with Microsoft-hosted agents
- See: https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops
- Self Hosted: An agent that you set up and manage on your own to run jobs
- Microsoft Hosted
- Links:
Boards
- Boards in Azure DevOps is the management hub of the project
- Board is an project management tool that allows teams to plan, track, and discuss work across the entire development process
- It provides features like backlogs, sprint planning, task tracking, and customizable dashboards to aid in project planning and collaboration
- Details: Azure DevOps boards
Artifacts
- An artifact is a collection of files or packages published by a run
- Artifacts are made available to subsequent tasks i.e deployment (release pipeline)
- Details: Azure DevOps artifacts
Test Plans
- Azure Test Plans is a comprehensive testing solution that enables teams to plan, track, and manage tests
- It supports manual and automated testing, allowing teams to ensure the quality and reliability of their software
- Details: Azure DevOps test plans