Getting Started with Azure DevOps: Services and Tips
Getting Started with Azure DevOps: Services and Tips
This article reviews four of the most popular Azure DevOps services, Azure Boards, Pipelines, Azure as repos, and more.
Join the DZone community and get the full member experience.Join For Free
Microsoft Azure is a top cloud vendor offering a wide range of services. Azure DevOps is a relatively new service (launched in 2018) that offers a collection of cloud-based Azure-native services that answer certain DevOps needs.
This article reviews five Azure DevOps services, each providing certain capabilities — Azure Boards, Azure Pipelines, Azure Repos, Azure Test Plans, and Azure Artifacts. You will also learn four tips for optimizing Azure DevOps processes.
What Is Azure DevOps?
Azure DevOps is a collection of cloud services you can use to manage and perform software development processes. It was previously called Visual Studio Team Services and incorporates the services that were previously only available through Azure DevOps Server.
You can choose to use all Azure DevOps services together or you can choose only those you need. You also have the option to integrate additional tools through the Extensions Marketplace. All services except Test Plans are free for your first five users. After that, you are charged a fee per user per month. Test Plans is only available in combination with the other tools for a monthly fee per user.
Azure DevOps Services
Azure DevOps services are designed to be ready to use with each encompassing one larger component of your DevOps workflows.
Boards is a set of tools designed to help you plan, track, and report work progress. It includes Kanban boards, Scrum boards, backlogs, customizable dashboards, and reporting tools.
You can integrate this service directly with Microsoft Teams or Slack to handle communications. You can also integrate it with GitHub for automatic linking of commits and pull requests to your work items.
Pipelines are the core service of Azure DevOps. It enables you to manage and operate a continuous integration/continuous delivery (CI/CD) pipeline on Linux, macOS, or Windows systems. You also have the option of deploying your pipeline to containers, orchestrated with Kubernetes. Pipelines support applications in most languages, including Node.js, Python, PHP, Java, Ruby, .NET, and mobile platforms.
In Pipelines, you can use pre-built templates to get started. If you are unsure where to start, the service can recommend suitable templates based on an assessment of your source code. Alternatively, you can create pipelines from scratch using either a drag-and-drop interface or via YAML files.
Azure as Repos
Repos is a service for managing and hosting your code repositories for Git or Team Foundation Version Control (TFVC). Primarily, however, this service is designed for Git. It includes features for creating custom branch policies, automation through Pipelines, semantic code searching, and all of the features that come standard with Git.
Azure Test Plans
Test Plans is a service that you can use to create and run manual and automated tests on your codebase. It also includes features for exploratory testing, enabling you to simultaneously create and run tests. Using Test Plans, you can test both desktop and web applications and tie results directly to related work items.
Artifacts is a service you can use to create, host, and share packages. It supports Maven, Python, npm, and NuGet and includes built-in features for package versioning and testing. Artifacts also enable you to combine packages from multiple sources into a Universal Package, eliminating the need to store binaries in Git.
Tips for Azure DevOps
Whether you are thinking about transitioning to Azure DevOps or you are just getting started, several tips can make your implementation more effective.
Be Aware of Data Availability
Azure DevOps services use the same methods of data duplication as all Azure services to provide you with high availability and fault protection. Services contain your data internally and do not require other storage services. However, you still need either self-hosted or cloud services for application databases, content files, and additional tooling.
One downside to DevOps data storage is that it does not include a built-in backup mechanism like many other Azure services. If you want to keep data copies to protect yourself from accidental deletion or changes, you need to create these backups manually. For example, downloading projects as .zip files, exporting work items to Excel, or exporting build and release definitions to JSON files.
Organize Your Repositories
DevOps services enable you to create multiple projects in a single repository and you should take advantage of this. It enables you to reference projects from multiple build processes rather than having duplicate data.
This allows you to keep your various scripts and templates more organized. It also enables operations to more easily control resources without impeding development. Just keep in mind, to make this work, you need to make sure to define the subfolder you want to use for each trigger. If you don’t, all builds in your folder will run.
Test Your Configurations
Once you adopt services, take the time to test and optimize your workflows. Your team should be able to quickly and easily work through the development lifecycle, regardless of time or environment.
The best way to do this is to simulate a full development cycle from pull request to deployment. Make sure to simulate failed tests and code review steps as well. This can help you identify issues in your configurations, identify bottlenecks, and ensure proper visibility and permissions.
Mind Your Permissions
Although your team is working together throughout development and release, not everyone should be involved in every step. Your permissions should reflect this. You don’t want everyone on your team to be able to change configuration settings or scripts. You also don’t want everyone to have access to your Azure DevOps dashboard.
Rather than giving blanket access, use security groups to define appropriate permissions. You can also use these groups to define a single point of contact that is responsible for making changes when necessary. These restrictions can help you eliminate issues due to both inadvertent and intentional changes. It can also help you keep better track of who is making changes and when.
If you are working primarily with Azure, and you are interested in implementing your own DevOps pipeline, then Azure DevOps services come very handy. You can use Azure Boards for project management, Azure Pipelines for managing CI/CD pipelines, Azure Repos for code repositories, Azure Test Plans for testing your codebase, and Azure Artifacts for packages.
Azure also offers multicloud support for DevOps pipelines that extend beyond the Azure cloud. However, you need to be aware of data availability, and take into account that Azure DevOps data storage does not include built-in backup. You will need to manually configure your DevOps pipeline backups. So, when you set up your pipeline, remember to add backup.
Opinions expressed by DZone contributors are their own.