By: Olivier Van Steenlandt | Updated: 2024-06-21 | Comments | Related: > DevOps
Problem
As developers, we are continuously looking to improve our software development. Therefore, a lot of tools are available to assist us with planning our work, executing our day-to-day tasks, automating processes, and ultimately making our lives easier.
For data development projects, having one tool to assist us with sprint planning, code management, and CI/CD (Continuous Integration / Continuous Delivery) would be very helpful. Many different tools are available on the market at a range of prices. One of these tools is Azure DevOps. In this article, we look at what Azure DevOps is and what it can be used for in the Microsoft Azure ecosystem
Solution
Azure DevOps consists of five services: Boards, Repos, Pipelines, Test Plans, and Artifacts. Each service has its own specific use, which we will describe in this article. Before we dive into the different services, a couple of key concepts need to be explained.
Key Concepts for Azure DevOps
Azure DevOps works with organizations and projects. A project is a grouping of different tasks, repositories, and CI/CD flows in the application lifecycle, whereas an organization is a logical grouping of different projects.
Depending on the size of the company, there will be more or less organizations configured within Azure DevOps. A good guideline here is to start with only one organization. When there is a need to work with multiple product teams, add more teams and projects to your organization.
The moment you need to have a strictly isolated workspace, that's the moment that a separate organization is created in Azure DevOps.
In the screenshot above, an organization called "bitesizedata" has been created. The organization is currently working on three different projects: Data Warehouse, Blogging, and Learning.
Services
For every project defined in Azure DevOps, the five services allow us to get changes through the full development life-cycle, from idea to delivery. The five default Azure DevOps Services will be introduced in the following sections. The Learning project will be used to describe the default services.
Azure DevOps Boards
Azure DevOps Boards (Boards) is a service that is a project management tool. Boards allow the end-user to plan and track development tasks during the development life-cycle. It allows users to create different kind items, such as:
- User Stories: Used to describe new functionality from an end-user point of view.
- Bugs: Identify what is going wrong in certain features.
- Tasks: Generally used to describe one-time objectives, like checking the system for potential performance improvements for feature X.
Let's walk through an example. The team wants to learn a certain technology (the User Story in this case), so a work item is created. To achieve this milestone, a couple of tasks need to be executed, including watching a few YouTube videos, reading the documentation, following a course, and playing around with the new technology.
The team also created a bug work item since the deployment pipeline is throwing an error, as seen below.
During the Azure DevOps project setup, you will need to specify the Board structure, which options include Agile, Basic, CMMI, and Scrum. These configuration options might seem overwhelming, and the choice might be difficult. Let's go through each option briefly:
- Basic: This option provides the simplest model to work with, providing Issue, Task, and Epic work items to use.
- Agile: When a team is working Agile methodology (including Scrum), this will be the best fit. This setup works with more extensive work items like Feature, User Story, and Bug work items on top of the basic work items.
- Scrum: For teams working on dedicated products, then the Scrum setup can work. Product backlogs can be defined via this setup.
- CMMI: When the team works very formally, this might be the best fit. This setup provides additional work items such as Risk, Review, Change Request, and Requirement.
Azure Repos
Azure DevOps Repos is a source control system integrated into the suite. It allows developers to manage their code in an efficient way. There are a couple of major benefits linked to using Azure DevOps Repos:
- The development team can track all changes made over time, knowing who, when, why, and what was changed.
- When working with Pull Requests, a peer-reviewing process can be introduced easily.
- It is easily integrated with other services in Azure DevOps.
Currently, Azure DevOps Repos comes in two flavors: Team Foundation Version Control (TFVC) and GIT. The main difference between both solutions is that TFVC is a centralized way of working, where every developer works against a central code repository, whereas GIT is the complete opposite, where every developer works on a local version of the code.
At this moment, more and more teams are moving towards the GIT way of working. To work with GIT, you can use the official GIT documentation to get started.
Azure Pipelines
Azure DevOps Pipelines is a Continuous Integration/Continuous Deployment (CI/CD) tool that allows development teams to automatically build and deploy their solutions. For a data project, this can be building the database project and automatically deploying the changes to the specified database server.
To set up an Azure DevOps Pipeline, you can choose between a Graphical User Interface and YAML (Yet Another Markup Language).
YAML is a set of instructions that allows pipeline creators to define pipelines as code. The major benefit of YAML is that pipelines can be treated as code, and if pipelines need to be changed, you can keep track of the changes made and they can follow the same development life cycle.
Azure DevOps Pipelines are not limited to cloud-based application deployment only. By installing an Azure DevOps Agent on your on-premises environment, you can also automate your deployment to SQL Server, for example.
Azure Test Plans
Azure DevOps Test Plans is a service that allows developers to define manual test plans. In Test Plans, test cases are organized in larger Test Suites. Test Suites can be built manually, allowing the addition of any kind of test case into the test plan. On the other hand, Test Suites can be created based on defined requirements or on a defined query to collect all tickets from Boards for a specific release.
In the example above, four validation steps were defined to complete a blog post. As soon as they are executed, the outcome can be defined.
Test Plans can be used to define automated Tests as well.
If you want to find out more about test plans, check out the Official Microsoft Documentation.
Azure Artifacts
Azure DevOps Artifacts is a package management tool that allows teams to share dependent packages/extensions globally. The most popular package dependency management tools are supported: Maven, NuGet, npm, Python, Universal, and Cargo.
These different tools serve the same purpose: letting developers use the same dependency version during development. For example, a specific version of a certain internal API, a certain version of Apache Spark. Since not all packages are available in all the different dependency management tools, Azure DevOps Artifacts comes into play.
It allows all different extensions/packages to be available in one platform.
Better Together
The major benefit of using Azure DevOps compared with other tools is that the Azure DevOps suite provides a set of tools that work fluently together and are low entry. If you want, you can start with one tool, and as you gain experience over time, you can extend your use by adding more functionality from other tools in the suite.
Pricing
After describing all the Azure DevOps features, it's important to look at the pricing next. Azure DevOps is free for small teams, up to five accounts, excluding Test Plans. If you require more accounts to access Azure DevOps, you will need to pay for every account over the first five. In addition, if your free accounts need to have access to the Test Plans feature, you will be charged additionally.
If you want more information about pricing: Pricing for Azure DevOps.
Next Steps
You now have a general overview of what Azure DevOps is and what you can do with it. As a next step, you can take a deep dive into each of the services.
- Azure DevOps for Agile Projects
- Getting Started with DevOps and SQL Server
- Azure Boards for Project Management
- Azure DevOps CI CD using GitHub Repo and Visual Studio Azure SQL Database Project
- SQL Database Project Code Branching in Git
- Continuous database deployments with Azure DevOps
- Deploy CI/CD Changes for Azure Data Factory with Azure DevOps
About the author
This author pledges the content of this article is based on professional experience and not AI generated.
View all my tips
Article Last Updated: 2024-06-21