An Azure DevOps developer, with the help and benefits of cloud architecture, creates cloud-based applications. To become a developer, proficiency in security, testing, development, and deployment is a must. A total of 338 companies reportedly use Azure DevOps.
Besides that, Dashboard control, improved source control, planning, and tracking work, CI/CD (Continuous Integration and Deployment), and support for manual and exploratory testing are some of the other features included in Azure DevOps.
An overview of Azure DevOps, this blog will deep dive into the Azure DevOps product and how an organization can adapt it to their projects. DevOps is one of the powerful cultural transformations in the current industry trend. It combines the software development team and IT operations team to collaborate on day-to-day tasks, shortens the software development life cycle, and delivers high-quality software.
What is Azure DevOps?
Azure DevOps is a product that is developed and offered by Microsoft. It offers both cloud (Azure DevOps Services) and On-Premises (Azure DevOps Server) solutions.
It allows the team members to plan their work, collaborate on code development, build and deploy the applications. It supports a culture and processes that bring the developers, contributors, project managers, and other stakeholders together to develop software collaboratively. It also enables the organization to create the product in a fast-paced and agile environment rather than the traditional Waterfall SDLC model.
Azure DevOps Documentation
Documentation on Azure DevOps: A unifying force if an organization has multiple DevOps teams, documentation encourages formalization of best practices and sets you up to achieve and benchmark metrics for code quality. Developers are the ones who take up the initiative of documenting DevOps practices.
How does Documentation happen on Azure DevOps?
Once an individual logs into the Azure DevOps portal, they need to click on ‘Overview’. This is next followed by clicking on the ‘ + Add Project Description ‘ button.
Then in the new blade, provide a small description, and select either the Readme file or Wiki.
Five Components of Azure DevOps
- Azure Boards
- Azure Repos
- Azure Pipelines
- Azure Test Plans
- Azure Artifacts
Azure boards let software development teams track their work items, stories, issues, and bugs easily and quickly. If multiple teams work on a single project, their communication should be better. The Azure boards help you to achieve this. It ensures better work tracking. Whatever the Agile method you follow, the board is helpful to track the progress of the project.
Azure Repos is a set of version control systems that lets the developers manage their code. No matter the size of the software project, it is always a good idea to use the version control system.
Even if you are a single developer, it will enable you to track down the bug fixes and features development. You can review the changes, and if there is any problem/outage, it will be easy to roll back the changes.
It provides two types of version control systems.
- Git: Distributed Version Control
- TFVC: Central Version Control.
Check out some features of Azure Repos:
- Connect to your favorite Git clients [IDE/Text Editor/CLI]
- Semantic code search
- Protect branches with branch policies to maintain code quality
- Webhooks and API Integration
- Automate with built-in CI/CD
- Collaborate to code better
Azure Pipelines is a CI/CD tool that facilitates automated building, testing, and deployments. It works with any type of language or project. It combines both CI and CD to build and test your code and deploy it to any number of specified targets.
Prerequisites to setup pipelines:
- An organization in Azure DevOps.
- Place the code base in Azure Repos.
Use Azure Pipelines
Approach 1: Define Pipelines using YAML syntax.
- Define your pipeline in a YAML file called azure-pipelines.yaml
- Place the code base in the Azure repo and configure the Azure pipelines.
- Once all the changes are made, push the code to Azure Repos and create a pull request for review.
- Once the approver reviews the code and approves the pull request, this action will kick off the default trigger to build, test and deploy the code to the targets.
Approach 2: Define Pipelines using the Classic interface.
- Configure Azure Pipelines to your Git Repo.
- Use this classic editor to create and configure build and release pipelines.
- Push the code base to the Azure Repo.
- This action will kick off the default trigger to build, test and deploy the code to the targets.
Azure Test Plans
Azure Test plans are an essential service provided by Azure DevOps only for commercial users. Its rich and powerful tools allow everyone in the team to maintain code quality and collaboration throughout the development process. It supports Manual Testing, Automated Testing, Traceability, and Reporting and Analysis.
Key benefits of Azure Test Plans:
- Test on any platform
- Rich diagnostic data collection
- Integrated Analytics
- End to End Traceability
- Extensible Platform
Azure Artifacts is the library service provided by Azure DevOps. It enables the developers to share and consume the packages from feeds and the public registries. This service is pre-installed on both the cloud and on-prem Azure DevOps. The billing is based upon a consumption basis, and it is free up to 2GB of storage. It supports multiple package types such as npm, Maven, NuGet, Python, and Universal Packages.
Sign Up for Azure DevOps
First, we need to sign up for Azure DevOps to use this service. As a prerequisite, we need to have a Microsoft Outlook account. If we don't have one, then we need to create one.
Steps to be followed:
- As a first step, Visit this URL - dev.azure.com
- Click the "Start Free" icon on that page. It will prompt you for an outlook account login. Then enter the appropriate outlook account credentials.
After validating your credentials, you will have to create an organization in some specific region. So you have to provide a unique organization name and region from the allowed regions.
After that, you should create a project inside that organization. You can create any number of projects inside the organization. For creating a project, you have to specify the project name, project description, visibility of the project, and version control.
Once the project creation is over, we can use the boards, pipelines, repos, artifacts of the project.
Architectural Design of CI/CD Pipeline using Azure DevOps
This is a sample design of deploying a two-tier dot net application to the Azure Web app.
- The developer makes all the changes to the source code.
- The Application code containing web.config file is pushed to the Azure Repos.
- This triggers the CI pipeline, which builds the application and carries out all the tests using Azure Test plans.
- Continuous Deployment triggers the automated deployment of application artifacts within Azure Pipelines.
- The artifacts with the specified version are deployed to the Azure web apps.
- Each web app is configured with the application insights as a best practice. This collects and analyzes the health, performance, and usage data.
- The developers can monitor the health, performance, availability, and usage data of the application.
- Using Azure boards, we can prioritize the backlog items like bug fixes, new feature development, etc.
Azure DevOps Services vs. Azure DevOps Server
|Azure DevOps Services
|Azure DevOps Server
|Azure DevOps Services (Formerly known as Visual Studio Team Services) is a cloud offering solution by Microsoft.
|Azure DevOps Server (Formerly known as Team Foundation Server) is an On-Premises standalone solution by Microsoft.
|Azure DevOps Service's cloud offering is scalable, reliable, and globally available. It is monitored 24x7 by Microsoft's Operation team, backed by 99.9% SLA and the data stored in the local data center.
|The On-Premises solution, Azure DevOps Server, is built on the SQL Server backend. Usually, customers choose this product when they think their data should reside within their network and also if they need access to SQL Server Reporting Services.
|The Azure DevOps services contain all the essential services similar to the Azure DevOps server.
|The Azure DevOps server contains all the essential services similar to Azure DevOps services. DevOps server also has added benefits like Simple server management, Transition from capital expenditure to operational expenditure, and immediate access to the latest features.
An end-to-end solution for development teams, Azure DevOps has come a long way in helping development teams monitor and achieve their goals successfully. It enables the members of the teams to plan, collaborate, build and deploy applications. It helps team members from different departments develop software collaboratively by coming together and keeping a track of everything.
To conclude, this article gives you a few insights regarding Azure DevOps and its capabilities. It also clears the air on the difference between Azure DevOps Services and Azure DevOps Server. A complete overview on the five components of Azure DevOps, the article also sheds light on the Architectural design of CI/CD Pipeline using Azure DevOps and compares Octopus Deploy and Azure DevOps.
In the forthcoming blogs, there will be more discussions regarding practical use cases related to Azure DevOps.
Sabari Rajasekar, Site Reliability Engineer
Along with a dream to achieve Himalayan heights of success, Sabari is enthusiastic about chess, music, movies, and web series. His recent (and healthy) interests? Workout sessions, and bike rides during the weekends.