Introduction to Azure DevOps
Introduction to Azure DevOps
Azure DevOps is a set of cloud-based tools from Microsoft that helps software teams plan, build, test, and deliver software. You can think of it as an all-in-one toolbox for the entire software development lifecycle.
It supports different development practices like Agile, Scrum, and Kanban, and works with
many programming languages and platforms (not just Microsoft/.NET).
What is Azure DevOps?
Azure DevOps is a collection of services that:
- Helps teams plan their work (requirements, user stories, tasks).
- Stores and manages source code using Git or TFVC.
- Builds and deploys applications automatically (CI/CD).
- Manages and runs tests to ensure quality.
- Hosts and manages packages (libraries) used in projects.
All of these are provided as separate but integrated services:
Azure Boards, Azure Repos, Azure Pipelines, Azure Test Plans, and Azure Artifacts.
Azure Artifacts
Azure Artifacts is the package management service in Azure DevOps.
It lets you store and share reusable components (libraries, packages) that your
applications depend on.
Instead of every project downloading packages from the internet directly, Azure Artifacts
lets your organization:
- Create internal package feeds (private package repositories).
- Store different types of packages (like NuGet, npm, Maven, Python, and Universal packages).
- Control which versions of packages are used.
- Apply access control and security policies.
Tools / Capabilities in Azure Artifacts
Key tools and capabilities you get with Azure Artifacts include:
- Feeds: Logical containers where packages are stored, versioned, and shared with teams.
- Upstream Sources: Connect your feed to external sources (like public npm or NuGet) so packages can be cached inside your organization.
- Multiple Package Types Support: Manage NuGet, npm, Maven, Python, and Universal Packages in one place.
- Retention and Version Policies: Automatically clean up old or unused package versions.
- Permissions and Access Control: Decide who can publish, download, or view packages.
- Integration with Pipelines: Easily consume and publish packages as part of CI/CD pipelines.
Azure Boards
Azure Boards is the work-tracking and project management part of Azure DevOps.
It helps teams plan, organize, and track work.
Main Concepts in Azure Boards
- Work Items: Everything you track is a “work item” (for example: Epic, Feature,
User Story, Task, Bug). Each work item has fields like title, description, state, assignee, etc. - Boards (Kanban Boards): Visual boards where work items move through columns
(e.g., To Do → In Progress → Done). - Backlogs: Ordered lists of work items that need to be done in the future.
- Sprints: Time-boxed iterations (commonly 1–4 weeks) used in Scrum.
- Queries and Dashboards: Custom views and charts to track progress and metrics.
In simple terms, Azure Boards is like a smart to-do list system for software projects,
with reporting and collaboration built in.
Azure Repos
Azure Repos is the source code management service in Azure DevOps.
It is where your code lives.
Main Features of Azure Repos
- Git Repositories: Distributed version control system where developers clone the repo,
make changes, and push them back. - Branches: Separate lines of development to work on features or fixes without
disturbing the main code. - Pull Requests (PRs): A process where developers propose changes and team members
review, comment, and approve before merging. - Code Reviews and Policies: Rules such as mandatory reviewers, build validation,
and linked work items before merging. - TFVC (Team Foundation Version Control): Centralized version control system
(older style, still supported).
Azure Repos helps teams collaborate on code, track changes, and maintain a history of
what was changed, when, and by whom.
Azure Pipelines
Azure Pipelines is the CI/CD (Continuous Integration and Continuous Delivery) service
in Azure DevOps. It automates building, testing, and deploying your application.
Continuous Integration (CI)
Continuous Integration means developers frequently merge their code changes into a
shared repository. Each change triggers an automated build and test run.
- Helps detect bugs early.
- Prevents integration problems when many developers work together.
Continuous Delivery / Deployment (CD)
Continuous Delivery/Deployment extends CI by automatically deploying the built
application to environments such as Development, Testing, Staging, or Production.
- Reduces manual deployment steps.
- Makes releases more reliable and repeatable.
Main Features of Azure Pipelines
- Pipeline Definitions (YAML or Classic): You define steps to build, test, and deploy your app.
- Multi-platform Support: Build and deploy for .NET, Java, Node.js, Python, and more,
on Windows, Linux, and macOS agents. - Integration with Repos: Automatically triggered by code changes in Azure Repos,
GitHub, etc. - Approvals and Gates: Manual approvals and checks before deploying to sensitive environments.
- Artifacts Integration: Pipelines can publish and consume packages from Azure Artifacts.
Azure Test Plans
Azure Test Plans is the testing and quality management service in Azure DevOps.
It is mainly focused on manual and exploratory testing, and managing test cases.
Main Features of Azure Test Plans
- Test Plans and Test Suites: Organize related test cases into plans and suites
(for example, regression tests, smoke tests). - Test Cases: Step-by-step instructions for manual testing with expected results.
- Manual Test Execution: Testers can run test cases, record results, and log bugs directly.
- Exploratory Testing: Unscripted testing sessions where testers explore the system and capture issues.
- Integration with Boards: Bugs found during testing can be created as work items in Azure Boards.
Azure Test Plans helps ensure that your application meets the expected quality before
it is released to users.
How All These Fit Together
A simple way to see Azure DevOps is:
- Use Azure Boards to plan and track work.
- Use Azure Repos to store and manage your code.
- Use Azure Pipelines to build, test, and deploy your application automatically.
- Use Azure Test Plans to manage and run tests.
- Use Azure Artifacts to store and share reusable packages.