Azure Dev
Azure Dev
Azure DevOps
for
Teenagers
SUITABLE FOR ADULTS
Antony Kervazo-Canut
Introduction
Azure DevOps is the result of the evolution of several generations of
Microsoft's software development tools, now offering a robust
platform that integrates DevOps practices with Microsoft's cloud
ecosystem.
dev.azure.com
Create your Azure DevOps organization: Once signed in, you will be
prompted to create a new organization. Give it a unique name that
represents your team, project, or even your company.
Organization &
Projects
In Azure DevOps, an Organization is the primary level of structure
for managing your projects, users, and software development
resources in a shared environment. It serves as a container for your
Azure DevOps projects and provides a framework for team
collaboration, security management, and integration with other
Azure services.
Wiki
The Wiki in Azure DevOps is an integrated collaborative tool that
allows teams to create, share, and manage project documentation
directly within their Azure DevOps workspace. It is designed to
capture and organize project knowledge, facilitate communication
among team members, and serve as a central repository for
important project information.
Azure DevOps has the advantage of having a global wiki for a project,
but also of gathering all the documentation contained in your
projects directly in the Wiki section.
Antony Kervazo-Canut
Azure Boards
Azure Boards is an Azure DevOps service
that offers comprehensive tools for agile
planning, work tracking, and project
management. It allows teams to track the
progress of their projects through Kanban
boards, backlogs, sprints, and reports.
Tags and Filters: Use tags to categorize work items and filter them to
facilitate searching and organizing. Filters can be based on criteria
such as work item type, status, assignee, and more.
Antony Kervazo-Canut
Process Boards
Azure DevOps supports different types of work processes to adapt to
the specific methodologies of a team or project. These processes
define the framework for work items, boards, and workflows in
Azure Boards, offering a set of templates suited to various project
management approaches. The main types of processes available in
Azure DevOps are: Agile, Scrum, CMMI, and Basic.
Agile
Designed for teams following the agile methodology, emphasizing
iterative and incremental development cycles, and a high
responsiveness to changes.
Main Work Items: Epics, Features, User Stories, Tasks, Bugs.
Scrum
Suited for teams using the Scrum framework, a subcategory of the
agile methodology focused on fixed sprints, sprint reviews, and daily
stand-ups.
Main Work Items: Epics, Features, Backlog Items, Tasks, Bugs.
CMMI
Oriented towards teams that apply more formal and structured
project management approaches, with an emphasis on continuous
process improvement.
Main Work Items: Requirements, Change Requests, Defects, Tasks.
Basic
A simplified framework, with a minimal set of work item types. It's a
good option for small teams or projects that don't need the
formalities of the Agile, Scrum, or CMMI frameworks.
Main Work Items: Epics, Tasks, Bugs.
Antony Kervazo-Canut
Work Items
Azure Boards offers different types of
work items to suit various project needs
and methodologies. The basic types
include:
Work Items
Kanban
Kanban is a project and workflow management method that aims to
improve the efficiency and flexibility of work processes. Originating
from Japan and initially developed by Toyota in the 1940s to optimize
its manufacturing processes, the Kanban method has since been
adopted in many other fields, including software development and IT
project management, thanks to its simplicity and effectiveness.
Azure Boards integrates the Kanban system into its features,
allowing software development teams to manage their projects in an
agile and visual manner.
Sprints
Sprints in Azure Boards are an integral part of agile project
management, allowing teams to plan, execute, and track work in
defined time intervals, called sprints. This feature is essential for
teams adopting agile methodologies such as Scrum, as it helps to
organize work into manageable batches, keeps the team focused on
short-term goals, and provides continuous and incremental product
improvements.
Plan the work: Assign work items to specific sprints by setting the
iteration for each work item. You can do this by dragging and
dropping items into the iteration backlog or by modifying the
iteration in the work item details.
Antony Kervazo-Canut
Dashboard &
Widgets
Dashboards in Azure Boards offer a customizable and interactive
view of various aspects of your project, thanks to the use of widgets.
These widgets can display a wide range of information from work
progress status, bug tracking, results of the latest builds or
deployments, to custom metrics important to the team. Here's a more
detailed overview of some key widgets available in Azure Boards and
how they can be used to improve the visibility and tracking of your
projects.
Antony Kervazo-Canut
Delivery Plan
The Delivery Plan is a powerful extension for Azure Boards that
provides a calendar view to visualize work across multiple teams and
projects. It assists organizations in understanding how work aligns
with delivery schedules, facilitating the planning and tracking of
dependencies between teams. This view allows managers and teams
to stay synchronized on objectives and delivery timelines, while
identifying potential risks and bottlenecks at an early stage.
Azure Repos
Azure Repos is a set of version control
hosting services that allows you to
manage your source code in the cloud. It
is part of Microsoft's Azure DevOps suite
and offers two main types of version
control: Git, a distributed version control
system, and Team Foundation Version
Control (TFVC), a centralized version
control system. Here's a simplified
overview of what you need to know
about Azure Repos and how to use it to
manage your code.
Security and
Permissions
Azure Repos uses a role-based permission system that allows you to
finely control access to your repositories. Permissions can be
assigned at different levels, including:
Project Level: You can set permissions that apply to all repos
within an Azure DevOps project. This is useful for configuring
project-wide roles, such as project administrators who need
access to all repos.
Repository Level: Permissions can also be specifically set for each
repository, allowing you to customize access based on the needs
of each team or project. This includes controlling who can read,
write, or manage the repository.
Antony Kervazo-Canut
Security and
Permissions
Branch Level: Azure Repos allows setting branch policies that can
restrict changes to certain branches, require code reviews for pull
requests, or enforce validation builds. This helps to protect important
branches, like the main or release branches.
Antony Kervazo-Canut
Pull Request
Pull requests in Azure Repos are a central mechanism to facilitate
collaboration and code review within development teams using Git.
They allow developers to notify team members that they have
completed changes in a branch and request that these changes be
integrated (or "merged") into the main branch or any other target
branch. Here is a detailed overview of pull requests and their use in
Azure Repos.
Antony Kervazo-Canut
Pull Request
Code Reviews: Pull requests provide a framework for code reviews,
where peers can comment and suggest changes before the code is
integrated. This helps maintain code quality and share knowledge
within the team.
Pull Request
Tip :
If a specific part of the code has been touched, you can
automatically include a reviewer or a specific team to validate the
Pull Request.
Azure Pipelines
Azure DevOps has undergone several evolutions in terms of pipelines,
reflecting changes in software development practices and
Continuous Integration (CI) / Continuous Delivery (CD). Here is a brief
history of the different types of pipelines used over time in Azure
DevOps (formerly known as Visual Studio Team Services (VSTS) and
Team Foundation Server (TFS)):
External Sources
Creating a pipeline in Azure Pipelines is a flexible process that allows
not only the use of code hosted on Azure Repos but also the
connection to code repositories located on other platforms such as
GitHub, GitLab, or Bitbucket.
Pipeline Classic
Classic pipelines in Azure DevOps offer a graphical and user-friendly
approach to configuring and managing Continuous Integration (CI)
and Continuous Delivery (CD) without writing YAML code.
Tip :
Azure DevOps offers the possibility to export an existing Classic
pipeline to a YAML format to start migrating your old pipelines.
However, you might encounter difficulties if you use features
such as "Task Groups".
Antony Kervazo-Canut
Pipeline YAML
YAML pipelines in Azure DevOps represent a modern, code-centric
approach to defining Continuous Integration (CI) and Continuous
Delivery (CD) processes. Using the YAML (YAML Ain't Markup
Language), these pipelines allow for a declarative description of how
to build, test, and deploy your code directly in a text file that can be
versioned with your source code.
Tip :
By using branch policies, you can ensure to systematically include
individuals who will validate the modification of the pipeline.
Antony Kervazo-Canut
Agent Pool
Agent Pools in Azure DevOps are collections of agents that execute
the tasks defined in your CI/CD pipelines. An agent is an application
installed on a physical or virtual machine that runs builds,
deployments, or other automated tasks defined in your pipelines.
Agent pools allow you to manage and organize these agents into
groups, facilitating the allocation of the necessary resources for
pipeline execution.
Releases
Releases in Azure DevOps are a crucial part of the Continuous
Delivery (CD) process, allowing for the management of application
deployments across different environments, such as development,
testing, and production. The management of releases in Azure
DevOps is designed to automate, schedule, and track the deployment
of your code, while ensuring the quality and stability of your
applications.
Release pipelines are primarily configured through a graphical user
interface, without a direct option to write the configuration in YAML.
Antony Kervazo-Canut
Multi-Stage
Pipelines in YAML
With the introduction and evolution of multi-stage pipelines in YAML,
Azure DevOps has begun to offer a unified experience for defining
Continuous Integration (CI) and Continuous Delivery (CD) in a single
YAML file. This approach extends the flexibility and power of YAML to
deployment processes, allowing users to define deployment stages,
jobs, steps, environments, deployment strategies, and other aspects
of delivery in the same YAML file used for CI.
Antony Kervazo-Canut
Library
The Library in Azure DevOps is a feature that allows storing,
managing, and sharing variables and secrets across multiple
pipelines, facilitating the reuse of configurations and centralizing the
management of sensitive data.
Best Practices:
Variable Groups
Antony Kervazo-Canut
Variable Groups
Antony Kervazo-Canut
Secure Files
The Secure Files section in Azure DevOps is a feature of the Library
that allows storing and managing secure files, such as certificates,
configuration files containing secrets, or any other type of sensitive
file, which you can then use in your CI/CD pipelines. These files are
stored securely and can be referenced by pipelines to automate
deployments and builds while keeping sensitive information
protected.
The file cannot be read from its interface but has permission
management and access conditions.
Antony Kervazo-Canut
Approuvals and
Checks
Variable groups or secure files can have usage conditions on
pipelines. These can apply to specific branches, people who can
initiate pipelines using secret elements, or even the schedule of use to
avoid, for example, an awkward deployment during a specific time
slot or day of the week.
Azure Artifacts
Azure Artifacts is a powerful feature for managing and sharing
packages within your organization or with the community. A "feed" is
a package repository where you can publish, consume, and share
packages of different types. This facilitates collaboration among
development teams and code reuse, while supporting DevOps
practices by enabling smooth project dependency management.
Antony Kervazo-Canut
Visual Studio
Marketplace
The Visual Studio Marketplace is an online platform where users can
discover, acquire, and install extensions to enhance and customize
their experience with Visual Studio, Azure DevOps, and GitHub
products. It offers a wide range of extensions, from integrations with
other services and tools, to productivity enhancements for
developers, as well as dashboard widgets and custom tasks for Azure
DevOps pipelines.
In the same
collection
Container Orchestration and Management
Infrastructure as Code
↓ FOLLOW ME ↓
ANTONYCANUT
ANTONY KERVAZO-CANUT