What Is Azure DevOps?
Azure DevOps (formerly Visual Studio Team Services—VSTS) is a set of tools and services that help DevOps teams provision and manage production environments. It helps teams automate, orchestrate, and manage application and service delivery.
Azure DevOps optimizes source control, build, test, and release processes to enable continuous delivery. It also promotes the use of DevOps practices across cloud and on-premises environments.
Microsoft also offers Azure DevOps Server, the evolution of Microsoft Team Foundation Server (TFS). Azure DevOps Server is an on-premises version of Azure DevOps, which you can deploy in your local data center and provides similar services and functionality to the cloud-based Azure DevOps service.
Azure DevOps Services and Tools
Azure Boards offers interactive, customizable tools to help developers manage software development projects. It includes many capabilities, including an easy-to-configure dashboard, calendar views, integrated reporting, and native support for Scrum, Kanban, and Agile processes.
Azure Repos is a version control toolkit that helps teams manage their application code. Version control is useful for all software development projects, preferably implemented early on, regardless of size.
A version control system is a software tool that helps users track the changes made to an application’s code over time. It takes snapshots of the files whenever a developer edits the code, saving the snapshot in a permanent record. Version control systems allow teams to coordinate their code changes and recall specific changes when required.
Azure Pipelines can automatically build and test code, making it available to various projects. It supports most languages and project types. Azure Pipelines offers combined continuous integration and continuous delivery (CI/CD) pipelines for building and testing code and shipping it to a target. Implementing a CI/CD pipeline helps ensure high-quality, consistent code while making it easily accessible to team members.
Azure Pipelines offers a fast, secure, and easy way to automate the building process and make projects available to various users. It supports all languages and platforms, integrates with GitHub and Azure deployments, and can deploy to multiple targets simultaneously. Azure Pipelines is also well-suited for open source development projects and builds on Linux, Mac, and Windows machines.
Learn more in our guide to Azure Pipelines
Azure Test Plans
Azure Test Plans offers powerful, intuitive tools that team members can use to improve code quality and collaborate more easily throughout the software development process. This user-friendly, browser-driven test management platform provides the necessary capabilities to plan and implement manual and automated tests, including user acceptance and exploratory testing and collecting feedback from the relevant stakeholders.
Azure Artifacts allows development teams to share and manage code efficiently using software packages controlled from a unified platform. Developers can use Azure Artifacts to publish packages to feeds and share them within a team, across the organization, or publicly. Developers can consume packages from multiple public registries like NuGet.org and npmjs.com. Azure Artifacts supports various packages, including npm, NuGet, Maven, and Python package types.
Example Implementation: Building a CI/CD Pipeline Using Azure DevOps
Here is a scenario providing architecture design tips for building a CI/CD pipeline. The example below uses a two-tiered web application, which the continuous integration and deployment pipeline deploys to Azure DevOps and related services like the App Service. This approach lets you focus on developing your applications rather than managing the underlying infrastructure.Image Source: Azure
The scenario has the following data flows:
- A developer makes a change to the application’s source code.
- The developer commits the application code to the Azure Repos source code repository and the web configuration file.
- The continuous integration system uses Azure Test Plans to trigger the application build process and run unit tests.
- The continuous deployment component in Azure Pipelines automatically deploys the application artifacts using the configuration values specific to the environment.
- The pipeline deploys the artifacts to the App Service.
- Application Insights aggregates and analyzes data about the application’s usage, health, and performance.
- The development team monitors and manages the application information.
- The team uses backlog information to prioritize bug fixes and new features on Azure Boards.
Azure DevOps Best Practices
The following best practices can help make the most of the Azure DevOps offerings.
Set Up the Project Teams
Azure Boards offers tools to help each team plan and track its progress. It defines default teams for each project and supports feature-specific teams. Defining teams ensures each project team can independently operate while enabling collaboration.
Set Up Sprints
Project teams use sprints, specified using Iteration Paths, to define the project’s sprint cadence, usually one to four weeks. Sprints can support hierarchies, including release pipelines. Each sprint represents an assignment a given team must deliver by the specified deadline. Organizations should define realistic sprint cadences that all team members can commit to, with a minimum of six iterations (i.e., for a six-month plan).
Support Searches and Filtering with Tags
Project teams can assign ad hoc work-item tags, enabling team members to query work items and filter boards and backlogs based on tags. The tags should provide general usage guidance.
Here is a snapshot of a Kanban board showing a web keyword filter that displays items with a “Web” tag.
Image Source: Azure
Organizations should implement policies specifying how teams use tags. These tags can support filtering and reporting and are useful for identifying cross-team dependencies.
Review the Features Board
The Features board allows DevOps teams and managers to review a project’s progress and ensure the continuous flow of deliverables. The Features backlog offers a fast, visual monitoring approach.
Here is an example of a customized Features board with “In progress” columns added to provide natural states during the design, development, and deployment of features to production.
Image Source: Azure
Configuring project delivery plans allows multiple teams to review features for shared projects via an interactive board. Organizations can customize their Features board to support team-specific processes. The filter feature allows viewers to focus on a tagged item based on features, specific sprints, etc. Adding rollup columns to the Feature backlog helps monitor a project’s overall progress.
Codefresh: an Azure DevOps Alternative
Azure DevOps is a generic DevOps product that tries to work with both legacy and modern architectures. On the one hand this means great compatibility but on the other it means that you only get the lowest common denominator for your organization regardless of your position in the cloud native journey.
Codefresh is a modern alternative to Azure DevOps built specifically for Kubernetes applications and teams that want to adopt the GitOps methodology. Codefresh is powered by the Argo family of tools (Argo CD, Argo Rollouts, Argo Events, Argo Workflows) and is specifically designed for organizations that work with containers and cloud applications.
Codefresh lets you answer many important questions within your organization, whether you’re a developer or a product manager. For example:
- What features are deployed right now in any of your environments?
- What features are waiting in Staging?
- What features were deployed last Thursday?
- Where is feature #53.6 in our environment chain?
What’s great is that you can answer all of these questions by viewing one single dashboard. Our applications dashboard shows:
Teams that adopt Codefresh deploy more often, with greater confidence, and are able to resolve issues in production much more quickly. This is because we unlock the full potential of Argo to create a single cohesive software supply chain. For users of traditional CI/CD tooling, the fresh approach to software delivery is dramatically easier to adopt, more scalable, and much easier to manage with the unique hybrid model.
See Additional Guides on Key DevOps Topics
Together with our content partners, we have authored in-depth guides on several other topics that can also be useful as you explore the world of DevOps.
The World’s Most Modern CI/CD Platform
A next generation CI/CD platform designed for cloud-native applications, offering dynamic builds, progressive delivery, and much more.Check It Out